def test_line_saved_from_new(session): """Assert that the payment is saved to the table.""" payment_account = factory_payment_account() payment = factory_payment() payment_account.save() payment.save() invoice = factory_invoice(payment.id, payment_account.id) invoice.save() factory_invoice_reference(invoice.id).save() fee_schedule = FeeSchedule.find_by_filing_type_and_corp_type('CP', 'OTANN') line = factory_payment_line_item(invoice.id, fee_schedule_id=fee_schedule.fee_schedule_id) line.save() line = factory_payment_line_item(invoice.id, fee_schedule_id=fee_schedule.fee_schedule_id, status='DELETED') line.save() p = PaymentLineService.find_by_id(line.id) assert p is not None assert p.id is not None assert p.invoice_id is not None assert p.filing_fees is not None assert p.fee_schedule_id is not None assert p.gst is None assert p.pst is None assert p.line_item_status_code is not None assert p.priority_fees is None assert p.future_effective_fees is None invoice = Invoice.find_by_id(invoice.id) schema = InvoiceSchema() d = schema.dump(invoice) assert d.get('id') == invoice.id assert len(d.get('line_items')) == 1
def test_create_invoice(session): """Test create_invoice.""" pay_account = factory_payment_account(payment_system_code='BCOL', account_number='BCOL_ACC_1', bcol_user_id='test') pay_account.save() payment = factory_payment() payment.save() i = factory_invoice(payment=payment, payment_account=pay_account) i.save() fee_schedule = FeeSchedule.find_by_filing_type_and_corp_type('CP', 'OTANN') line = factory_payment_line_item( i.id, fee_schedule_id=fee_schedule.fee_schedule_id) line.save() line = PaymentLineItem.find_by_id(line.id) # payment_account: PaymentAccount, line_items: [PaymentLineItem], invoice_id: str, **kwargs inv = bcol_service.create_invoice( payment_account=pay_account, line_items=[line], invoice=i, filing_info={'folioNumber': '1234567890'}, corp_type_code=i.corp_type_code, business_identifier=i.business_identifier) assert inv is not None assert inv.get('invoice_number') == 'TEST'
def asdict(self): """Return the invoice as a python dict.""" payment_line_items = [] for payment_line_item in self._payment_line_items: payment_line_items.append( PaymentLineItem.populate(payment_line_item).asdict()) d = { 'id': self._id, 'created_by': self._created_by, 'created_on': self._created_on, 'updated_by': self._updated_by, 'updated_on': self._updated_on, 'invoice_number': self._invoice_number, 'reference_number': self._reference_number, 'invoice_status_code': self._invoice_status_code, 'account_id': self._account_id, 'payment_id': self._payment_id, 'payment_date': self._payment_date, 'total': self._total, 'paid': self._paid, 'refund': self._refund, 'payment_line_items': payment_line_items } return d
def test_line_saved_from_new(session): """Assert that the payment is saved to the table.""" payment_account = factory_payment_account() payment = factory_payment() payment_account.save() payment.save() invoice = factory_invoice(payment.id, payment_account.id) invoice.save() fee_schedule = FeeSchedule.find_by_filing_type_and_corp_type('CP', 'OTANN') line = factory_payment_line_item( invoice.id, fee_schedule_id=fee_schedule.fee_schedule_id) line.save() p = PaymentLineService.find_by_id(line.id) assert p is not None assert p.id is not None assert p.invoice_id is not None assert p.filing_fees is not None assert p.fee_schedule_id is not None assert p.processing_fees is None assert p.service_fees is None assert p.gst is None assert p.pst is None
def test_line_invalid_lookup(session): """Test Invalid lookup.""" p = PaymentLineService.find_by_id(999) assert p is not None assert p.id is None