modificaciones facturacion electronica
This commit is contained in:
@@ -192,6 +192,7 @@ LET tipo_ncf=NULL
|
||||
LET descripcion_ncf=NULL
|
||||
LET itbis =NULL
|
||||
LET ncf = NULL
|
||||
CALL e41_reset() -- compra electronica 41 (cpprmt001_ecf.4gl)
|
||||
|
||||
|
||||
|
||||
@@ -228,6 +229,29 @@ INPUT BY NAME factura.*,ITBIS,TIPO_NCF,cod_mon,NCF WITHOUT DEFAULTS
|
||||
|
||||
END IF
|
||||
|
||||
ON ACTION compra_e41 ATTRIBUTE(TEXT="Compra Electronica",IMAGE="new")
|
||||
-- e-CF 41: trae el proximo e-NCF y calcula montos desde el neto
|
||||
IF factura.cod_sp IS NULL OR factura.cod_sp_sec IS NULL THEN
|
||||
CALL fgl_winmessage("COMPRA ELECTRONICA","Primero elija el suplidor.","exclamation")
|
||||
NEXT FIELD cod_sp
|
||||
END IF
|
||||
IF e41_captura(factura.cod_sp, factura.cod_sp_sec) THEN
|
||||
LET tipo_ncf = 41
|
||||
SELECT a.descripcion INTO descripcion_ncf FROM cgtb00074 a
|
||||
WHERE a.codigo_fiscal = 41
|
||||
LET ncf = e41_ncf()
|
||||
LET factura.num_doc = e41_ncf()
|
||||
LET factura.valor_fac = e41_neto() -- CxP queda por el neto
|
||||
LET itbis = e41_itbis()
|
||||
DISPLAY BY NAME factura.num_doc, factura.valor_fac, itbis, tipo_ncf, ncf, descripcion_ncf
|
||||
-- lo llena el sistema: no se digita
|
||||
CALL DIALOG.setFieldActive("num_doc", FALSE)
|
||||
CALL DIALOG.setFieldActive("valor_fac", FALSE)
|
||||
CALL DIALOG.setFieldActive("itbis", FALSE)
|
||||
CALL DIALOG.setFieldActive("tipo_ncf", FALSE)
|
||||
CALL DIALOG.setFieldActive("ncf", FALSE)
|
||||
END IF
|
||||
|
||||
AFTER FIELD itbis
|
||||
IF itbis IS NULL THEN
|
||||
CALL msg(16)
|
||||
@@ -1306,7 +1330,9 @@ CLOSE WINDOW busca_sp
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION contab()
|
||||
DEFINE tdebito,tcredito,diferencia DEC(12,2)
|
||||
DEFINE tdebito,tcredito,diferencia DEC(12,2),
|
||||
isr_ctas DEC(12,2),
|
||||
ncf41 VARCHAR(13)
|
||||
LET int_flag = FALSE
|
||||
OPEN WINDOW cpfmwd007 AT 10,3 WITH FORM "cpfmwd007"
|
||||
ATTRIBUTE(BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST)
|
||||
@@ -1380,6 +1406,16 @@ END CASE
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME descripcion ATTRIBUTE(BLUE)
|
||||
|
||||
-- compra electronica 41: cuenta marcada como retencion -> ISR retenido
|
||||
IF e41_activo() THEN
|
||||
IF e41_cuenta_isr(cuentas[curr].cuenta_no) THEN
|
||||
IF NVL(cuentas[curr].debito,0) = 0 AND NVL(cuentas[curr].credito,0) = 0 THEN
|
||||
LET cuentas[curr].credito = e41_isr()
|
||||
DISPLAY cuentas[curr].credito TO cuentas1[curr1].credito
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF cuentas[curr].cuenta_no = cuenta_mayor THEN
|
||||
CALL msg(192)
|
||||
@@ -1510,7 +1546,36 @@ END CASE
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
|
||||
-- compra electronica 41: el ISR de las cuentas de retencion debe ser el calculado
|
||||
IF e41_activo() THEN
|
||||
LET isr_ctas = 0
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF cuentas[idx].cuenta_no IS NOT NULL THEN
|
||||
IF e41_cuenta_isr(cuentas[idx].cuenta_no) THEN
|
||||
LET isr_ctas = isr_ctas + NVL(cuentas[idx].credito,0) - NVL(cuentas[idx].debito,0)
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
IF isr_ctas <> e41_isr() THEN
|
||||
CALL fgl_winmessage("COMPRA ELECTRONICA",
|
||||
"La retencion de ISR en las cuentas ("||isr_ctas||") no es igual a la calculada ("||e41_isr()||").\n"||
|
||||
"Use una cuenta marcada como retencion en el catalogo.","stop")
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
END IF
|
||||
|
||||
BEGIN WORK
|
||||
|
||||
-- compra electronica 41: se reserva el e-NCF ahora (si se cancela no se pierde)
|
||||
IF e41_activo() THEN
|
||||
LET ncf41 = e41_reserva_ncf()
|
||||
IF ncf41 IS NULL THEN
|
||||
ROLLBACK WORK
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
LET factura.num_doc = ncf41
|
||||
LET ncf = ncf41
|
||||
END IF
|
||||
###### Insertando registros en la Maestra de cuentas por Pagar ####
|
||||
|
||||
LET cod_sp1 = factura.cod_sp
|
||||
@@ -1668,8 +1733,18 @@ LET credito=factura.valor_fac
|
||||
END IF
|
||||
END FOR
|
||||
CALL cuadrada(factura.cod_sp,factura.cod_sp_sec,factura.num_doc) RETURNING cuadradatrx
|
||||
IF cuadradatrx AND e41_activo() THEN
|
||||
IF NOT e41_guarda(factura.cod_sp,factura.cod_sp_sec,factura.num_doc,factura.fecha_orig) THEN
|
||||
LET cuadradatrx = FALSE
|
||||
END IF
|
||||
END IF
|
||||
IF cuadradatrx THEN
|
||||
COMMIT WORK
|
||||
-- compra electronica 41: envio a la DGII
|
||||
IF e41_activo() THEN
|
||||
CALL e41_envia(factura.cod_sp,factura.cod_sp_sec,factura.num_doc,
|
||||
factura.fecha_orig,factura.fecha_proc,factura.detalle)
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
ROLLBACK WORK
|
||||
|
||||
Reference in New Issue
Block a user