facho/fe/form: nuevo tipo UNSPSCItem.
FossilOrigin-Name: e5c3ad234c2757c56e942b27fa28de3105b59509a258214018be566d33319df9
This commit is contained in:
parent
f4c2282e3d
commit
a655dfd2c9
@ -100,15 +100,31 @@ class Amount:
|
||||
|
||||
@dataclass
|
||||
class Item:
|
||||
scheme_name: str
|
||||
scheme_agency_id: str
|
||||
scheme_id: str
|
||||
description: str
|
||||
id: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class StandardItem(Item):
|
||||
pass
|
||||
def __init__(self, id_: str, description: str = ''):
|
||||
super().__init__(id=id_,
|
||||
description=description,
|
||||
scheme_name='',
|
||||
scheme_id='999',
|
||||
scheme_agency_id='')
|
||||
|
||||
|
||||
class UNSPSCItem(Item):
|
||||
def __init__(self, id_: str, description: str = ''):
|
||||
super().__init__(id=id_,
|
||||
description=description,
|
||||
scheme_name='UNSPSC',
|
||||
scheme_id='001',
|
||||
scheme_agency_id='10')
|
||||
|
||||
|
||||
@dataclass
|
||||
class Country:
|
||||
code: str
|
||||
|
@ -514,8 +514,13 @@ class DIANInvoiceXML(fe.FeXML):
|
||||
line.set_element('./cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:ID', subtotal.tax_scheme_ident)
|
||||
line.set_element('./cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:Name', subtotal.tax_scheme_name)
|
||||
line.set_element('./cac:Item/cbc:Description', invoice_line.item.description)
|
||||
# TODO
|
||||
line.set_element('./cac:Item/cac:StandardItemIdentification/cbc:ID', invoice_line.item.id)
|
||||
|
||||
line.set_element('./cac:Item/cac:StandardItemIdentification/cbc:ID',
|
||||
invoice_line.item.id,
|
||||
schemeID=invoice_line.item.scheme_id,
|
||||
schemeName=invoice_line.item.scheme_name,
|
||||
schemeAgencyID=invoice_line.item.scheme_agency_id)
|
||||
|
||||
line.set_element('./cac:Price/cbc:PriceAmount', invoice_line.price.amount, currencyID="COP")
|
||||
#DIAN 1.7.-2020: FBB04
|
||||
line.set_element('./cac:Price/cbc:BaseQuantity', invoice_line.price.amount)
|
||||
|
@ -131,7 +131,7 @@ def simple_invoice():
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem('test', 9999),
|
||||
item = form.StandardItem( 9999),
|
||||
price = form.Price(form.Amount(100.0), '01', ''),
|
||||
tax = form.TaxTotal(
|
||||
tax_amount = form.Amount(0.0),
|
||||
|
@ -91,7 +91,7 @@ def test_invoice_totals(simple_invoice_without_lines):
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto',
|
||||
item = form.StandardItem('test', 9999),
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(form.Amount(1_500_000), '01', ''),
|
||||
tax = form.TaxTotal(
|
||||
subtotals = [
|
||||
@ -114,7 +114,7 @@ def test_invoice_cufe(simple_invoice_without_lines):
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto',
|
||||
item = form.StandardItem('test', 111),
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(1_500_000), '01', ''),
|
||||
tax = form.TaxTotal(
|
||||
subtotals = [
|
||||
@ -179,7 +179,7 @@ def test_credit_note_cude(simple_credit_note_without_lines):
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto',
|
||||
item = form.StandardItem('test', 111),
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(5_000), '01', ''),
|
||||
tax = form.TaxTotal(
|
||||
subtotals = [
|
||||
@ -214,7 +214,7 @@ def test_debit_note_cude(simple_debit_note_without_lines):
|
||||
simple_invoice.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto',
|
||||
item = form.StandardItem('test', 111),
|
||||
item = form.StandardItem(111),
|
||||
price = form.Price(form.Amount(30_000), '01', ''),
|
||||
tax = form.TaxTotal(
|
||||
subtotals = [
|
||||
|
@ -18,7 +18,7 @@ def test_invoice_legalmonetary():
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem('test', 9999),
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
amount = form.Amount(100.0),
|
||||
type_code = '01',
|
||||
@ -44,7 +44,7 @@ def test_FAU10():
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem('test', 9999),
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
amount = form.Amount(100.0),
|
||||
type_code = '01',
|
||||
@ -72,7 +72,7 @@ def test_FAU14():
|
||||
inv.add_invoice_line(form.InvoiceLine(
|
||||
quantity = 1,
|
||||
description = 'producto facho',
|
||||
item = form.StandardItem('test', 9999),
|
||||
item = form.StandardItem(9999),
|
||||
price = form.Price(
|
||||
amount = form.Amount(100.0),
|
||||
type_code = '01',
|
||||
|
Loading…
Reference in New Issue
Block a user