#!/usr/bin/env python # -*- coding: utf-8 -*- # This file is part of facho. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. """Nuevo esquema para modelar segun decreto""" from datetime import datetime import pytest import facho.fe.model as model import facho.fe.form as form from facho import fe def _test_simple_invoice(): invoice = model.Invoice() invoice.id = '323200000129' invoice.issue = datetime.strptime('2019-01-16 10:53:10-05:00', '%Y-%m-%d %H:%M:%S%z') invoice.supplier.party.id = '700085371' invoice.customer.party.id = '800199436' line = invoice.lines.create() line.quantity = 1 line.price = form.Amount(5_000) subtotal = line.taxtotal.subtotals.create() subtotal.percent = 19.0 assert '3232000001292019-01-16T10:53:10-05:0010:5310-05:0070008537180019943610.00.00.019.019.05000.05000.05000.00.00.00.00.019.019.0010.00.00.0040.00.00.003' == invoice.to_xml() def test_simple_invoice_cufe(): invoice = model.Invoice() invoice.technical.token = '693ff6f2a553c3646a063436fd4dd9ded0311471' invoice.technical.environment = fe.AMBIENTE_PRODUCCION invoice.id = '323200000129' invoice.issue = datetime.strptime('2019-01-16 10:53:10-05:00', '%Y-%m-%d %H:%M:%S%z') invoice.supplier.party.id = '700085371' invoice.customer.party.id = '800199436' line = invoice.lines.create() line.add_tax(model.TaxIva(19.0)) # TODO(bit4bit) acoplamiento temporal # se debe crear primero el subotatl # para poder calcularse al cambiar el precio line.quantity = 1 line.price = 1_500_000 assert invoice.cufe == '8bb918b19ba22a694f1da11c643b5e9de39adf60311cf179179e9b33381030bcd4c3c3f156c506ed5908f9276f5bd9b4'