예제 #1
0
 def get_transactions_for_consumption(domain, case_id, product_id,
                                      section_id, window_start, window_end):
     from corehq.apps.commtrack.consumption import should_exclude_invalid_periods
     transactions = LedgerAccessorSQL.get_ledger_transactions_in_window(
         case_id, section_id, product_id, window_start, window_end)
     exclude_inferred_receipts = should_exclude_invalid_periods(domain)
     return itertools.chain.from_iterable([
         transaction.get_consumption_transactions(exclude_inferred_receipts)
         for transaction in transactions
     ])
예제 #2
0
 def get_transactions_for_consumption(domain, case_id, product_id, section_id, window_start, window_end):
     from corehq.apps.commtrack.consumption import should_exclude_invalid_periods
     transactions = LedgerAccessorSQL.get_ledger_transactions_in_window(
         case_id, section_id, product_id, window_start, window_end
     )
     exclude_inferred_receipts = should_exclude_invalid_periods(domain)
     return itertools.chain.from_iterable([
         transaction.get_consumption_transactions(exclude_inferred_receipts)
         for transaction in transactions
     ])
예제 #3
0
def create_reconciliation_transaction(instance):
    from corehq.apps.commtrack.consumption import should_exclude_invalid_periods

    creating = instance.pk is None
    if creating and instance.type == const.TRANSACTION_TYPE_STOCKONHAND:
        previous_transaction = instance.get_previous_transaction()
        # only soh reports that have changed the stock create inferred transactions
        if previous_transaction and previous_transaction.stock_on_hand != instance.stock_on_hand:
            amt = instance.stock_on_hand - Decimal(previous_transaction.stock_on_hand)
            if not should_exclude_invalid_periods(instance.report.domain) or amt < 0:
                StockTransaction.objects.create(
                    report=instance.report,
                    case_id=instance.case_id,
                    section_id=instance.section_id,
                    product_id=instance.product_id,
                    type=const.TRANSACTION_TYPE_CONSUMPTION if amt < 0 else const.TRANSACTION_TYPE_RECEIPTS,
                    quantity=amt,
                    stock_on_hand=instance.stock_on_hand,
                    subtype=const.TRANSACTION_SUBTYPE_INFERRED,
                )
예제 #4
0
def create_reconciliation_transaction(instance):
    from corehq.apps.commtrack.consumption import should_exclude_invalid_periods

    creating = instance.pk is None
    if creating and instance.type == const.TRANSACTION_TYPE_STOCKONHAND:
        previous_transaction = instance.get_previous_transaction()
        # only soh reports that have changed the stock create inferred transactions
        if previous_transaction and previous_transaction.stock_on_hand != instance.stock_on_hand:
            amt = instance.stock_on_hand - Decimal(previous_transaction.stock_on_hand)
            if not should_exclude_invalid_periods(instance.report.domain) or amt < 0:
                StockTransaction.objects.create(
                    report=instance.report,
                    case_id=instance.case_id,
                    section_id=instance.section_id,
                    product_id=instance.product_id,
                    type=const.TRANSACTION_TYPE_CONSUMPTION if amt < 0 else const.TRANSACTION_TYPE_RECEIPTS,
                    quantity=amt,
                    stock_on_hand=instance.stock_on_hand,
                    subtype=const.TRANSACTION_SUBTYPE_INFERRED,
                )