facho/fe/form(Quantity): nuevo tipo para cantidad.
FossilOrigin-Name: 4ac52694db717571037981b24733353f962c7d609749bc60777c496ff29a9955
This commit is contained in:
parent
bb0c45f439
commit
c93dccf130
@ -98,6 +98,9 @@ class Amount:
|
||||
return self.currency == other.currency
|
||||
|
||||
|
||||
class Quantity(Amount):
|
||||
pass
|
||||
|
||||
@dataclass
|
||||
class Item:
|
||||
scheme_name: str
|
||||
@ -322,7 +325,7 @@ class InvoiceDocumentReference(BillingReference):
|
||||
@dataclass
|
||||
class InvoiceLine:
|
||||
# RESOLUCION 0004: pagina 155
|
||||
quantity: int
|
||||
quantity: Quantity
|
||||
description: str
|
||||
item: Item
|
||||
price: Price
|
||||
@ -334,7 +337,7 @@ class InvoiceLine:
|
||||
|
||||
@property
|
||||
def total_amount(self):
|
||||
return Amount(self.quantity) * self.price.amount
|
||||
return self.quantity * self.price.amount
|
||||
|
||||
@property
|
||||
def total_tax_inclusive_amount(self):
|
||||
@ -356,8 +359,8 @@ class InvoiceLine:
|
||||
self.tax.calculate(self)
|
||||
|
||||
def __post_init__(self):
|
||||
if not isinstance(self.quantity, int):
|
||||
raise ValueError("quantity must be integer")
|
||||
if not isinstance(self.quantity, Quantity):
|
||||
raise ValueError("quantity must be Amount")
|
||||
|
||||
@dataclass
|
||||
class LegalMonetaryTotal:
|
||||
|
@ -129,7 +129,7 @@ def simple_invoice():
|
||||
form.CountrySubentity('05', 'Antioquia'))
|
||||
))
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem( 9999),
|
||||
price = form.Price(form.Amount(100.0), '01', ''),
|
||||
|
@ -89,7 +89,7 @@ def test_invoice_totals(simple_invoice_without_lines):
|
||||
simple_invoice.invoice_supplier.ident = '700085371'
|
||||
simple_invoice.invoice_customer.ident = '800199436'
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto',
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(form.Amount(1_500_000), '01', ''),
|
||||
@ -112,7 +112,7 @@ def test_invoice_cufe(simple_invoice_without_lines):
|
||||
simple_invoice.invoice_supplier.ident = form.PartyIdentification('700085371', '5', '31')
|
||||
simple_invoice.invoice_customer.ident = form.PartyIdentification('800199436', '5', '31')
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto',
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(1_500_000), '01', ''),
|
||||
@ -177,7 +177,7 @@ def test_credit_note_cude(simple_credit_note_without_lines):
|
||||
simple_invoice.invoice_supplier.ident = form.PartyIdentification('900373076', '5', '31')
|
||||
simple_invoice.invoice_customer.ident = form.PartyIdentification('8355990', '5', '31')
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto',
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(5_000), '01', ''),
|
||||
@ -212,7 +212,7 @@ def test_debit_note_cude(simple_debit_note_without_lines):
|
||||
simple_invoice.invoice_supplier.ident = form.PartyIdentification('900197264', '5', '31')
|
||||
simple_invoice.invoice_customer.ident = form.PartyIdentification('10254102', '5', '31')
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto',
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(30_000), '01', ''),
|
||||
|
@ -16,7 +16,7 @@ from facho import fe
|
||||
def test_invoice_legalmonetary():
|
||||
inv = form.NationalSalesInvoice()
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
@ -42,7 +42,7 @@ def test_invoice_legalmonetary():
|
||||
def test_FAU10():
|
||||
inv = form.NationalSalesInvoice()
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
@ -70,7 +70,7 @@ def test_FAU10():
|
||||
def test_FAU14():
|
||||
inv = form.NationalSalesInvoice()
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
quantity = form.Quantity(1),
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
|
Loading…
Reference in New Issue
Block a user