From 732f54cad4e1fc4ee3f830162edc3c3fa0930c01 Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Tue, 28 Apr 2009 22:32:54 +0200 Subject: [PATCH] order recieve * deal with granular perms * deal with item creation syspref if applicable --- acqui/orderreceive.pl | 161 ++++++++---------- .../prog/en/modules/acqui/orderreceive.tmpl | 140 ++++++++------- 2 files changed, 138 insertions(+), 163 deletions(-) diff --git a/acqui/orderreceive.pl b/acqui/orderreceive.pl index caabc932e5..bcf6f74769 100755 --- a/acqui/orderreceive.pl +++ b/acqui/orderreceive.pl @@ -68,26 +68,33 @@ use C4::Dates qw/format_date/; use C4::Bookseller; use C4::Members; use C4::Branch; # GetBranches +use C4::Items; +use C4::Biblio; + my $input = new CGI; -my $supplierid = $input->param('supplierid'); -my $dbh = C4::Context->dbh; +my $dbh = C4::Context->dbh; +my $supplierid = $input->param('supplierid'); +my $ordernumber = $input->param('ordernumber'); my $search = $input->param('receive'); my $invoice = $input->param('invoice'); my $freight = $input->param('freight'); -my $biblionumber = $input->param('biblionumber'); -my $datereceived = C4::Dates->new($input->param('datereceived'),'iso') || C4::Dates->new(); -my $catview = $input->param('catview'); -my $gst = $input->param('gst'); +my $datereceived = $input->param('datereceived'); + + +$datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates->new(); + +my $bookseller = GetBookSellerFromId($supplierid); +my $gst= $input->param('gst') || $bookseller->{gstrate} || C4::Context->preference("gist") || 0; +my $results = SearchOrder($ordernumber,$search); -my @results = SearchOrder( $search, $supplierid, $biblionumber, $catview ); -my $count = scalar @results; -my $order = GetOrder($search); -my $bookseller = GetBookSellerFromId( $results[0]->{'booksellerid'} ); +my $count = scalar @$results; +my $order = GetOrder($ordernumber); -my $date = $results[0]->{'entrydate'}; + +my $date = @$results[0]->{'entrydate'}; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { @@ -95,108 +102,78 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { acquisition => 1 }, + flagsrequired => {acquisition => 'order_receive'}, debug => 1, } ); +# prepare the form for receiving if ( $count == 1 ) { - - my (@itemtypesloop,@locationloop,@ccodeloop); - my $itemtypes = GetItemTypes; - foreach my $thisitemtype (sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'}} keys %$itemtypes) { - push @itemtypesloop, { - value => $thisitemtype, - description => $itemtypes->{$thisitemtype}->{'description'}, - selected => ($thisitemtype eq $results[0]->{itemtype}), # ifdef itemtype @ bibliolevel, use it as default for item level. - }; - } - my $locs = GetKohaAuthorisedValues( 'items.location' ); - foreach my $thisloc (sort {$locs->{$a} cmp $locs->{$b}} keys %$locs) { - push @locationloop, { - value => $thisloc, - description => $locs->{$thisloc}, - }; - } - my $ccodes = GetKohaAuthorisedValues( 'items.ccode' ); - foreach my $thisccode (sort {$ccodes->{$a} cmp $ccodes->{$b}} keys %$ccodes) { - push @ccodeloop, { - value => $thisccode, - description => $ccodes->{$thisccode}, - }; - } - $template->param( - itemtypeloop => \@itemtypesloop, - locationloop => \@locationloop, - ccodeloop => \@ccodeloop, - branchloop => GetBranchesLoop($order->{branchcode}), - itype => C4::Context->preference('item-level_itypes'), - ); - - my $barcode; - # See whether barcodes should be automatically allocated. - # FIXME : only incremental is implemented here, and it creates a race condition. - # FIXME : Same problems as other autoBarcode: breaks if any unexpected data is encountered (like alphanumerical barcode) - # FIXME : Fails when >1 items are added (via js). - if ( C4::Context->preference('autoBarcode') eq 'incremental' ) { - my $sth = $dbh->prepare("Select max(barcode) from items"); - $sth->execute; - my $data = $sth->fetchrow_hashref; - $barcode = $results[0]->{'barcode'} + 1; + if (C4::Context->preference('AcqCreateItem') eq 'receiving') { + # prepare empty item form + my $cell = PrepareItemrecordDisplay(); + my @itemloop; + push @itemloop,$cell; + + $template->param(items => \@itemloop); } - if ( $results[0]->{'quantityreceived'} == 0 ) { - $results[0]->{'quantityreceived'} = ''; + if ( @$results[0]->{'quantityreceived'} == 0 ) { + @$results[0]->{'quantityreceived'} = ''; } - if ( $results[0]->{'unitprice'} == 0 ) { - $results[0]->{'unitprice'} = ''; + if ( @$results[0]->{'unitprice'} == 0 ) { + @$results[0]->{'unitprice'} = ''; } -# $results[0]->{'copyrightdate'} = format_date( $results[0]->{'copyrightdate'} ); # this usu fails. $template->param( count => 1, - biblionumber => $results[0]->{'biblionumber'}, - ordernumber => $results[0]->{'ordernumber'}, - biblioitemnumber => $results[0]->{'biblioitemnumber'}, - supplierid => $results[0]->{'booksellerid'}, - catview => ( $catview ne 'yes' ? 1 : 0 ), - title => $results[0]->{'title'}, - author => $results[0]->{'author'}, - copyrightdate => $results[0]->{'copyrightdate'}, - itemtype => $results[0]->{'itemtype'}, - isbn => $results[0]->{'isbn'}, - seriestitle => $results[0]->{'seriestitle'}, - barcode => $barcode, - bookfund => $results[0]->{'bookfundid'}, - quantity => $results[0]->{'quantity'}, - quantityreceivedplus1 => $results[0]->{'quantityreceived'} + 1, - quantityreceived => $results[0]->{'quantityreceived'}, - rrp => $results[0]->{'rrp'}, - ecost => $results[0]->{'ecost'}, - unitprice => $results[0]->{'unitprice'}, + biblionumber => @$results[0]->{'biblionumber'}, + ordernumber => @$results[0]->{'ordernumber'}, + biblioitemnumber => @$results[0]->{'biblioitemnumber'}, + supplierid => @$results[0]->{'booksellerid'}, + freight => $freight, + gst => $gst, + name => $bookseller->{'name'}, + date => format_date($date), + title => @$results[0]->{'title'}, + author => @$results[0]->{'author'}, + copyrightdate => @$results[0]->{'copyrightdate'}, + isbn => @$results[0]->{'isbn'}, + seriestitle => @$results[0]->{'seriestitle'}, + bookfund => @$results[0]->{'bookfundid'}, + quantity => @$results[0]->{'quantity'}, + quantityreceivedplus1 => @$results[0]->{'quantityreceived'} + 1, + quantityreceived => @$results[0]->{'quantityreceived'}, + rrp => @$results[0]->{'rrp'}, + ecost => @$results[0]->{'ecost'}, + unitprice => @$results[0]->{'unitprice'}, + invoice => $invoice, + datereceived => $datereceived->output(), + datereceived_iso => $datereceived->output('iso'), + notes => $order->{notes} ); } else { my @loop; for ( my $i = 0 ; $i < $count ; $i++ ) { - my %line = %{ $results[$i] }; - $line{title} = $results[$i]->{'title'}; - $line{author} = $results[$i]->{'author'}; + my %line = %{ @$results[$i] }; + + $line{invoice} = $invoice; + $line{datereceived} = $datereceived->output(); + $line{freight} = $freight; + $line{gst} = $gst; + $line{title} = @$results[$i]->{'title'}; + $line{author} = @$results[$i]->{'author'}; + $line{supplierid} = $supplierid; push @loop, \%line; } + $template->param( loop => \@loop, supplierid => $supplierid, ); } - -$template->param( - date => format_date($date), - datereceived => $datereceived->output(), - datereceived_iso => $datereceived->output('iso'), - invoice => $invoice, - name => $bookseller->{'name'}, - freight => $freight, - gst => $gst, -); - +my $op = $input->param('op'); +if ($op eq 'edit'){ + $template->param(edit => 1); +} output_html_with_http_headers $input, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tmpl index f54ecff8b0..f3a03e6899 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tmpl +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tmpl @@ -1,13 +1,7 @@ Koha › Acquisitions › Receipt summary for : <!-- TMPL_VAR NAME="name" --> <!-- TMPL_IF NAME="invoice" -->invoice, <!-- TMPL_VAR NAME="invoice" --><!-- /TMPL_IF --> - - + @@ -41,80 +35,85 @@ fieldset.rows .itemblock fieldset.action { padding:.5em; } -
- Item details: (add to catalog) -
-
-
    -
  1. -
  2. -
  3. - " />
  4. -
  5. -
  6. - -
  7. -
  8. - - -
  9. -
  10. - - -
  11. -
  12. - -
-
[+] - [-]
-
-
- " /> + +
+ Item + + +
+
+
  1. +
    "> + + + + + " /> + " /> + " /> + " /> + + ')">+ + + +
  2. + +
+ ')">+ + ')">- +
+
+ + + " /> + " /> + " /> + " /> + + " /> + +
+ + " /> " /> " /> " /> " /> " /> " /> -
Accounting details
    -
  1. Date received:
  2. -
  3. Quantity ordered:
  4. +
  5. +
  6. + + " /> + + " /> + +
  7. - " /> - " /> + + " /> + " /> + + + " /> + + " /> + + " /> + - - + + + + + + " /> -->
  8. " />
  9. @@ -125,15 +124,14 @@ fieldset.rows .itemblock fieldset.action { padding:.5em; } " />
+ " />
-
+
&invoice=&gst=&freight=">Cancel - - &id=">Edit -
+
-- 2.39.5