Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Maria Agustina
/
tpv_correcciones
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
1
Wiki
Network
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit a8461f78
authored
2022-01-05 19:47:33 -0300
by
Juan
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
A pasar a master
1 parent
b64eba18
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
8 deletions
__manifest__.py
wizard/cobro_discriminado.py
wizard/vista_cobro_discriminado.xml
__manifest__.py
View file @
a8461f7
...
...
@@ -15,6 +15,7 @@
Se Agrega generacion manual para notas de credito y notas
de debito
Se agrega soporte a gastos mobil
Se agrega cobro Avanzado
"""
,
'author'
:
'HGT'
,
...
...
wizard/cobro_discriminado.py
View file @
a8461f7
...
...
@@ -26,6 +26,11 @@ class hgt_cobro_multiple(models.TransientModel):
string
=
'Caja Efectivo'
,
)
caja_cheque
=
fields
.
Many2one
(
comodel_name
=
'asw.caja'
,
string
=
'Caja Cheques'
,
)
nota
=
fields
.
Text
(
string
=
'nota'
,
readonly
=
True
)
pcw_referencia
=
fields
.
Char
(
...
...
@@ -96,9 +101,17 @@ class hgt_cobro_multiple(models.TransientModel):
string
=
'Transferencias Emitidas'
)
#pcw_tarjetas = fields.Many2many(
# comodel_name='asw.valores',
# relation='pago_cliente_tarjeta',
# column1='pago_cliente_id',
# column2='asw_valores_id',
# string='Tarjetas'
#)
pcw_tarjetas
=
fields
.
Many2many
(
comodel_name
=
'asw.valores'
,
relation
=
'pago_cliente_tarjeta'
,
relation
=
'
hgt_
pago_cliente_tarjeta'
,
column1
=
'pago_cliente_id'
,
column2
=
'asw_valores_id'
,
string
=
'Tarjetas'
...
...
@@ -123,6 +136,7 @@ class hgt_cobro_multiple(models.TransientModel):
comodel_name
=
'asw.comprobante'
)
###########################################Validaciones y calculos ######################################
@api.depends
(
'pcw_total'
)
def
_compute_cliente
(
self
):
if
not
len
(
self
.
pcw_cliente
)
==
0
:
...
...
@@ -146,14 +160,12 @@ class hgt_cobro_multiple(models.TransientModel):
Texto
=
f
"{Texto}
\n
{factura.display_name} {factura.comp_adeudado}"
if
not
len
(
idc
)
==
1
:
raise
UserError
(
"Solo se puede cobrar a un cliente a la vez, cierre la ventana y seleccione de vuelta los comprobantes a operar"
)
Texto
=
f
"{Texto}
\n
Total {Total}"
Texto
=
f
"{Texto}
\n
Total {Total}"
.
replace
(
"."
,
","
)
self
.
pcw_cliente
=
idc
[
0
]
self
.
nota
=
Texto
@api.depends
(
'pcw_efectivo'
,
'pcw_che_recibidos'
,
'pcw_transferencias_recibidas'
,
'pcw_tarjetas'
,
'pcw_chq_resiv2'
,
'pcw_transferencias_emitidas'
,
'pcw_retencion_recibida'
,
'pcw_retenciones'
)
def
_calcular_total
(
self
):
total
=
0
...
...
@@ -193,16 +205,26 @@ class hgt_cobro_multiple(models.TransientModel):
if
(
not
factura
.
comp_talonario
.
tal_genera_cta_cte
):
raise
Warning
(
f
"Factura {factura.display_name} no mueve cuenta corriente no puedo manejarla"
)
total
=
self
.
LogicaFacturas
(
factura
,
resivo
,
total
)
#obserbacion = f"""{obserbacion}\n{factura.display_name}"""
resivo
.
aumentar_numeracion_talonario
()
resivo
.
comp_fecha_validacion
=
fields
.
Datetime
.
now
()
resivo
.
generar_monto_adeudado
()
resivo
.
validar_nro_comprobante
()
self
.
ArmarObservaciones
(
facturas
,
resivo
)
resivo
.
generar_monto_adeudado
()
#a prueba
return
(
resivo
)
def
ArmarObservaciones
(
self
,
facturas
,
resivo
):
obserbacion
=
"
\n
Facturas Afectadas | Total | Saldo"
for
factura
in
facturas
:
obserbacion
=
f
"""{obserbacion}
\n
{factura.display_name} | {factura.comp_total} | {factura.comp_adeudado}"""
.
replace
(
"."
,
","
)
resivo
.
comp_observaciones
=
obserbacion
@api.multi
def
generar_recibo
(
self
):
resivo
=
self
.
pago_facturas_masivo
()
self
.
ValoresEnCajas
(
resivo
)
return
{
'view_type'
:
'form'
,
'view_mode'
:
'form'
,
...
...
@@ -213,10 +235,10 @@ class hgt_cobro_multiple(models.TransientModel):
}
def
LogicaFacturas
(
self
,
factura
,
resivo
,
total
):
print
(
factura
.
id
,
factura
.
comp_adeudado
,
total
)
#print(f"factura {factura.display_name},adeudado {factura.comp_adeudado}, total {total}"
)
tmp
=
total
total
=
total
-
factura
.
comp_adeudado
if
t
otal
>=
0.0
:
if
t
mp
>=
0.0
:
self
.
MovimientoCuentaCorriente
(
factura
,
resivo
,
tmp
)
#if total < 0.0:
# total = 0.0
...
...
@@ -229,7 +251,7 @@ class hgt_cobro_multiple(models.TransientModel):
movimiento
=
factura
.
comp_adeudado
if
factura
.
comp_adeudado
>=
total
:
#diff < 0.0:
movimiento
=
total
print
(
movimiento
,
factura
.
display_name
)
#
print( movimiento, factura.display_name)
if
movimiento
<
0.0
:
raise
Warning
(
"debug"
)
cta_cte
=
self
.
env
[
'asw.cta_cte'
]
.
create
({
...
...
@@ -298,3 +320,42 @@ class hgt_cobro_multiple(models.TransientModel):
record
.
write
({
'val_comprobante'
:
self
.
pcw_recibo
.
id
,
'val_tipo'
:
tarjeta_credito
.
id
})
if
(
record
.
val_tipo
.
tv_descripcion
==
'Tarjeta de Débito'
):
record
.
write
({
'val_comprobante'
:
self
.
pcw_recibo
.
id
,
'val_tipo'
:
tarjeta_debito
.
id
})
########################################LOGICA GESTION DE VALORES Y CAJAS ######################################################
def
ValoresEnCajas
(
self
,
resivo
):
#Clasifico el tipo de valor
efectivo
=
[]
cheques
=
[]
transferencias
=
[]
tarjetas
=
[]
for
valor
in
resivo
.
comp_valores
:
if
valor
.
val_tipo
.
tv_tipo
==
"ef"
:
efectivo
.
append
(
valor
)
if
valor
.
val_tipo
.
tv_tipo
==
"chr"
:
cheques
.
append
(
valor
)
if
valor
.
val_tipo
.
tv_tipo
==
"trr"
:
transferencias
.
append
(
valor
)
if
valor
.
val_tipo
.
tv_tipo
==
"ta"
:
tarjetas
.
append
(
valor
)
#Asocio segun el tipo de valor
self
.
MoverValores
(
efectivo
,
self
.
caja_efectivo
.
id
)
self
.
MoverValores
(
cheques
,
self
.
caja_cheque
.
id
)
self
.
MoverValores
(
transferencias
)
self
.
MoverValores
(
tarjetas
)
def
MoverValores
(
self
,
valores
,
caja_destino_id
=
True
):
"""mueve los valores de los recivos segun se configure"""
for
valor
in
valores
:
if
caja_destino_id
==
True
:
caja_destino_id
=
valor
.
valor_caja_id
.
id
if
caja_destino_id
==
False
:
raise
Warning
(
"No esta definida una de las cajas, todos los valores deven tener cajas asignadas"
)
valor
.
valor_caja_id
.
caja_valor_ids
=
[(
3
,
valor
.
id
,)]
#elimino el valor de la caja actual
valor
.
valor_caja_id
=
caja_destino_id
#cambio la caja en el valor
valor
.
valor_caja_id
.
caja_valor_ids
=
[(
4
,
valor
.
id
,)]
#agrego el valor a la caja destino
wizard/vista_cobro_discriminado.xml
View file @
a8461f7
...
...
@@ -25,6 +25,7 @@
<notebook
colspan=
"4"
>
<page
string=
"Cheques Recibidos"
>
<group
col=
"4"
>
<field
name=
"caja_cheque"
colspan=
'4'
/>
<field
name=
"pcw_chq_resiv2"
colspan=
'4'
nolabel=
'1'
widget=
'one2many'
context=
"{'default_val_razon_social' : pcw_cli_razon_social}"
>
<tree
create=
"1"
delete=
"1"
edit=
"1"
editable=
"bottom"
>
<field
name=
"che_banco"
/>
...
...
@@ -58,6 +59,7 @@
<tree
create=
"1"
delete=
"1"
edit=
"1"
editable=
"bottom"
>
<field
name=
"val_tipo"
domain=
"[('tv_tipo','=', 'ta' )]"
string=
'Tarjeta'
options=
"{'no_create': True, 'no_create_edit':True}"
/>
<field
name=
"val_nro_pago"
/>
<field
name=
"valor_caja_id"
/>
<field
name=
"val_monto"
required=
'1'
/>
</tree>
</field>
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment