262 lines
8.5 KiB
Plaintext
262 lines
8.5 KiB
Plaintext
|
|
CONSTANT file = "dgi606"
|
|
CONSTANT prog = "EXCEL"
|
|
|
|
DEFINE usuarios,clave,rnc VARCHAR(50),
|
|
|
|
idioma_office,fila_office varchar(1),
|
|
fecha1,fecha2 date,
|
|
pcod_sp,NUMERO_C,kmes,kano SMALLINT,
|
|
periodo char(6)
|
|
DEFINE res INTEGER,
|
|
dir_file VARCHAR(60),
|
|
d_tipos,mensaje,f_tipos,filepath,p_res STRING
|
|
MAIN
|
|
-- Excel must be open beforehand
|
|
|
|
DEFINE val, rval,col,fila STRING
|
|
DEFINE fecha1,fecha2 date,
|
|
pcodsp,pcodspsec INT,
|
|
periodo CHAR(6),
|
|
pnumdoc,xcuenta_no CHAR(10),
|
|
kmes,kano,numero_c,pcod_sp,xcodigo_isr,pcodigofiscal,pcel,prow SMALLINT,
|
|
facturado,pitbis,pvalor,retencion,itbisretenido,xvalor DEC(12,2),
|
|
prnc CHAR(11),
|
|
pdescripcion CHAR(30),
|
|
strfiscal,xtipo_cuenta,xselectivo_consumo CHAR(40),
|
|
pncf CHAR(19),
|
|
pfecha DATE,
|
|
periodo1 CHAR(6),
|
|
idioma_office CHAR(20),
|
|
total_facturado DEC(12,2)
|
|
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
|
|
CONNECT to "decomarmol" user usuarios USING clave
|
|
SELECT a.rnc INTO rnc FROM companias a
|
|
|
|
OPEN WINDOW w1 AT 1,1 WITH FORM "cpfmrp018"
|
|
INPUT BY NAME fecha1,fecha2,idioma_office,pcod_sp
|
|
ON ACTION abrir
|
|
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
|
|
CALL ui.Interface.frontCall("standard","shellexec", [filepath], [p_res] )
|
|
{ CALL fgl_winmessage("INFO",dir_file,"INFO")
|
|
CALL fgl_winmessage("INFO",f_tipos,"INFO")
|
|
CALL fgl_winmessage("INFO",mensaje,"INFO")
|
|
CALL fgl_winmessage("INFO",filepath,"INFO")}
|
|
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
LET INT_FLAG = FALSE
|
|
RETURN
|
|
END IF
|
|
SELECT COUNT(*) INTO numero_c 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
|
|
IF idioma_office = 'I' THEN
|
|
LET fila_office = 'R'
|
|
ELSE
|
|
LET fila_office = 'F'
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
CALL terminaDDE()
|
|
|
|
CALL conectarDDE()
|
|
|
|
LET val = rnc
|
|
LET fila = 4
|
|
LET col = 3
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET kmes = MONTH(fecha2)
|
|
LET kano = YEAR(fecha2)
|
|
LET periodo = kano USING "&&&&",kmes USING "&&"
|
|
|
|
LET col = 3
|
|
LET fila = 5
|
|
LET val = periodo
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
|
|
LET val = numero_c
|
|
LET col = 3
|
|
LET fila = 6
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
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 TRIM(a.rnc),b.codigo_fiscal,c.descripcion,b.ncf,d.fecha_orig,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
|
|
FOREACH busca_datos INTO prnc,pcodigofiscal,pdescripcion,pncf,pfecha,pitbis,pvalor,
|
|
pnumdoc,pcodsp,pcodspsec,xtipo_cuenta,xselectivo_consumo,
|
|
xvalor,xcodigo_isr,xcuenta_no
|
|
|
|
|
|
LET val = prnc
|
|
LET col = 2
|
|
LET fila = prow USING "<<<"
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET strfiscal = pcodigofiscal USING "&&","-",pdescripcion CLIPPED
|
|
|
|
LET val = strfiscal
|
|
LET col = 4
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET val = pncf
|
|
LET col = 5
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET periodo1 = YEAR(pfecha) USING "&&&&",MONTH(pfecha) USING "&&"
|
|
|
|
LET val = periodo1
|
|
LET col = 7
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET val = DAY(pfecha)
|
|
LET col = 8
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET val = periodo1
|
|
LET col = 9
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
LET val = DAY(pfecha)
|
|
LET col = 10
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
|
|
LET col = 11
|
|
|
|
IF xtipo_cuenta = "SERVICIOS" THEN
|
|
LET val = xvalor
|
|
ELSE
|
|
LET val = 0
|
|
END IF
|
|
CALL enviaDDE(fila,col,val)
|
|
LET col = 12
|
|
IF xtipo_cuenta = "BIENES" THEN
|
|
LET val = xvalor
|
|
ELSE
|
|
LET val=0
|
|
END IF
|
|
|
|
CALL enviaDDE(fila,col,val)
|
|
IF pvalor IS NULL THEN
|
|
LET pvalor = 0
|
|
END IF
|
|
|
|
LET col = 13
|
|
LET val = pvalor
|
|
CALL enviaDDE(fila,col,val)
|
|
LET total_facturado = total_facturado + pvalor
|
|
|
|
LET col=14
|
|
LET val = pitbis
|
|
CALL enviaDDE(fila,col,val)
|
|
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 col = 15
|
|
LET val = itbisretenido
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
|
|
LET col = 16
|
|
LET val = retencion
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
|
|
LET col = 26
|
|
LET val = '07 - MIXTO'
|
|
CALL enviaDDE(fila,col,val)
|
|
|
|
END IF
|
|
LET prow = prow + 1
|
|
END FOREACH
|
|
|
|
CALL terminaDDE()
|
|
CLOSE WINDOW w1
|
|
END MAIN
|
|
|
|
|
|
FUNCTION checkError(res)
|
|
DEFINE res INTEGER
|
|
DEFINE mess STRING
|
|
IF res THEN RETURN END IF
|
|
DISPLAY "DDE Error:"
|
|
CALL ui.Interface.frontCall("WINDDE","DDEError",[],[mess]);
|
|
DISPLAY mess
|
|
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [res] );
|
|
DISPLAY "Exit with DDE Error."
|
|
EXIT PROGRAM (-1)
|
|
END FUNCTION
|
|
FUNCTION conectarDDE()
|
|
CALL ui.Interface.frontCall("WINDDE","DDEConnect", [prog,file], [res] )
|
|
{ CALL fgl_winmessage("INFO",prog,"INFO")
|
|
CALL fgl_winmessage("INFO",file,"INFO")
|
|
CALL fgl_winmessage("INFO",res,"INFO")}
|
|
CALL checkError(res)
|
|
|
|
END FUNCTION
|
|
FUNCTION terminaDDE()
|
|
CALL ui.Interface.frontCall("WINDDE","DDEFinishAll", [], [res] );
|
|
CALL checkError(res)
|
|
|
|
END FUNCTION
|
|
FUNCTION enviaDDE(xfila,xcol,xval)
|
|
DEFINE xfila,xcol,xval,xcelda STRING
|
|
|
|
DISPLAY "enviado ",xfila," c ",xcol," v ",xval
|
|
|
|
LET xcelda = fila_office CLIPPED,xfila CLIPPED,"C",xcol CLIPPED
|
|
DISPLAY "celda ",xcelda
|
|
LET xval=xval CLIPPED
|
|
CALL ui.Interface.frontCall("WINDDE","DDEPoke", [prog,file,xcelda,xval], [res] );
|
|
CALL checkError(res)
|
|
|
|
END FUNCTION |