Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : NOPRRP041
|
||||
OBJETIVO : GENERAR REPORTE DE HORAS EXTRAS
|
||||
PROGRAMADOR : Valentin Rodriguez
|
||||
FECHA REALIZACION :
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
SCHEMA "smarmotech"
|
||||
GLOBALS
|
||||
DEFINE datos RECORD
|
||||
fecha_inicial DATE,
|
||||
fecha_final DATE
|
||||
END RECORD,
|
||||
usuarios VARCHAR(20),
|
||||
clave VARCHAR(20),
|
||||
selec STRING,
|
||||
pcompanias RECORD LIKE companias.*,
|
||||
idx INT
|
||||
|
||||
DEFINE reporteHoras RECORD
|
||||
cod_supervisor VARCHAR(50),
|
||||
supervisor VARCHAR(50),
|
||||
cod_empleado INT,
|
||||
empleado VARCHAR(50),
|
||||
fecha_trabajo DATE,
|
||||
cantidad_horas INT,
|
||||
valor_horas VARCHAR(100),
|
||||
tipo_calculo decimal(12,2),
|
||||
documento INT,
|
||||
fecha_doc DATE
|
||||
END RECORD
|
||||
END GLOBALS
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CONNECT TO "smarmotech" USER usuarios USING clave
|
||||
SELECT * INTO pcompanias.* FROM companias
|
||||
CALL reporte_horas()
|
||||
END MAIN
|
||||
|
||||
FUNCTION reporte_horas ()
|
||||
|
||||
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING, -- output format option
|
||||
preview INTEGER, -- TRUE/FALSE, to set preview option
|
||||
criterio STRING
|
||||
|
||||
OPEN WINDOW HOME_FRM WITH FORM 'nofmrp041'
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
INPUT BY NAME datos.*
|
||||
AFTER FIELD fecha_inicial
|
||||
IF datos.fecha_inicial IS NULL THEN
|
||||
CALL fgl_winmessage("INFO", "FECHA INICIAL NO PUEDE SER EN BLANCO", "INFO")
|
||||
NEXT FIELD fecha_inicial
|
||||
END IF
|
||||
|
||||
AFTER FIELD fecha_final
|
||||
IF datos.fecha_final IS NULL THEN
|
||||
CALL fgl_winmessage("INFO", "FECHA FINAL NO PUEDE SER EN BLANCO", "INFO")
|
||||
NEXT FIELD fecha_final
|
||||
END IF
|
||||
IF datos.fecha_final < datos.fecha_inicial THEN
|
||||
CALL fgl_winmessage("INFO", "FECHA FINAL NO PUEDE SER MENOR A FECHA INICIAL", "INFO")
|
||||
NEXT FIELD fecha_final
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
|
||||
CONSTRUCT criterio ON a.supervisor, a.num_emp
|
||||
FROM cod_sup, num_emp
|
||||
|
||||
ON ACTION mostrar
|
||||
LET selec = "select a.supervisor, rtrim(cast(c.nom1_emp as varchar(30)))+' '+ltrim(cast(c.apell2_emp as varchar(30))),
|
||||
b.num_emp, b.nombre, a.fecha,b.cantidad,b.valor,b.descrip_mov,a.num_doc,b.fech_crea
|
||||
from notb00028 a
|
||||
inner join notb00029 b on a.num_doc = b.num_doc
|
||||
inner join adtb00003 c on a.supervisor = c.num_emp
|
||||
where " , criterio CLIPPED, " and ","
|
||||
a.fecha between '", datos.fecha_inicial USING "mm/dd/yyyy" , "' and '",datos.fecha_final USING "mm/dd/yyyy","' "
|
||||
DISPLAY selec
|
||||
PREPARE comando FROM selec
|
||||
DECLARE cotizaciones CURSOR FOR comando
|
||||
|
||||
LET r_filename ="noprrp041.4rp"
|
||||
LET idx = 1
|
||||
|
||||
FOREACH cotizaciones INTO reporteHoras.*
|
||||
|
||||
IF idx = 1 THEN
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN
|
||||
|
||||
LET preview=1
|
||||
CALL seleccionarsalida() RETURNING r_output -- load the .4rp file
|
||||
CALL fgl_report_selectDevice(r_output) -- changing default
|
||||
CALL fgl_report_selectPreview(preview) -- changing default
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
|
||||
END IF
|
||||
LET idx = 2
|
||||
|
||||
START REPORT reporteHoras_rpt TO XML HANDLER HANDLER
|
||||
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT reporteHoras_rpt(reporteHoras.*)
|
||||
|
||||
END FOREACH
|
||||
|
||||
IF idx > 1 THEN
|
||||
FINISH REPORT reporteHoras_rpt
|
||||
ELSE
|
||||
CALL fgl_winmessage("INFO", "NO HAY REGISTROS EN ESTE RANGO DE FECHA Y CON LOS PARAMETROS INDICADOS", "INFO")
|
||||
NEXT FIELD fecha_final
|
||||
END IF
|
||||
END CONSTRUCT
|
||||
|
||||
ON ACTION CANCEL
|
||||
CALL msg(2)
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT PROGRAM
|
||||
END DIALOG
|
||||
CLOSE WINDOW HOME_FRM
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporteHoras_rpt(x)
|
||||
DEFINE x RECORD
|
||||
cod_supervisor VARCHAR(50),
|
||||
supervisor VARCHAR(50),
|
||||
cod_empleado INT,
|
||||
empleado VARCHAR(50),
|
||||
fecha_trabajo DATE,
|
||||
cantidad_horas INT,
|
||||
valor_horas VARCHAR(100),
|
||||
tipo_calculo decimal(12,2),
|
||||
documento INT,
|
||||
fecha_doc DATE
|
||||
END RECORD,
|
||||
fecha_reporte char(30),
|
||||
fecha char(30),
|
||||
total_horas INT,
|
||||
total_valor_horas DECIMAL(12,2)
|
||||
|
||||
ORDER BY x.supervisor
|
||||
|
||||
FORMAT
|
||||
|
||||
BEFORE GROUP OF x.supervisor
|
||||
PRINTX x.supervisor
|
||||
|
||||
ON EVERY ROW
|
||||
LET fecha_reporte = today USING "mm/dd/yyyy"
|
||||
LET fecha = datos.fecha_inicial USING "mm/dd/yyyy",'--',datos.fecha_final USING "mm/dd/yyyy"
|
||||
DISPLAY pcompanias.nombre
|
||||
PRINTX fecha, fecha_reporte, pcompanias.nombre, x.empleado,
|
||||
x.fecha_trabajo, x.cantidad_horas, x.valor_horas,
|
||||
x.tipo_calculo, x.documento, x.fecha_doc
|
||||
|
||||
ON LAST ROW
|
||||
LET total_horas = SUM(x.cantidad_horas)
|
||||
LET total_valor_horas = SUM(x.valor_horas)
|
||||
|
||||
PRINTX total_horas, total_valor_horas
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user