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 ])
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 ])
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, )