feat: Se añade línea para descuadres negatios en el cierre de caja, se añade cuenta en configuración para descuadres positivios

This commit is contained in:
sinergia 2023-08-01 09:21:56 -05:00
parent 36d45a6e55
commit f7d0a61278
4 changed files with 29 additions and 3 deletions

View File

@ -24,6 +24,12 @@ class Configuration(ModelSingleton, ModelView, ModelSQL):
('closed', '!=', True),
],)
account_mismatch_positive = fields.Many2One('account.account', "Account Mismatch Positivo",
domain=[
('company', '=', Eval('company', 0)),
('type', '!=', None),
('closed', '!=', True),
],)
@staticmethod
def default_currency():
Company = Pool().get('company.company')

View File

@ -271,9 +271,13 @@ class CloseStatement(Wizard):
User = pool.get('res.user')
Statement = pool.get('account.statement')
StatementLine = pool.get('account.statement.line')
ConfigurationClosure = pool.get('sale.cash_closures')
config = ConfigurationClosure(8)
user = Transaction().user
user = User(user)
employee_party = user.employee.party.id if user.employee else None
device = user.sale_device
if device:
journals = [j.id for j in device.journals]
draft_statements = {
@ -290,6 +294,7 @@ class CloseStatement(Wizard):
for journal in self.start.statementLines:
account = journal.account
transfer = journal.transfer
mismatch = journal.mismatch
end_balance = journal.end_balance
journal = journal.journal
statement = draft_statements.get(journal)
@ -307,9 +312,24 @@ class CloseStatement(Wizard):
account=account.id)]
)
statement.lines = statement.lines + conciliation
else:
statement.end_balance = end_balance
if mismatch.real > 0:
pass
if (config.mismatch_limit and config.account_mismatch_charge):
if mismatch and (abs(mismatch) >= abs(config.mismatch_limit.real)):
lines = statement.lines
if employee_party == None:
raise UserError(str("Debe definir un Empleado para el Usuario."))
conciliation_mismatch = tuple([StatementLine(
date=datetime.today().date(),
amount=mismatch,
account=config.account_mismatch_charge.id)]
)
statement.lines = statement.lines + conciliation_mismatch
end_balance = abs(end_balance) - abs(mismatch)
statement.end_balance = end_balance
statement.save()
statements.append(statement)
results.append(gettext('sale_payment.close_statement',