1 package Koha
::Acquisition
::Bookseller
;
6 use Koha
::DateUtils
qw( dt_from_string output_pref );
10 use base
qw( Class::Accessor );
12 use C4
::Bookseller
::Contact
;
15 my ( $class, $params ) = @_;
16 my $id = $params->{id
};
18 my $schema = Koha
::Database
->new->schema;
21 $schema->resultset('Aqbookseller')->find( { id
=> $id },
22 { result_class
=> 'DBIx::Class::ResultClass::HashRefInflator' } );
24 return unless $bookseller;
26 my $self = $class->new( $bookseller );
27 $self->contacts; # TODO: This should be generated on demand.
32 my ( $class, $params ) = @_;
34 my $schema = Koha
::Database
->new->schema;
37 while ( my ( $field, $value ) = each %$params ) {
38 if ( $field eq 'name' ) {
39 # Use "like" if search on name
40 $search_params->{name
} = { -like
=> "%$value%" };
42 $search_params->{$field} = $value;
45 my $rs = $schema->resultset('Aqbookseller')->search(
47 { order_by
=> 'name' }
51 while ( my $b = $rs->next ) {
52 my $t = Koha
::Acquisition
::Bookseller
->fetch({ id
=> $b->id });
53 push @booksellers, $t;
60 my $schema = Koha
::Database
->new->schema;
62 return $schema->resultset('Aqbasket')->count( { booksellerid
=> $self->{id
} });
65 sub subscription_count
{
68 my $schema = Koha
::Database
->new->schema;
70 return $schema->resultset('Subscription')->count( { aqbooksellerid
=> $self->{id
} });
76 return $self->{contacts
} if $self->{contacts
};
77 $self->{contacts
} = C4
::Bookseller
::Contact
->get_from_bookseller($self->{id
});
78 return $self->{contacts
};
84 # if these parameters are missing, we can't continue
85 for my $key (qw( id )) {
86 croak
"Cannot insert bookseller: Mandatory parameter $key is missing"
90 $self->{quantityreceived
} ||= 0;
91 $self->{entrydate
} ||=
92 output_pref
( { dt
=> dt_from_string
, dateformat
=> 'iso' } );
94 my $schema = Koha
::Database
->new->schema;
95 my @columns = $schema->source('Aqorder')->columns;
96 my $rs = $schema->resultset('Aqorder')->create(
99 exists $self->{$_} ?
( $_ => $self->{$_} ) : ()
103 $self->{ordernumber
} = $rs->id;
105 unless ( $self->{parent_ordernumber
} ) {
106 $rs->update( { parent_ordernumber
=> $self->{ordernumber
} } );
112 # TODO Move code from ModBookseller
114 die "not implemented yet";
117 # TODO Move code from DelBookseller
119 die "not implemented yet";