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>
This commit is contained in:
Srdjan Jankovic 2011-12-20 14:56:51 +13:00 committed by Paul Poulain
parent ef304424e0
commit 92ca5a13e5
3 changed files with 24 additions and 26 deletions

View file

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

View file

@ -458,8 +458,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");