check balance early; cierre caja always debe
This commit is contained in:
parent
1d14d231d4
commit
0fb696365a
40
account.py
40
account.py
|
@ -1,3 +1,4 @@
|
||||||
|
import logging
|
||||||
from retrofix.exception import RetrofixException
|
from retrofix.exception import RetrofixException
|
||||||
from retrofix.fields import Char, Date, Field, Integer
|
from retrofix.fields import Char, Date, Field, Integer
|
||||||
from retrofix.record import Record
|
from retrofix.record import Record
|
||||||
|
@ -12,6 +13,7 @@ from trytond.transaction import Transaction
|
||||||
__all__ = ['AccountImportContaplus', 'AccountImportContaplusStart',
|
__all__ = ['AccountImportContaplus', 'AccountImportContaplusStart',
|
||||||
'ImportRecord', 'Move', 'Invoice']
|
'ImportRecord', 'Move', 'Invoice']
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class DecimalField(Field):
|
class DecimalField(Field):
|
||||||
# decimals in files are separated by period '.'
|
# decimals in files are separated by period '.'
|
||||||
|
@ -88,7 +90,7 @@ def not_balance(move):
|
||||||
lambda t_cd, line:
|
lambda t_cd, line:
|
||||||
add_tupla2(t_cd, (line.credit, line.debit)),
|
add_tupla2(t_cd, (line.credit, line.debit)),
|
||||||
move.lines,
|
move.lines,
|
||||||
[0,0])
|
[0, 0])
|
||||||
return credit_debit[0] != credit_debit[1]
|
return credit_debit[0] != credit_debit[1]
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,7 +118,7 @@ class Move:
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_origin(cls):
|
def _get_origin(cls):
|
||||||
'Return list of Model names for origin Reference'
|
'Return list of Model names for origin Reference'
|
||||||
return super(Move, cls)._get_origin() + ['import.record']
|
return super(Move, cls)._get_origin() + ['import.record']
|
||||||
|
|
||||||
|
|
||||||
class Invoice:
|
class Invoice:
|
||||||
|
@ -126,7 +128,7 @@ class Invoice:
|
||||||
@classmethod
|
@classmethod
|
||||||
def _get_origin(cls):
|
def _get_origin(cls):
|
||||||
'Return list of Model names for origin Reference'
|
'Return list of Model names for origin Reference'
|
||||||
return super(Invoice, cls)._get_origin() + ['import.record']
|
return super(Invoice, cls)._get_origin() + ['import.record']
|
||||||
|
|
||||||
|
|
||||||
class ImportRecord(ModelSQL, ModelView):
|
class ImportRecord(ModelSQL, ModelView):
|
||||||
|
@ -258,13 +260,14 @@ class AccountImportContaplus(Wizard):
|
||||||
# swap debe haber in some cases due to error.
|
# swap debe haber in some cases due to error.
|
||||||
# in caja the concepto/clave determines if it is debe or haber.
|
# in caja the concepto/clave determines if it is debe or haber.
|
||||||
if iline.concepto.strip() in ('',
|
if iline.concepto.strip() in ('',
|
||||||
'TALON RTTE',
|
'TALON RTTE',
|
||||||
'CLAVE MANUAL',
|
'CLAVE MANUAL',
|
||||||
'PAGO ITV',
|
'PAGO ITV',
|
||||||
'DESEMBOLSO',
|
'DESEMBOLSO',
|
||||||
'TRASP. A BAN',
|
'TRASP. A BAN',
|
||||||
'TRASP. A BANC',
|
'TRASP. A BANC',
|
||||||
'ANTICP-VALES'):
|
'ANTICP-VALES',
|
||||||
|
'cierre de caja'):
|
||||||
line.debit = iline.euro_haber + iline.euro_debe
|
line.debit = iline.euro_haber + iline.euro_debe
|
||||||
line.credit = 0
|
line.credit = 0
|
||||||
else:
|
else:
|
||||||
|
@ -287,6 +290,11 @@ class AccountImportContaplus(Wizard):
|
||||||
def check_totals(self, invoices, totals):
|
def check_totals(self, invoices, totals):
|
||||||
for invoice in invoices.values():
|
for invoice in invoices.values():
|
||||||
if not invoice.total_amount == totals[invoice.number]:
|
if not invoice.total_amount == totals[invoice.number]:
|
||||||
|
logger.info('unmatch total')
|
||||||
|
logger.info(invoice.total_amount)
|
||||||
|
logger.info(totals[invoice.number])
|
||||||
|
for line in invoice.lines:
|
||||||
|
logger.info(line.unit_price)
|
||||||
self.raise_user_error('unmatch total invoice',
|
self.raise_user_error('unmatch total invoice',
|
||||||
{'invoice': invoice.number})
|
{'invoice': invoice.number})
|
||||||
return True
|
return True
|
||||||
|
@ -300,6 +308,7 @@ class AccountImportContaplus(Wizard):
|
||||||
|
|
||||||
def import_invoices(self, company, imp_record):
|
def import_invoices(self, company, imp_record):
|
||||||
|
|
||||||
|
logger.info("start import invoice")
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
Invoice = pool.get('account.invoice')
|
Invoice = pool.get('account.invoice')
|
||||||
Line = pool.get('account.invoice.line')
|
Line = pool.get('account.invoice.line')
|
||||||
|
@ -383,12 +392,19 @@ class AccountImportContaplus(Wizard):
|
||||||
self.add_tax_invoice(invoice, vat)
|
self.add_tax_invoice(invoice, vat)
|
||||||
|
|
||||||
if to_create:
|
if to_create:
|
||||||
|
logger.info("save")
|
||||||
Invoice.save(to_create.values())
|
Invoice.save(to_create.values())
|
||||||
|
logger.info("update_taxes")
|
||||||
Invoice.update_taxes(to_create.values())
|
Invoice.update_taxes(to_create.values())
|
||||||
|
logger.info("check total")
|
||||||
|
self.check_totals(to_create, totals)
|
||||||
|
logger.info("post")
|
||||||
|
# for inv in to_create.values():
|
||||||
|
# print("posting")
|
||||||
|
# print(inv.number)
|
||||||
|
# Invoice.post([inv])
|
||||||
Invoice.post(to_create.values())
|
Invoice.post(to_create.values())
|
||||||
|
|
||||||
self.check_totals(to_create, totals)
|
|
||||||
|
|
||||||
return to_create
|
return to_create
|
||||||
|
|
||||||
def create_import_record(self):
|
def create_import_record(self):
|
||||||
|
|
Loading…
Reference in New Issue