primer commit subida

This commit is contained in:
Luis
2026-09-22 20:38:51 -04:00
commit 07649704b1
10247 changed files with 3271751 additions and 0 deletions
+272
View File
@@ -0,0 +1,272 @@
{
######################################################################
Programa : CPPRRP018
Proceso : Generacion File DGII
Sistema : Cuenta Por Pagar
Autor : JUAN SOTO
Fecha : SEPTIEMBRE 3, 2008
#######################################################################
}
GLOBALS
"cpprgb000.4gl"
DEFINE celda,rval,p_cmd,arch_pc,xval,xcol,file_name,
prog,file_excel,fila_excel STRING,
p_res int,rcol VARCHAR(10),
xi SMALLINT,
total_facturado DEC(12,2)
MAIN
DEFER INTERRUPT
CALL STARTLOG("cp18.txt")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "marmotech" user usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL cpprrp018()
END MAIN
FUNCTION cpprrp018()
DEFINE fecha1,fecha2 date,
pcodsp,pcodspsec INT,
periodo CHAR(6),
cels,pnumdoc,xcuenta_no CHAR(10),
kmes,kano,numero_c,pcod_sp,xcodigo_isr,pcodigofiscal,pcel,prow SMALLINT,
archivo1,filename CHAR(200),
facturado,pitbis,pvalor,retencion,itbisretenido,xvalor DEC(12,2),
documento,prnc,pcedula CHAR(11),
pdescripcion CHAR(30),
strfiscal,xtipo_cuenta,xselectivo_consumo CHAR(40),
mess CHAR(200),
pncf CHAR(19),
pfecha DATE,
periodo1 CHAR(6),
idioma_office CHAR(20)
CLEAR SCREEN
OPTIONS
FORM LINE 8
OPEN FORM cpfmrp018 FROM "cpfmrp018"
DISPLAY "cpprrp018" AT 4,3 ATTRIBUTE(blue)
DISPLAY "GENERA FILE 606 PARA LA DGII" AT 6,17
DISPLAY FORM cpfmrp018
LET int_flag = FALSE
INPUT BY NAME fecha1,fecha2,pcod_sp,idioma_office
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET kmes = MONTH(fecha2)
LET kano = YEAR(fecha2)
LET periodo = kano USING "&&&&",kmes USING "&&"
LET prog = "EXCEL"
IF idioma_office = "E" THEN
LET fila_excel = "F"
ELSE
LET fila_excel = "R"
END IF
CALL ui.Interface.frontCall("standard","getenv", ["USDGII606"], [file_name] )
#LET arch_pc='"',file,'"' -- le agrega las comillas por si hay blancos (solo se necesita para shellexec)
LET arch_pc=FILE_name CLIPPED --PARA OFFICE 2010 en adelante no es necesario colocar las comillas.
CALL ui.Interface.frontCall("standard","shellexec", [arch_pc], [p_res] )
CALL chqDdeError(p_res,"shellexec "||arch_pc)
CALL ui.Interface.frontCall("WINDDE","DDEConnect", [prog,arch_pc], [p_res] )
CALL chqDdeError(p_res,"DDEConnect "||arch_pc)
CALL ui.Interface.refresh()
SELECT count(*),SUM(b.valor-a.monto_itbi) INTO NUMERO_C,facturado FROM cptb00004 a,cptb00001 b
WHERE (a.cod_sp = b.cod_sp) AND
(a.cod_sp = pcod_sp) AND
(a.cod_sp_Sec = b.cod_sp_sec AND a.ncf=a.ncf AND a.num_doc = a.num_doc) AND
(a.num_doc = b.num_doc) AND b.tipo_doc <> 'CK' AND
b.fecha_orig BETWEEN fecha1 AND fecha2 AND b.status_t IS NULL
LET rcol = "C3"
LET xi = 5
CALL pru_new_dde(periodo,rcol,xi)
{CANTIDAD REGISTORS}
LET rcol = "C3"
LET xi = 6
CALL pru_new_dde(numero_c,rcol,xi)
CALL fgl_winmessage("Hoja de Excel Formulario 606",
"Debe Ejecutar el boton INICIO en la hoja de excel","Info")
DECLARE busca_datos CURSOR FOR
SELECT a.rnc,b.codigo_fiscal,c.descripcion,b.ncf,Convert(varchar(10),d.fecha_orig,103),AVG(b.monto_itbi),AVG(d.valor)-AVG(b.monto_itbi),
b.num_doc,a.cod_sp,a.cod_sp_sec,f.tipo_cuenta,f.selectivo_consumo,
SUM(g.debito+g.credito),x1.codigo_isr
FROM cotb00001 a,cptb00004 b,cgtb00074 c,cptb00001 d,cgtb00001 f
LEFT OUTER JOIN cgtb00077 x1 ON f.codigo_isr = x1.codigo_isr,
cptb00003 g
WHERE a.cod_sp = pcod_sp AND
a.cod_sp = b.cod_sp AND
a.cod_sp_Sec = b.cod_sp_sec AND
a.cod_sp = d.cod_sp AND
a.cod_sp_sec = d.cod_sp_sec AND
b.codigo_fiscal = c.codigo_fiscal AND
b.num_doc = d.num_doc AND d.tipo_doc = 'FT' AND
g.cuenta_no = f.cuenta_no AND (F.tipo_cuenta in ('BIENES','SERVICIOS') OR f.selectivo_consumo='SI') AND
g.cod_sp = d.cod_sp AND g.cod_sp_sec = d.cod_sp_sec AND
g.factura =d.num_doc AND
g.cod_sp = b.cod_sp AND g.cod_sp_sec = b.cod_sp_sec and
d.fecha_orig BETWEEN fecha1 AND fecha2 AND d.status_t IS NULL
GROUP BY a.rnc,b.codigo_fiscal,c.descripcion,b.ncf,d.fecha_orig,b.num_doc,
a.cod_sp,a.cod_sp_sec,f.tipo_cuenta,f.selectivo_consumo,x1.codigo_isr
ORDER BY a.rnc
LET prow = 12
LET pcel = 2
LET total_facturado = 0
FOREACH busca_datos INTO prnc,pcodigofiscal,pdescripcion,pncf,pfecha,pitbis,pvalor,
pnumdoc,pcodsp,pcodspsec,xtipo_cuenta,xselectivo_consumo,
xvalor,xcodigo_isr,xcuenta_no
LET rcol = "C2"
LET xi = prow
CALL pru_new_dde(prnc,rcol,xi)
LET strfiscal = pcodigofiscal USING "&&","-",pdescripcion CLIPPED
LET rcol = "C4"
LET xi = prow
CALL pru_new_dde(strfiscal,rcol,xi)
LET rcol = "C5"
LET xi = prow
CALL pru_new_dde(pncf,rcol,xi)
LET periodo1 = YEAR(pfecha) USING "&&&&",MONTH(pfecha) USING "&&"
LET rcol = "C7"
LET xi = prow
CALL pru_new_dde(periodo1,rcol,xi)
LET rcol = "C8"
LET xi = prow
CALL pru_new_dde(DAY(pfecha),rcol,xi)
LET rcol = "C9"
LET xi = prow
CALL pru_new_dde(periodo1,rcol,xi)
LET rcol = "C11"
LET xi = prow
IF xtipo_cuenta = "SERVICIOS" THEN
CALL pru_new_dde(xvalor,rcol,xi)
ELSE
CALL pru_new_dde(0,rcol,xi)
END IF
LET rcol = "C12"
LET xi = prow
IF xtipo_cuenta = "BIENES" THEN
CALL pru_new_dde(xvalor,rcol,xi)
ELSE
CALL pru_new_dde(0,rcol,xi)
END IF
IF pvalor IS NULL THEN
LET pvalor = 0
END IF
LET rcol = "C13"
LET xi = prow
CALL pru_new_dde(pvalor,rcol,xi)
LET total_facturado = total_facturado + pvalor
LET rcol = "C14"
LET xi = prow
CALL pru_new_dde(pitbis,rcol,xi)
IF xcodigo_isr IS NOT NULL THEN
LET retencion = 0
SELECT SUM(a.credito) INTO retencion
FROM cptb00003 a
WHERE a.cod_sp = pcodsp AND
a.cod_sp_Sec = pcodspsec AND
a.factura = pnumdoc and
a.cuenta_no = xcuenta_no
LET itbisretenido = 0
SELECT SUM(a.credito) INTO itbisretenido
FROM cptb00003 a
WHERE a.cod_sp = pcodsp AND
a.cod_sp_Sec = pcodspsec AND
a.factura = pnumdoc and
a.cuenta_no = xcuenta_no
LET rcol = "C15"
LET xi = prow
CALL pru_new_dde(itbisretenido,rcol,xi)
LET rcol = "C16"
LET xi = prow
CALL pru_new_dde(retencion,rcol,xi)
END IF
LET prow = prow + 1
END FOREACH
LET rcol = "C3"
LET xi = 7
CALL pru_new_dde(total_facturado,rcol,xi)
END FUNCTION
FUNCTION pru_new_dde(xval,xcol,i)
DEFINE celda,rval,xval,xcol STRING
DEFINE i INTEGER
LET celda = fila_excel,i USING "<<<<&",xcol CLIPPED
LET rval = xval
CALL ui.Interface.frontCall("WINDDE","DDEPoke", [prog,arch_pc,celda,rval], [p_res] )
CALL chqDdeError(p_res,"DDEPoke "||celda)
END FUNCTION
FUNCTION chqDdeError(p_res,p_msg)
DEFINE p_res INTEGER,
p_msg STRING,
m_err STRING,
m_log STRING
IF p_res THEN
RETURN
END IF
CALL ui.Interface.frontCall("WINDDE","DDEError",[],[m_err])
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [p_res] )
LET m_log="DDE Error: ",m_err CLIPPED," (",p_msg,")"
# CALL errorlog(m_log)
LET m_log="Se ha producido un Error en '",p_msg CLIPPED,"'. Para mas detalle revise el LOG de errores."
CALL fgl_winmessage("DDE Error", m_log, "stop")
EXIT PROGRAM
END FUNCTION