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
 | 
					        return self.currency == other.currency
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Quantity(Amount):
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@dataclass
 | 
					@dataclass
 | 
				
			||||||
class Item:
 | 
					class Item:
 | 
				
			||||||
    scheme_name: str
 | 
					    scheme_name: str
 | 
				
			||||||
@@ -322,7 +325,7 @@ class InvoiceDocumentReference(BillingReference):
 | 
				
			|||||||
@dataclass
 | 
					@dataclass
 | 
				
			||||||
class InvoiceLine:
 | 
					class InvoiceLine:
 | 
				
			||||||
    # RESOLUCION 0004: pagina 155
 | 
					    # RESOLUCION 0004: pagina 155
 | 
				
			||||||
    quantity: int
 | 
					    quantity: Quantity
 | 
				
			||||||
    description: str
 | 
					    description: str
 | 
				
			||||||
    item: Item
 | 
					    item: Item
 | 
				
			||||||
    price: Price
 | 
					    price: Price
 | 
				
			||||||
@@ -334,7 +337,7 @@ class InvoiceLine:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def total_amount(self):
 | 
					    def total_amount(self):
 | 
				
			||||||
        return Amount(self.quantity) * self.price.amount
 | 
					        return self.quantity * self.price.amount
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def total_tax_inclusive_amount(self):
 | 
					    def total_tax_inclusive_amount(self):
 | 
				
			||||||
@@ -356,8 +359,8 @@ class InvoiceLine:
 | 
				
			|||||||
        self.tax.calculate(self)
 | 
					        self.tax.calculate(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __post_init__(self):
 | 
					    def __post_init__(self):
 | 
				
			||||||
        if not isinstance(self.quantity, int):
 | 
					        if not isinstance(self.quantity, Quantity):
 | 
				
			||||||
            raise ValueError("quantity must be integer")
 | 
					            raise ValueError("quantity must be Amount")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@dataclass
 | 
					@dataclass
 | 
				
			||||||
class LegalMonetaryTotal:
 | 
					class LegalMonetaryTotal:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -129,7 +129,7 @@ def simple_invoice():
 | 
				
			|||||||
            form.CountrySubentity('05', 'Antioquia'))
 | 
					            form.CountrySubentity('05', 'Antioquia'))
 | 
				
			||||||
    ))
 | 
					    ))
 | 
				
			||||||
    inv.add_invoice_line(form.InvoiceLine(
 | 
					    inv.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto facho',
 | 
					        description = 'producto facho',
 | 
				
			||||||
        item = form.StandardItem( 9999),
 | 
					        item = form.StandardItem( 9999),
 | 
				
			||||||
        price = form.Price(form.Amount(100.0), '01', ''),
 | 
					        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_supplier.ident = '700085371'
 | 
				
			||||||
    simple_invoice.invoice_customer.ident = '800199436'
 | 
					    simple_invoice.invoice_customer.ident = '800199436'
 | 
				
			||||||
    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
					    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto',
 | 
					        description = 'producto',
 | 
				
			||||||
        item = form.StandardItem(9999),
 | 
					        item = form.StandardItem(9999),
 | 
				
			||||||
        price = form.Price(form.Amount(1_500_000), '01', ''),
 | 
					        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_supplier.ident = form.PartyIdentification('700085371', '5', '31')
 | 
				
			||||||
    simple_invoice.invoice_customer.ident = form.PartyIdentification('800199436', '5', '31')
 | 
					    simple_invoice.invoice_customer.ident = form.PartyIdentification('800199436', '5', '31')
 | 
				
			||||||
    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
					    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto',
 | 
					        description = 'producto',
 | 
				
			||||||
        item = form.StandardItem(111),
 | 
					        item = form.StandardItem(111),
 | 
				
			||||||
        price = form.Price(form.Amount(1_500_000), '01', ''),
 | 
					        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_supplier.ident = form.PartyIdentification('900373076', '5', '31')
 | 
				
			||||||
    simple_invoice.invoice_customer.ident = form.PartyIdentification('8355990', '5', '31')
 | 
					    simple_invoice.invoice_customer.ident = form.PartyIdentification('8355990', '5', '31')
 | 
				
			||||||
    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
					    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto',
 | 
					        description = 'producto',
 | 
				
			||||||
        item = form.StandardItem(111),
 | 
					        item = form.StandardItem(111),
 | 
				
			||||||
        price = form.Price(form.Amount(5_000), '01', ''),
 | 
					        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_supplier.ident = form.PartyIdentification('900197264', '5', '31')
 | 
				
			||||||
    simple_invoice.invoice_customer.ident = form.PartyIdentification('10254102', '5', '31')
 | 
					    simple_invoice.invoice_customer.ident = form.PartyIdentification('10254102', '5', '31')
 | 
				
			||||||
    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
					    simple_invoice.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto',
 | 
					        description = 'producto',
 | 
				
			||||||
        item = form.StandardItem(111),
 | 
					        item = form.StandardItem(111),
 | 
				
			||||||
        price = form.Price(form.Amount(30_000), '01', ''),
 | 
					        price = form.Price(form.Amount(30_000), '01', ''),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ from facho import fe
 | 
				
			|||||||
def test_invoice_legalmonetary():
 | 
					def test_invoice_legalmonetary():
 | 
				
			||||||
    inv = form.NationalSalesInvoice()
 | 
					    inv = form.NationalSalesInvoice()
 | 
				
			||||||
    inv.add_invoice_line(form.InvoiceLine(
 | 
					    inv.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto facho',
 | 
					        description = 'producto facho',
 | 
				
			||||||
        item = form.StandardItem(9999),
 | 
					        item = form.StandardItem(9999),
 | 
				
			||||||
        price = form.Price(
 | 
					        price = form.Price(
 | 
				
			||||||
@@ -42,7 +42,7 @@ def test_invoice_legalmonetary():
 | 
				
			|||||||
def test_FAU10():
 | 
					def test_FAU10():
 | 
				
			||||||
    inv = form.NationalSalesInvoice()
 | 
					    inv = form.NationalSalesInvoice()
 | 
				
			||||||
    inv.add_invoice_line(form.InvoiceLine(
 | 
					    inv.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto facho',
 | 
					        description = 'producto facho',
 | 
				
			||||||
        item = form.StandardItem(9999),
 | 
					        item = form.StandardItem(9999),
 | 
				
			||||||
        price = form.Price(
 | 
					        price = form.Price(
 | 
				
			||||||
@@ -70,7 +70,7 @@ def test_FAU10():
 | 
				
			|||||||
def test_FAU14():
 | 
					def test_FAU14():
 | 
				
			||||||
    inv = form.NationalSalesInvoice()
 | 
					    inv = form.NationalSalesInvoice()
 | 
				
			||||||
    inv.add_invoice_line(form.InvoiceLine(
 | 
					    inv.add_invoice_line(form.InvoiceLine(
 | 
				
			||||||
        quantity = 1,
 | 
					        quantity = form.Quantity(1),
 | 
				
			||||||
        description = 'producto facho',
 | 
					        description = 'producto facho',
 | 
				
			||||||
        item = form.StandardItem(9999),
 | 
					        item = form.StandardItem(9999),
 | 
				
			||||||
        price = form.Price(
 | 
					        price = form.Price(
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user