cierre_turno.py
2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
###############################################################################
# License, author and contributors information in: #
# __manifest__.py file at the root folder of this module. #
###############################################################################
from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
class asw_cierre_turno(models.TransientModel):
_name = 'asw.cierre_turno'
_description = u'Cierre de Turno'
monto = fields.Float(
string = 'Monto'
)
turno = fields.Many2one(
string = 'Turno',
comodel_name = 'asw.turno.caja',
on_delete = 'set null',
)
@api.model
def default_get(self, values):
result = super(asw_cierre_turno, self).default_get(values)
result['turno'] = self.env.context.get('active_id')
return result
@api.multi
def button_save(self):
if not self.turno.display_name: # False cuando no se devolvio ningun registro
raise UserError('''Sr. usuario, no tiene ningun turno registrado para
este día. Por favor corrija su situación y vuelva a intentarlo.''')
if self.turno.turno_estado == 'cerrado':
raise UserError('''El turno que intenta cerrar ya ha sido cerrado''')
self.turno.turno_monto_final_real = self.monto
self.turno.turno_diferencia = self.turno.turno_monto_final_real - self.turno.turno_monto_final
self.turno.turno_estado = 'cerrado'
self.transferir_gerencial()
# obj = self.env.ref('asw_multiples_cajas.aeroo_turno_report_id').report_action(self)
# return obj
def transferir_gerencial(self):
#hace la transferencia a la caja credencial e inactiva la caja del turno
caja_turno = self.turno.turno_caja
caja_turno_val_tot = caja_turno.total_valores
caja_gerencial = self.env.ref('hgt_turnos.asw_caja_gerencial')
val_co = self.env['asw.valores'].crear_valor_salida(caja_turno_val_tot,caja_turno.id)
val_de = self.env['asw.valores'].crear_valor_entrada(caja_turno_val_tot,caja_gerencial.id)
val_co.write({'val_nro_pago': 'Cierre turno de Caja'})
val_de.write({'val_nro_pago': 'Cierre turno de Caja'})
caja_turno.write({
'caja_valor_ids' : [(4,val_co.id)]
})
caja_gerencial.write({
'caja_valor_ids' : [(4,val_de.id)]
})
caja_turno.caja_active = False