facho/fe/form(Quantity): nuevo tipo para cantidad.
FossilOrigin-Name: 4ac52694db717571037981b24733353f962c7d609749bc60777c496ff29a9955
This commit is contained in:
		@@ -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(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user