modificaciones facturacion electronica

This commit is contained in:
Luis
2026-10-15 16:07:57 -04:00
parent 07649704b1
commit ba982b7635
158 changed files with 206301 additions and 27838 deletions
+92 -4
View File
@@ -213,8 +213,34 @@ MAIN
EXIT PROGRAM
END IF
# Provincia/municipio del emisor (e-CF) salen de companias, no de vetb00020
CALL ubicacion_emisor_dgii(id_provincia_dgii, id_municipio_dgii)
RETURNING id_provincia_dgii, id_municipio_dgii
CALL ccprmt001()
END MAIN
# Provincia y municipio del EMISOR para el e-CF (codigos DGII de 6 digitos)
# tomados de companias.id_dgii / companias.id_municipio_dgii.
# vetb00020 queda solo para la ubicacion de los clientes.
# Si companias no los tiene, se dejan los valores recibidos.
FUNCTION ubicacion_emisor_dgii(pprovincia, pmunicipio)
DEFINE pprovincia, pmunicipio STRING
DEFINE vprovincia, vmunicipio INTEGER
LET vprovincia = NULL
LET vmunicipio = NULL
SELECT a.id_dgii, a.id_municipio_dgii
INTO vprovincia, vmunicipio
FROM companias a
IF vprovincia IS NOT NULL THEN
LET pprovincia = vprovincia USING "&&&&&&"
END IF
IF vmunicipio IS NOT NULL THEN
LET pmunicipio = vmunicipio USING "&&&&&&"
END IF
RETURN pprovincia, pmunicipio
END FUNCTION
####### Funcion para agregar un recibo de pago
FUNCTION ccprmt001()
@@ -280,6 +306,13 @@ FUNCTION ccpcad001()
LET idtipo = NULL
CALL tiposModificacion()
CALL localidades("1")
# Lista de la Localidad del encabezado (xsucid): antes no se llenaba
# y el campo quedaba vacio sin opciones; por defecto la del usuario
CALL localidades("2")
IF xsucid IS NULL THEN
LET xsucid = codigo_sucursal
DISPLAY BY NAME xsucid
END IF
LET recibo.fecha_orig = fecha1
LET valor_ctrl = NULL
LET tipo_ant = "RC"
@@ -871,7 +904,7 @@ FUNCTION ccpcad001()
WHERE kncf BETWEEN a.ncf_inicial AND a.ncf_final
AND a.tipo_doc = recibo.tipo_doc
AND a.codigo_dgii = codigodgii
AND a.disponible = "S"
AND UPPER(a.disponible) = "S"
IF STATUS = NOTFOUND THEN
LET numero_msg = 391
@@ -884,7 +917,9 @@ FUNCTION ccpcad001()
CALL msg(16)
NEXT FIELD idtipo
END IF
IF ptipo_nc IS NULL THEN
# El tipo de nota (devolucion / sin ITBIS / otros creditos) solo
# aplica a la nota de CREDITO; la de debito no lo lleva
IF recibo.tipo_doc = 'NC' AND ptipo_nc IS NULL THEN
CALL msg(16)
NEXT FIELD ptipo_nc
END IF
@@ -1800,6 +1835,14 @@ FUNCTION ccpcad001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -1865,6 +1908,14 @@ FUNCTION ccpcad001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -2277,6 +2328,14 @@ FUNCTION ccpcmf001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -2343,6 +2402,14 @@ FUNCTION ccpcmf001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -3362,6 +3429,14 @@ FUNCTION ccpcmf001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -3429,6 +3504,14 @@ FUNCTION ccpcmf001()
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
ELSE
# No se encontro el diseno del reporte: avisar (antes salia del programa sin
# mensaje y, en NC/ND, sin generar ni enviar el e-CF, que va dentro del reporte)
CALL fgl_winmessage("REPORTE",
"No se encontro el diseno del reporte: " || r_filename ||
"
El documento quedo grabado pero NO se imprimio" ||
" (en notas de credito/debito tampoco se envio el e-CF a la DGII).",
"stop")
EXIT PROGRAM
END IF
--run the report
@@ -5913,7 +5996,7 @@ FUNCTION calculo_nc(documento_alm, pcodigo_mov, tasa, ptipo)
FROM iptb00002 a, vetb00003 b, vetb00002 c, iptb00006 d
WHERE b.factura = xfactura
AND b.factura = c.factura
AND b.sucid = c.sucid
AND ( b.sucid = c.sucid OR b.sucid IS NULL OR c.sucid IS NULL OR b.sucid = 0 OR c.sucid = 0 )
AND a.cod_n = b.cod_n
AND a.cod_grupo = b.cod_grupo
AND a.cod_tipo = b.cod_tipo
@@ -5967,7 +6050,7 @@ FUNCTION calculo_nc(documento_alm, pcodigo_mov, tasa, ptipo)
WHERE b.factura =",
xfactura,
" AND b.factura = c.factura AND
b.sucid = c.sucid AND
( b.sucid = c.sucid OR b.sucid IS NULL OR c.sucid IS NULL OR b.sucid = 0 OR c.sucid = 0 ) AND
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND
a.cod_sec = b.cod_sec
"
@@ -5988,6 +6071,11 @@ FUNCTION calculo_nc(documento_alm, pcodigo_mov, tasa, ptipo)
END IF
END FOREACH
IF j = 1 THEN
CALL fgl_winmessage("NOTA",
"No se encontraron productos con precio en la factura indicada.\nVerifique el numero de factura y su localidad.",
"exclamation")
END IF
DISPLAY BY NAME tvalor_bruto, tdescuento, tsub_total, titbis, tneto
INPUT ARRAY arr_articulos
FROM sproductos.*