|
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 ) { |