bug_5473: Update items when receiving shipments

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>

Tested by recieving multiple items with the AcqCreateItem
preference set to 'placing and order' and 'receiving an item'
In both cases the pricing and vendor is brought over to the
item record so I'm signing off.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
(cherry picked from commit 92ca5a13e5)

Signed-off-by: Chris Nighswonger <chris.nighswonger@gmail.com>
(cherry picked from commit deba3f0032)

Signed-off-by: Chris Nighswonger <chris.nighswonger@gmail.com>
This commit is contained in:
Srdjan Jankovic 2011-12-20 14:56:51 +13:00 committed by Chris Nighswonger
parent 4deec233e3
commit 32f8a45c8f
3 changed files with 24 additions and 26 deletions

View File

@ -925,7 +925,6 @@ sub NewOrder {
=cut
sub NewOrderItem {
#my ($biblioitemnumber,$ordernumber, $biblionumber) = @_;
my ($itemnumber, $ordernumber) = @_;
my $dbh = C4::Context->dbh;
my $query = qq|

View File

@ -454,8 +454,7 @@ sub ModItemFromMarc {
=head2 ModItem
ModItem({ column => $newvalue }, $biblionumber,
$itemnumber[, $original_item_marc]);
ModItem({ column => $newvalue }, $biblionumber, $itemnumber);
Change one or more columns in an item record and update
the MARC representation of the item.

View File

@ -54,28 +54,11 @@ my $error_url_str;
my $ecost = $input->param('ecost');
my $note = $input->param("note");
my %tplorder = ( 'quantity' => $input->param('quantity') || '',
'quantityreceived' => $input->param('quantityrec') || '',
'notes' => $input->param("note") || '',
'rrp' => $input->param('rrp') || '',
'ecost' => $input->param('ecost') || '',
'unitprice' => $input->param('cost') || '',
);
my $order = GetOrder($ordernumber);
if ( any { $order->{$_} ne $tplorder{$_} } qw(quantity quantityreceived notes rrp ecost unitprice) ) {
$order->{quantity} = $tplorder{quantity} if $tplorder{quantity};
$order->{quantityreceived} = $tplorder{quantityreceived} if $tplorder{quantityreceived};
$order->{notes} = $tplorder{notes} if $tplorder{notes};
$order->{rrp} = $tplorder{rrp} if $tplorder{rrp};
$order->{ecost} = $tplorder{ecost} if $tplorder{ecost};
$order->{unitprice} = $tplorder{unitprice} if $tplorder{unitprice};
ModOrder($order);
}
#need old recievedate if we update the order, parcel.pl only shows the right parcel this way FIXME
if ($quantityrec > $origquantityrec ) {
# now, add items if applicable
if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
my @tags = $input->param('tag');
my @subfields = $input->param('subfield');
my @field_values = $input->param('field_value');
@ -105,13 +88,30 @@ if ($quantityrec > $origquantityrec ) {
$itemhash{$item}->{'ind_tag'},
$itemhash{$item}->{'indicator'},'ITEM');
my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
my (undef,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$biblionumber);
NewOrderItem($itemnumber, $ordernumber);
}
}
# save the quantity received.
if( $quantityrec > 0 ) {
$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
}
$datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
}
update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");
################################ End of script ################################
sub update_item {
my ( $itemnumber ) = @_;
warn "AAA $itemnumber";
ModItem( {
booksellerid => $supplierid,
dateaccessioned => $datereceived,
price => $unitprice,
replacementprice => $replacement,
replacementpricedate => $datereceived,
}, $biblionumber, $itemnumber );
}
print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoice=$invoiceno&supplierid=$supplierid&freight=$freight&gst=$gst&datereceived=$datereceived$error_url_str");