X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Fbasketheader.pl;h=202f6b907959d1b72ef0c5bdf1aa8539680c5b49;hb=f7d160efcc4c631ab634bf660f834f4053482d37;hp=8cfde89cabbef2c9dafb3b8c0cc2ee5ef0e52988;hpb=5c0dfe852396f6391ad1b9873eebed7fb8134437;p=koha.git diff --git a/acqui/basketheader.pl b/acqui/basketheader.pl index 8cfde89cab..202f6b9079 100755 --- a/acqui/basketheader.pl +++ b/acqui/basketheader.pl @@ -45,8 +45,7 @@ If it exists, C<$basketno> is the basket we edit =cut -use strict; -use warnings; +use Modern::Perl; use CGI qw ( -utf8 ); use C4::Context; use C4::Auth; @@ -55,6 +54,8 @@ use C4::Acquisition qw/GetBasket NewBasket ModBasketHeader/; use C4::Contract qw/GetContracts/; use Koha::Acquisition::Booksellers; +use Koha::Acquisition::Baskets; +use Koha::AdditionalFields; my $input = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -72,8 +73,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( my $booksellerid = $input->param('booksellerid'); my $basketno = $input->param('basketno'); my $basket; -my $op = $input ->param('op'); -my $is_an_edit= $input ->param('is_an_edit'); +my $op = $input->param('op'); +my $is_an_edit = $input->param('is_an_edit'); + +$template->param( available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } ) ] ); if ( $op eq 'add_form' ) { my @contractloop; @@ -95,6 +98,11 @@ if ( $op eq 'add_form' ) { } } $template->param( is_an_edit => 1); + $template->param( + additional_field_values => { map { + $_->field->id => $_->value + } Koha::Acquisition::Baskets->find($basketno)->additional_field_values->as_list }, + ); } else { #new basket my $basket; @@ -110,7 +118,10 @@ if ( $op eq 'add_form' ) { $template->param(contractloop => \@contractloop, basketcontractnumber => $basket->{'contractnumber'}); } - my @booksellers = Koha::Acquisition::Booksellers->search; + my @booksellers = Koha::Acquisition::Booksellers->search( + undef, + { order_by => { -asc => 'name' } } ); + $template->param( add_form => 1, basketname => $basket->{'basketname'}, basketnote => $basket->{'note'}, @@ -134,28 +145,42 @@ if ( $op eq 'add_form' ) { if ( $is_an_edit ) { ModBasketHeader( $basketno, - $input->param('basketname'), - $input->param('basketnote'), - $input->param('basketbooksellernote'), - $input->param('basketcontractnumber') || undef, - $input->param('basketbooksellerid'), - $input->param('deliveryplace'), - $input->param('billingplace'), - $input->param('is_standing') ? 1 : undef, + scalar $input->param('basketname'), + scalar $input->param('basketnote'), + scalar $input->param('basketbooksellernote'), + scalar $input->param('basketcontractnumber') || undef, + scalar $input->param('basketbooksellerid'), + scalar $input->param('deliveryplace'), + scalar $input->param('billingplace'), + scalar $input->param('is_standing') ? 1 : undef, + scalar $input->param('create_items') ); } else { #New basket $basketno = NewBasket( $booksellerid, $loggedinuser, - $input->param('basketname'), - $input->param('basketnote'), - $input->param('basketbooksellernote'), - $input->param('basketcontractnumber') || undef, - $input->param('deliveryplace'), - $input->param('billingplace'), - $input->param('is_standing') ? 1 : undef, + scalar $input->param('basketname'), + scalar $input->param('basketnote'), + scalar $input->param('basketbooksellernote'), + scalar $input->param('basketcontractnumber') || undef, + scalar $input->param('deliveryplace'), + scalar $input->param('billingplace'), + scalar $input->param('is_standing') ? 1 : undef, + scalar $input->param('create_items') ); } + + my @additional_fields; + my $basket_fields = Koha::AdditionalFields->search({ tablename => 'aqbasket' }); + while ( my $field = $basket_fields->next ) { + my $value = $input->param('additional_field_' . $field->id); + push @additional_fields, { + id => $field->id, + value => $value, + }; + } + Koha::Acquisition::Baskets->find($basketno)->set_additional_fields(\@additional_fields); + print $input->redirect('basket.pl?basketno='.$basketno); exit 0; }