Lines 264-270
sub process_invoice {
Link Here
|
264 |
foreach my $line ( @{$lines} ) { |
264 |
foreach my $line ( @{$lines} ) { |
265 |
my $ordernumber = $line->ordernumber; |
265 |
my $ordernumber = $line->ordernumber; |
266 |
$logger->trace( "Receipting order:$ordernumber Qty: ", |
266 |
$logger->trace( "Receipting order:$ordernumber Qty: ", |
267 |
$line->quantity ); |
267 |
$line->quantity_invoiced ); |
268 |
|
268 |
|
269 |
my $order = $schema->resultset('Aqorder')->find($ordernumber); |
269 |
my $order = $schema->resultset('Aqorder')->find($ordernumber); |
270 |
|
270 |
|
Lines 288-305
sub process_invoice {
Link Here
|
288 |
|
288 |
|
289 |
my $price = _get_invoiced_price($line); |
289 |
my $price = _get_invoiced_price($line); |
290 |
|
290 |
|
291 |
if ( $order->quantity > $line->quantity ) { |
291 |
if ( $order->quantity > $line->quantity_invoiced ) { |
292 |
my $ordered = $order->quantity; |
292 |
my $ordered = $order->quantity; |
293 |
|
293 |
|
294 |
# part receipt |
294 |
# part receipt |
295 |
$order->orderstatus('partial'); |
295 |
$order->orderstatus('partial'); |
296 |
$order->quantity( $ordered - $line->quantity ); |
296 |
$order->quantity( $ordered - $line->quantity_invoiced ); |
297 |
$order->update; |
297 |
$order->update; |
298 |
my $received_order = $order->copy( |
298 |
my $received_order = $order->copy( |
299 |
{ |
299 |
{ |
300 |
ordernumber => undef, |
300 |
ordernumber => undef, |
301 |
quantity => $line->quantity, |
301 |
quantity => $line->quantity_invoiced, |
302 |
quantityreceived => $line->quantity, |
302 |
quantityreceived => $line->quantity_invoiced, |
303 |
orderstatus => 'complete', |
303 |
orderstatus => 'complete', |
304 |
unitprice => $price, |
304 |
unitprice => $price, |
305 |
invoiceid => $invoiceid, |
305 |
invoiceid => $invoiceid, |
Lines 312-318
sub process_invoice {
Link Here
|
312 |
$received_order->ordernumber ); |
312 |
$received_order->ordernumber ); |
313 |
} |
313 |
} |
314 |
else { # simple receipt all copies on order |
314 |
else { # simple receipt all copies on order |
315 |
$order->quantityreceived( $line->quantity ); |
315 |
$order->quantityreceived( $line->quantity_invoiced ); |
316 |
$order->datereceived($msg_date); |
316 |
$order->datereceived($msg_date); |
317 |
$order->invoiceid($invoiceid); |
317 |
$order->invoiceid($invoiceid); |
318 |
$order->unitprice($price); |
318 |
$order->unitprice($price); |
Lines 343-350
sub _get_invoiced_price {
Link Here
|
343 |
my $price = $line->price_net; |
343 |
my $price = $line->price_net; |
344 |
if ( !defined $price ) { # no net price so generate it from lineitem amount |
344 |
if ( !defined $price ) { # no net price so generate it from lineitem amount |
345 |
$price = $line->amt_lineitem; |
345 |
$price = $line->amt_lineitem; |
346 |
if ( $price and $line->quantity > 1 ) { |
346 |
if ( $price and $line->quantity_invoiced > 1 ) { |
347 |
$price /= $line->quantity; # div line cost by qty |
347 |
$price /= $line->quantity_invoiced; # div line cost by qty |
348 |
} |
348 |
} |
349 |
} |
349 |
} |
350 |
return $price; |
350 |
return $price; |
Lines 353-359
sub _get_invoiced_price {
Link Here
|
353 |
sub receipt_items { |
353 |
sub receipt_items { |
354 |
my ( $schema, $inv_line, $ordernumber ) = @_; |
354 |
my ( $schema, $inv_line, $ordernumber ) = @_; |
355 |
my $logger = Log::Log4perl->get_logger(); |
355 |
my $logger = Log::Log4perl->get_logger(); |
356 |
my $quantity = $inv_line->quantity; |
356 |
my $quantity = $inv_line->quantity_invoiced; |
357 |
|
357 |
|
358 |
# itemnumber is not a foreign key ??? makes this a bit cumbersome |
358 |
# itemnumber is not a foreign key ??? makes this a bit cumbersome |
359 |
my @item_links = $schema->resultset('AqordersItem')->search( |
359 |
my @item_links = $schema->resultset('AqordersItem')->search( |
Lines 413-419
sub transfer_items {
Link Here
|
413 |
my ( $schema, $inv_line, $order_from, $order_to ) = @_; |
413 |
my ( $schema, $inv_line, $order_from, $order_to ) = @_; |
414 |
|
414 |
|
415 |
# Transfer x items from the orig order to a completed partial order |
415 |
# Transfer x items from the orig order to a completed partial order |
416 |
my $quantity = $inv_line->quantity; |
416 |
my $quantity = $inv_line->quantity_invoiced; |
417 |
my $gocc = 0; |
417 |
my $gocc = 0; |
418 |
my %mapped_by_branch; |
418 |
my %mapped_by_branch; |
419 |
while ( $gocc < $quantity ) { |
419 |
while ( $gocc < $quantity ) { |