Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
{
|
||||
|
||||
PROGRAMA: EMAILCOBROS
|
||||
OBJETIVO: GENERAR REPORTE PARA EL ENVIO DE CORREO
|
||||
PROGRAMADOR: ING. JUAN SOTO
|
||||
FECHA : 3/11/2015
|
||||
|
||||
|
||||
}
|
||||
GLOBALS "ccprgb000.4gl"
|
||||
DEFINE fecha1,fecha2 DATE
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CALL STARTLOG("ccrp049.TXT")
|
||||
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
||||
|
||||
CALL emailcorreo()
|
||||
END MAIN
|
||||
|
||||
FUNCTION emailcorreo()
|
||||
DEFINE HANDLER om.SaxDocumentHandler,
|
||||
archivo STRING,
|
||||
xmes,xano,idx SMALLINT,
|
||||
xporc_itbis DEC(12,2)
|
||||
|
||||
DEFINE xdatos RECORD
|
||||
tipo_doc CHAR(2),
|
||||
num_doc INT,
|
||||
fecha DATE,
|
||||
vendedor VARCHAR(100),
|
||||
documento_ref INT,
|
||||
aplica_a INT,
|
||||
valor DEC(12,2),
|
||||
equipos VARCHAR(100),
|
||||
cliente VARCHAR(100),
|
||||
tipo_cliente,sec_cliente INT,
|
||||
xtibis CHAR(1),
|
||||
tipo_apl CHAR(3)
|
||||
END RECORD
|
||||
SELECT a.nombre INTO p_companias.nombre FROM companias a WHERE cod_comp = 1
|
||||
OPEN WINDOW x1 WITH FORM "ccfmrp049"
|
||||
|
||||
|
||||
INPUT BY NAME fecha1,fecha2
|
||||
BEFORE INPUT
|
||||
CALL cequipos()
|
||||
AFTER INPUT
|
||||
IF INT_FLAG THEN
|
||||
CALL msg(2)
|
||||
EXIT INPUT
|
||||
END IF
|
||||
IF fecha2 < fecha1 THEN
|
||||
CALL msg(51)
|
||||
NEXT FIELD fecha1
|
||||
END IF
|
||||
LET xmes = MONTH(fecha1)
|
||||
LET xano = YEAR(fecha1)
|
||||
|
||||
END INPUT
|
||||
CONSTRUCT criterio ON b.depto,a.cod_emp_sec FROM equipos,kvendedor
|
||||
BEFORE CONSTRUCT
|
||||
|
||||
CALL cvendedor(usuarios)
|
||||
AFTER CONSTRUCT
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
IF INT_FLAG THEN
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
LET selec =
|
||||
"SELECT a.tipo_doc,a.num_doc ,CONVERT(char(10),a.fecha_orig,103),
|
||||
ISNULL(RTRIM(e.nom1_emp),1 ) + ' '+ISNULL(RTRIM(e.apell1_Emp),' '),
|
||||
a.documento_ref,a.aplica_a, SUM(a.Valor*c.tasa),d.nombre,f.nombre,a.tipo_cliente,
|
||||
a.sec_cliente,g.paga_itbis
|
||||
from cctb00001 a,seg0000 b LEFT OUTER JOIN seg0008 d on b.depto = d.depto,cgtb00084 c,adtb00003 e,
|
||||
vetb00004 f, vetb00060 g,seg0007 h
|
||||
where a.fecha_orig BETWEEN ? AND ? AND a.tipo_Doc in ('PG','PC') AND
|
||||
c.mes = ? AND c.ano = ? AND a.tipo_cliente = c.tipo_cliente AND f.tipo_cliente = g.tipo_cliente AND
|
||||
a.tipo_cliente = f.tipo_cliente AND a.sec_cliente = f.sec_cliente AND
|
||||
a.status_t is null AND a.cod_emp_sec = h.sec_vend AND h.usuario = ? AND
|
||||
a.cod_emp_sec = b.sec_vend AND a.cod_emp_sec = e.num_emp AND ",criterio CLIPPED,
|
||||
|
||||
" GROUP BY a.tipo_doc,a.num_doc,a.fecha_orig,e.nom1_emp,e.apell1_emp,a.documento_ref,a.aplica_a,
|
||||
d.nombre,f.nombre,a.tipo_cliente,a.sec_cliente,g.paga_itbis ",
|
||||
" UNION ",
|
||||
"SELECT a.tipo_doc,a.num_doc ,CONVERT(char(10),a.fecha_orig,103),
|
||||
ISNULL(RTRIM(e.nom1_emp),1 ) + ' '+ISNULL(RTRIM(e.apell1_Emp),' '),
|
||||
a.documento_Ref,a.aplica_a, SUM(a.Valor*c.tasa),d.nombre,f.nombre,a.tipo_cliente,
|
||||
a.sec_cliente,g.paga_itbis
|
||||
from cctb00001 a,seg0000 b LEFT OUTER JOIN seg0008 d on b.depto = d.depto,cgtb00084 c,adtb00003 e,
|
||||
vetb00004 f, vetb00060 g,seg0007 h
|
||||
where a.fecha_orig BETWEEN ? AND ? AND a.tipo_Doc in ('AV') AND a.num_doc = a.aplica_a AND
|
||||
c.mes = ? AND c.ano = ? AND a.tipo_cliente = c.tipo_cliente AND f.tipo_cliente = g.tipo_cliente AND
|
||||
a.tipo_cliente = f.tipo_cliente AND a.sec_cliente = f.sec_cliente AND
|
||||
a.status_t is null AND a.cod_emp_sec = h.sec_vend AND h.usuario = ? AND
|
||||
a.cod_emp_sec = b.sec_vend AND a.cod_emp_sec = e.num_emp AND ",criterio CLIPPED,
|
||||
|
||||
" GROUP BY a.tipo_doc,a.num_doc,a.fecha_orig,e.nom1_emp,e.apell1_emp,a.documento_ref,a.aplica_a,
|
||||
d.nombre,f.nombre,a.tipo_cliente,a.sec_cliente,g.paga_itbis"
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE informacion CURSOR FOR comando
|
||||
OPEN informacion USING fecha1,fecha2,xmes,xano,usuarios,fecha1,fecha2,xmes,xano,usuarios
|
||||
|
||||
|
||||
LET archivo = "ccprrp049.4rp"
|
||||
SELECT a.itbi INTO xporc_itbis FROM vetb00019 a
|
||||
LET idx = 1
|
||||
FOREACH informacion INTO xdatos.*
|
||||
IF idx = 1 THEN
|
||||
IF fgl_report_loadCurrentSettings(archivo) THEN -- load the .4rp file
|
||||
|
||||
CALL fgl_report_selectDevice("SVG")
|
||||
CALL fgl_report_selectPreview(true)
|
||||
|
||||
# CALL fgl_report_setOutputFileName("emailCobros.pdf")
|
||||
LET xdatos.cliente = xdatos.tipo_cliente USING "&&","-"
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
START REPORT r_email TO XML HANDLER HANDLER
|
||||
ELSE
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF xdatos.tipo_doc = 'PG' OR xdatos.tipo_doc = 'PC' THEN
|
||||
LET xdatos.tipo_apl = 'FT-'
|
||||
LET xdatos.valor = xdatos.valor*-1
|
||||
END IF
|
||||
IF xdatos.tipo_doc = 'NC' THEN
|
||||
LET xdatos.tipo_apl = 'FT-'
|
||||
END IF
|
||||
IF xdatos.tipo_doc = 'AV' THEN
|
||||
LET xdatos.tipo_apl = 'CT-'
|
||||
END IF
|
||||
IF xdatos.xtibis = "S" THEN
|
||||
LET xdatos.valor = xdatos.valor / (1+(xporc_itbis/100))
|
||||
|
||||
END IF
|
||||
LET xdatos.cliente = xdatos.tipo_cliente USING "&&","-",xdatos.sec_cliente USING "<<<<<<<"," ",
|
||||
xdatos.cliente CLIPPED
|
||||
OUTPUT TO REPORT r_email(xdatos.*)
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
IF idx > 1 THEN
|
||||
FINISH REPORT r_email
|
||||
ELSE
|
||||
CALL fgl_winmessage("INFO","NO EXISTEN DATOS CON ESTA CONDICION","INFO")
|
||||
END IF
|
||||
END FUNCTION
|
||||
REPORT r_email(zdatos)
|
||||
DEFINE zdatos RECORD
|
||||
tipo_doc CHAR(2),
|
||||
num_doc INT,
|
||||
fecha DATE,
|
||||
vendedor VARCHAR(100),
|
||||
documento_ref INT,
|
||||
aplica_a INT,
|
||||
valor DEC(12,2),
|
||||
equipos VARCHAR(100),
|
||||
cliente VARCHAR(100),
|
||||
tipo_cliente,sec_cliente INT,
|
||||
xibis CHAR(1),
|
||||
tipo_apl CHAR(3)
|
||||
END RECORD
|
||||
|
||||
DEFINE zreferencia VARCHAR(50),
|
||||
total1,total2,total_general1,total_General2,
|
||||
total_general3,etotal1,etotal2,total3 DEC(12,2)
|
||||
|
||||
ORDER BY zdatos.equipos,zdatos.vendedor,zdatos.num_doc
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
LET total_general1=0
|
||||
LET total_General2=0
|
||||
LET total_general3=0
|
||||
|
||||
BEFORE GROUP OF zdatos.equipos
|
||||
LET etotal2 = 0
|
||||
|
||||
PRINTX zdatos.equipos
|
||||
BEFORE GROUP OF zdatos.vendedor
|
||||
LET etotal1 = 0
|
||||
|
||||
BEFORE GROUP OF zdatos.num_doc
|
||||
LET total2 = 0
|
||||
ON EVERY ROW
|
||||
|
||||
IF zdatos.tipo_doc = 'AV' THEN
|
||||
LET zreferencia=zdatos.documento_ref
|
||||
END IF
|
||||
IF zdatos.tipo_doc = 'PG' OR zdatos.tipo_doc = 'NC' OR zdatos.tipo_doc='PC' THEN
|
||||
LET zreferencia = zdatos.aplica_a
|
||||
END IF
|
||||
LET total2 = total2 + zdatos.valor # DOCUMENTO
|
||||
LET etotal1 = etotal1 + zdatos.valor # VENDEDOR
|
||||
LET etotal2 = etotal2 + zdatos.valor # EQUIPO
|
||||
|
||||
LET total_general1 = total_general1 + zdatos.valor
|
||||
|
||||
PRINTX zdatos.tipo_doc,zdatos.num_doc,zdatos.documento_ref,zdatos.vendedor,zdatos.valor, p_companias.nombre,
|
||||
total1,total2,zreferencia,zdatos.cliente,etotal2,
|
||||
total_general1,total_general3,total3,fecha1,fecha2,etotal1,
|
||||
zdatos.tipo_apl
|
||||
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user