Commit 5c69565b authored by Daniel Santibáñez Polanco's avatar Daniel Santibáñez Polanco
Browse files

[WIP]Versión Beta

- Emite Documetnos Válidos
- Se necesita test
- Mejorar la usabilidad
parent c053f66e
# l10n_cl_dte_exportacion
Modulo para la emisión de Factura, nota de Crédito, Nota de Débito de Exportación Electrónica
- no usable aún
- Estado
-- Emitiendo Documentos Válidos
-- Necesita ajustes Usabilidad ( sobre todo al agregar una exportación)
-- Necesita mayor BI de Exportración ( Sobre todo con los incoterms, fletes y seguros)
-- No se ha hecho una certificación aún, pero si los ejemplos
......@@ -43,7 +43,7 @@ class Exportacion(models.Model):
)
def format_vat(self, value, con_cero=False):
if self._es_exportacion() and not value or value=='' or value == 0:
if self._es_exportacion() and self.commercial_partner_id.vat == value:
value = "CL555555555"
return super(Exportacion, self).format_vat(value, con_cero)
......@@ -59,6 +59,48 @@ class Exportacion(models.Model):
return True
return False
def _totales_normal(self, currency_id, MntExe, MntNeto, IVA, TasaIVA, ImptoReten, MntTotal=0):
if not self._es_exportacion():
return super(Exportacion, self)._totales_normal(currency_id, MntExe, MntNeto, IVA, TasaIVA, ImptoReten, MntTotal)
if IVA:
raise UserError("No debe haber Productos con IVA")
Totales = collections.OrderedDict()
if currency_id:
Totales['TpoMoneda'] = currency_id.abreviatura
Totales['MntExe'] = MntExe
Totales['MntTotal'] = MntTotal
#Totales['MontoNF']
#Totales['TotalPeriodo']
#Totales['SaldoAnterior']
#Totales['VlrPagar']
return Totales
def _totales_otra_moneda(self, currency_id, MntExe, MntNeto, IVA, TasaIVA, ImptoReten, MntTotal=0):
if not self._es_exportacion():
return super(Exportacion, self)._totales_otra_moneda(currency_id, MntExe, MntNeto, IVA, TasaIVA, ImptoReten, MntTotal)
Totales = collections.OrderedDict()
Totales['TpoMoneda'] = self._acortar_str(self.company_id.currency_id.abreviatura, 15)
Totales['TpoCambio'] = currency_id.rate
if MntExe:
if currency_id:
MntExe = currency_id.compute(MntExe, self.company_id.currency_id)
Totales['MntExeOtrMnda'] = MntExe
if currency_id:
MntTotal = currency_id.compute(MntTotal, self.company_id.currency_id)
Totales['MntTotOtrMnda'] = MntTotal
return Totales
def _aplicar_gdr(self, MntExe):
gdr = self.porcentaje_dr()
MntExe *= gdr
return self.currency_id.round( MntExe )
def _totales(self, MntExe=0, no_product=False, taxInclude=False):
MntExe, MntNeto, MntIVA, TasaIVA, ImptoReten, MntTotal = super(Exportacion, self)._totales(MntExe, no_product, taxInclude)
if self._es_exportacion():
MntExe = self._aplicar_gdr(MntExe)
return MntExe, MntNeto, MntIVA, TasaIVA, ImptoReten, MntTotal
def _bultos(self, bultos):
Bultos = []
for b in bultos:
......@@ -76,8 +118,8 @@ class Exportacion(models.Model):
Aduana['CodModVenta'] = self.payment_term_id.forma_pago_aduanas.code
if self.incoterms_id:
Aduana['CodClauVenta'] = self.incoterms_id.aduanas_code
mnt_clau = 0
Aduana['TotClauVenta'] = round(self.payment_term_id.compute(self.amount_total), 2)
mnt_clau = self.payment_term_id.with_context(currency_id=self.currency_id.id).compute(self.amount_total, date_ref=self.date_invoice)[0]
Aduana['TotClauVenta'] = round(mnt_clau[0][1], 2)
if expo.via:
Aduana['CodViaTransp'] = expo.via.code
if expo.chofer_id:
......@@ -112,10 +154,14 @@ class Exportacion(models.Model):
#Aduana['IdContainer'] =
#Aduana['Sello'] =
#Aduana['EmisorSello'] =
Aduana['MntFlete'] = expo.monto_flete
Aduana['MntSeguro'] = expo.monto_seguro
Aduana['CodPaisRecep'] = expo.pais_recepcion.name
Aduana['CodPaisDestin'] = expo.pais_destino.code
if expo.monto_flete:
Aduana['MntFlete'] = expo.monto_flete
if expo.monto_seguro:
Aduana['MntSeguro'] = expo.monto_seguro
if expo.pais_recepcion:
Aduana['CodPaisRecep'] = expo.pais_recepcion.code
if expo.pais_destino:
Aduana['CodPaisDestin'] = expo.pais_destino.code
return Aduana
def _transporte(self):
......
......@@ -25,7 +25,7 @@ class Exportacion(models.Model):
elif gdr.aplicacion == 'seguro':
mnt_seguro += gdr.valor
r.monto_flete = mnt_flete
r.monto_flete = mnt_seguro
r.monto_seguro = mnt_seguro
pais_destino = fields.Many2one(
'aduanas.paises',
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment