From 86b3e5f7318524707d29232641a6f9785aab0bbc Mon Sep 17 00:00:00 2001 From: Travis Semple Date: Mon, 30 Jan 2023 11:53:08 -0800 Subject: [PATCH] Add in change for invoice.disbursment_date (#1083) --- pay-api/migrations/versions/286acad5d366_.py | 28 +++++++++++++++++++ pay-api/src/pay_api/models/invoice.py | 1 + .../reconciliations/cgi_reconciliations.py | 1 + 3 files changed, 30 insertions(+) create mode 100644 pay-api/migrations/versions/286acad5d366_.py diff --git a/pay-api/migrations/versions/286acad5d366_.py b/pay-api/migrations/versions/286acad5d366_.py new file mode 100644 index 000000000..244975f20 --- /dev/null +++ b/pay-api/migrations/versions/286acad5d366_.py @@ -0,0 +1,28 @@ +"""Add in disbursement_date, that we we know exactly when a transaction was disbursed. + +Revision ID: 286acad5d366 +Revises: 39c2491d0a07 +Create Date: 2023-01-30 10:31:10.226000 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '286acad5d366' +down_revision = '39c2491d0a07' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('invoices', sa.Column('disbursement_date', sa.DateTime(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('invoices', 'disbursement_date') + # ### end Alembic commands ### diff --git a/pay-api/src/pay_api/models/invoice.py b/pay-api/src/pay_api/models/invoice.py index 94859df46..7d5490878 100644 --- a/pay-api/src/pay_api/models/invoice.py +++ b/pay-api/src/pay_api/models/invoice.py @@ -46,6 +46,7 @@ class Invoice(Audit): # pylint: disable=too-many-instance-attributes payment_method_code = db.Column(db.String(15), ForeignKey('payment_methods.code'), nullable=False, index=True) corp_type_code = db.Column(db.String(10), ForeignKey('corp_types.code'), nullable=True) disbursement_status_code = db.Column(db.String(20), ForeignKey('disbursement_status_codes.code'), nullable=True) + disbursement_date = db.Column(db.DateTime, nullable=True) created_on = db.Column('created_on', db.DateTime, nullable=False, default=datetime.now, index=True) business_identifier = db.Column(db.String(20), nullable=True) diff --git a/queue_services/payment-reconciliations/src/reconciliations/cgi_reconciliations.py b/queue_services/payment-reconciliations/src/reconciliations/cgi_reconciliations.py index 9e9f5ee55..12a1c8a91 100644 --- a/queue_services/payment-reconciliations/src/reconciliations/cgi_reconciliations.py +++ b/queue_services/payment-reconciliations/src/reconciliations/cgi_reconciliations.py @@ -254,6 +254,7 @@ def _fix_invoice_line(line): async def _update_invoice_status(invoice): """Update status to reversed if its a refund, else to completed.""" + invoice.disbursement_date = datetime.now() if invoice.invoice_status_code in (InvoiceStatus.REFUNDED.value, InvoiceStatus.REFUND_REQUESTED.value): invoice.disbursement_status_code = DisbursementStatus.REVERSED.value else: