Code Duplication    Length = 33-34 lines in 2 locations

chezbetty/datalayer.py 2 locations

@@ 454-487 (lines=34) @@
451
452
453
# Call this when the cash box gets emptied
454
def reconcile_safe(amount, admin):
455
    assert(amount>=0)
456
457
    e = event.EmptySafe(admin)
458
    DBSession.add(e)
459
    DBSession.flush()
460
461
    safe_c = account.get_cash_account("safe")
462
    expected_amount = safe_c.balance
463
    amount_missing = expected_amount - amount
464
465
    if amount_missing != 0.0:
466
        # If the amount in the safe doesn't match what we expected there to
467
        # be, we need to adjust the amount in the cash box be transferring
468
        # to or from a null account
469
470
        if amount_missing > 0:
471
            # We got less in the box than we expected
472
            # Move money from the safe account to null with transaction type
473
            # "lost"
474
            t1 = transaction.Lost(e, account.get_cash_account("safe"), amount_missing)
475
            DBSession.add(t1)
476
477
        else:
478
            # We got more in the box than expected! Use a found transaction
479
            # to reconcile the difference
480
            t1 = transaction.Found(e, account.get_cash_account("safe"), abs(amount_missing))
481
            DBSession.add(t1)
482
483
484
    # Now move all the money from the safe to chezbetty
485
    t2 = transaction.EmptySafe(e, amount)
486
    DBSession.add(t2)
487
    return e
488
489
490
# Call this to move all of the money from the cash box to the safe.
@@ 517-549 (lines=33) @@
514
515
516
# Call this when bitcoins are converted to USD
517
def reconcile_bitcoins(amount, admin, expected_amount=None):
518
    assert(amount>0)
519
520
    e = event.EmptyBitcoin(admin)
521
    DBSession.add(e)
522
    DBSession.flush()
523
524
    btcbox_c = account.get_cash_account("btcbox")
525
    if expected_amount == None:
526
        expected_amount = btcbox_c.balance
527
    amount_missing = expected_amount - amount
528
529
    if amount_missing != 0.0:
530
        # Value of bitcoins fluctated and we didn't make as much as we expected
531
532
        if amount_missing > 0:
533
            # We got less in bitcoins than we expected
534
            # Move money from the btcbox account to null with transaction type
535
            # "lost"
536
            t1 = transaction.Lost(e, account.get_cash_account("btcbox"), amount_missing)
537
            DBSession.add(t1)
538
539
        else:
540
            # We got more in bitcoins than expected! Use a found transaction
541
            # to reconcile the difference
542
            t1 = transaction.Found(e, account.get_cash_account("btcbox"), abs(amount_missing))
543
            DBSession.add(t1)
544
545
546
    # Now move all the money from the bitcoin box to chezbetty
547
    t2 = transaction.EmptyBitcoin(e, amount)
548
    DBSession.add(t2)
549
    return expected_amount
550
551
552
# Call this to make a miscellaneous adjustment to the chezbetty account