@@ 395-428 (lines=34) @@ | ||
392 | if type(thing) is Item: |
|
393 | item = thing |
|
394 | # Add the stock to the item |
|
395 | item.in_stock += quantity |
|
396 | # Make sure the item is enabled (now that we have some in stock) |
|
397 | item.enabled = True |
|
398 | # Create a subtransaction to track that this item was added |
|
399 | rli = transaction.RestockLineItem(t, total, item, quantity, wholesale, coupon, salestax, btldeposit) |
|
400 | DBSession.add(rli) |
|
401 | #amount += Decimal(total) |
|
402 | ||
403 | elif type(thing) is Box: |
|
404 | box = thing |
|
405 | ||
406 | # Create a subtransaction to record that the box was restocked |
|
407 | rlb = transaction.RestockLineBox(t, total, box, quantity, wholesale, coupon, salestax, btldeposit) |
|
408 | DBSession.add(rlb) |
|
409 | DBSession.flush() |
|
410 | ||
411 | # Iterate all the subitems and update the stock |
|
412 | for itembox in box.items: |
|
413 | subitem = itembox.item |
|
414 | subquantity = itembox.quantity * quantity |
|
415 | subitem.enabled = True |
|
416 | subitem.in_stock += subquantity |
|
417 | ||
418 | rlbi = transaction.RestockLineBoxItem(rlb, subitem, subquantity) |
|
419 | DBSession.add(rlbi) |
|
420 | ||
421 | amount += Decimal(total) |
|
422 | ||
423 | t.update_amount(amount) |
|
424 | return e |
|
425 | ||
426 | ||
427 | # Call this when a user runs inventory |
|
428 | def reconcile_items(items, admin): |
|
429 | e = event.Inventory(admin) |
|
430 | DBSession.add(e) |
|
431 | DBSession.flush() |
|
@@ 458-490 (lines=33) @@ | ||
455 | ||
456 | e = event.EmptySafe(admin) |
|
457 | DBSession.add(e) |
|
458 | DBSession.flush() |
|
459 | ||
460 | safe_c = account.get_cash_account("safe") |
|
461 | expected_amount = safe_c.balance |
|
462 | amount_missing = expected_amount - amount |
|
463 | ||
464 | if amount_missing != 0.0: |
|
465 | # If the amount in the safe doesn't match what we expected there to |
|
466 | # be, we need to adjust the amount in the cash box be transferring |
|
467 | # to or from a null account |
|
468 | ||
469 | if amount_missing > 0: |
|
470 | # We got less in the box than we expected |
|
471 | # Move money from the safe account to null with transaction type |
|
472 | # "lost" |
|
473 | t1 = transaction.Lost(e, account.get_cash_account("safe"), amount_missing) |
|
474 | DBSession.add(t1) |
|
475 | ||
476 | else: |
|
477 | # We got more in the box than expected! Use a found transaction |
|
478 | # to reconcile the difference |
|
479 | t1 = transaction.Found(e, account.get_cash_account("safe"), abs(amount_missing)) |
|
480 | DBSession.add(t1) |
|
481 | ||
482 | ||
483 | # Now move all the money from the safe to chezbetty |
|
484 | t2 = transaction.EmptySafe(e, amount) |
|
485 | DBSession.add(t2) |
|
486 | return e |
|
487 | ||
488 | ||
489 | # Call this to move all of the money from the cash box to the safe. |
|
490 | # We don't actually count the amount, so we do no reconciling here, but it |
|
491 | # means that money isn't sitting in the store. |
|
492 | def cashbox_to_safe(admin): |
|
493 | e = event.EmptyCashBox(admin) |