WIP: Agregar noprmt008 (Generacion de Nomina) - en diagnostico
- Registrar noprmt008 en mbsERP.4pw junto con sus 3 formularios (nofmmt008.4fd, nofmmt108.per, nofmmt208.per) - Corregir bug en nofmmt008.4fd: el checkbox opt3 tenia colName="opt2" duplicado por error de copiar/pegar, causando "Field (opt3) not found in form" - Quitar CONVERT(CHAR(10),...,103) en 5 SELECTs que alimentaban variables DATE (mismo patron de bug ya visto en noprmt003): causaba "-1205 Invalid month in date" de forma intermitente - Agregar funcion debuglog() (escribe a archivo en FGLSPOOL) para diagnosticar por que la generacion terminaba sin insertar ningun registro; diagnostico aun en curso Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
888a36553e
commit
9ac3f70a13
@@ -473,6 +473,9 @@
|
|||||||
<File filePath="nodir/nofmmt003.4fd"/>
|
<File filePath="nodir/nofmmt003.4fd"/>
|
||||||
<File filePath="nodir/nofmmt001.4fd"/>
|
<File filePath="nodir/nofmmt001.4fd"/>
|
||||||
<File filePath="nodir/nofmmt007.4fd"/>
|
<File filePath="nodir/nofmmt007.4fd"/>
|
||||||
|
<File filePath="nodir/nofmmt008.4fd"/>
|
||||||
|
<File filePath="nodir/nofmmt108.per"/>
|
||||||
|
<File filePath="nodir/nofmmt208.per"/>
|
||||||
</Library>
|
</Library>
|
||||||
<Library binaryName="FUNCIONES_NO" id="-306412216" label="FUNCIONES_NO">
|
<Library binaryName="FUNCIONES_NO" id="-306412216" label="FUNCIONES_NO">
|
||||||
<File filePath="nodir/noprgb000.4gl"/>
|
<File filePath="nodir/noprgb000.4gl"/>
|
||||||
@@ -495,6 +498,10 @@
|
|||||||
<Configuration commandLineArguments="alopez Lopez2023" id="-700000050" label="Configuration"/>
|
<Configuration commandLineArguments="alopez Lopez2023" id="-700000050" label="Configuration"/>
|
||||||
<File filePath="nodir/noprmt007.4gl"/>
|
<File filePath="nodir/noprmt007.4gl"/>
|
||||||
</Application>
|
</Application>
|
||||||
|
<Application binaryName="noprmt008" dependencies="-1026233879,-764824792,-306412216,-335228674" environment="dir:FGLSPOOL=$(ProjectDir)/spool" id="-700000053" label="noprmt008">
|
||||||
|
<Configuration commandLineArguments="alopez Lopez2023" id="-700000054" label="Configuration"/>
|
||||||
|
<File filePath="nodir/noprmt008.4gl"/>
|
||||||
|
</Application>
|
||||||
</Group>
|
</Group>
|
||||||
<Group id="1667448785" label="PRODUCTOS TERMINADOS">
|
<Group id="1667448785" label="PRODUCTOS TERMINADOS">
|
||||||
<Library binaryName="FORMULARIOS_IP" id="-1826025351" label="FORMULARIOS_IP"/>
|
<Library binaryName="FORMULARIOS_IP" id="-1826025351" label="FORMULARIOS_IP"/>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<RecordField colName="regalia" defaultValue="N" fieldIdRef="1" name="regalia" sqlTabName="formonly" uid="{8a3eb67b-817a-4db8-97d3-f11a1f0b5f00}"/>
|
<RecordField colName="regalia" defaultValue="N" fieldIdRef="1" name="regalia" sqlTabName="formonly" uid="{8a3eb67b-817a-4db8-97d3-f11a1f0b5f00}"/>
|
||||||
<RecordField colName="vacaciones" defaultValue="N" fieldIdRef="2" name="vacaciones" sqlTabName="formonly" uid="{aa45dc73-0663-4bd4-a34f-c6a63d81825c}"/>
|
<RecordField colName="vacaciones" defaultValue="N" fieldIdRef="2" name="vacaciones" sqlTabName="formonly" uid="{aa45dc73-0663-4bd4-a34f-c6a63d81825c}"/>
|
||||||
<RecordField colName="opt2" defaultValue="N" fieldIdRef="3" name="opt2" sqlTabName="formonly" uid="{8aa4f853-fa6a-48ac-aad1-da963b52a53a}"/>
|
<RecordField colName="opt2" defaultValue="N" fieldIdRef="3" name="opt2" sqlTabName="formonly" uid="{8aa4f853-fa6a-48ac-aad1-da963b52a53a}"/>
|
||||||
<RecordField colName="opt2" defaultValue="N" fieldIdRef="11" name="opt3" sqlTabName="formonly" uid="{d9951275-bdf0-4217-9dfd-b2661834496b}"/>
|
<RecordField colName="opt3" defaultValue="N" fieldIdRef="11" name="opt3" sqlTabName="formonly" uid="{d9951275-bdf0-4217-9dfd-b2661834496b}"/>
|
||||||
</Record>
|
</Record>
|
||||||
<Form gridHeight="13" gridWidth="82" name="nofmmt008" style="basic" text="GENERACION NOMINAS">
|
<Form gridHeight="13" gridWidth="82" name="nofmmt008" style="basic" text="GENERACION NOMINAS">
|
||||||
<Grid gridHeight="13" gridWidth="82" name="grid1" posX="0" posY="0">
|
<Grid gridHeight="13" gridWidth="82" name="grid1" posX="0" posY="0">
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
<Label gridHeight="1" gridWidth="20" name="label11" posX="43" posY="2" text="NOMINA BONIFICACION"/>
|
<Label gridHeight="1" gridWidth="20" name="label11" posX="43" posY="2" text="NOMINA BONIFICACION"/>
|
||||||
<CheckBox colName="opt2" defaultValue="N" fieldId="3" gridHeight="1" gridWidth="14" name="opt2" notNull="true" posX="64" posY="2" required="true" sqlTabName="formonly" tabIndex="11" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
|
<CheckBox colName="opt2" defaultValue="N" fieldId="3" gridHeight="1" gridWidth="14" name="opt2" notNull="true" posX="64" posY="2" required="true" sqlTabName="formonly" tabIndex="11" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
|
||||||
<Label gridHeight="1" gridWidth="20" name="label12" posX="43" posY="3" text="NOMINA BONIFICACION DESACTIVADOS"/>
|
<Label gridHeight="1" gridWidth="20" name="label12" posX="43" posY="3" text="NOMINA BONIFICACION DESACTIVADOS"/>
|
||||||
<CheckBox colName="opt2" defaultValue="N" fieldId="11" gridHeight="1" gridWidth="14" name="opt3" notNull="true" posX="64" posY="3" required="true" sqlTabName="formonly" tabIndex="-1" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
|
<CheckBox colName="opt3" defaultValue="N" fieldId="11" gridHeight="1" gridWidth="14" name="opt3" notNull="true" posX="64" posY="3" required="true" sqlTabName="formonly" tabIndex="12" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Form>
|
</Form>
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ DEFINE movi_emp DYNAMIC ARRAY OF RECORD
|
|||||||
valor LIKE notb00007.valor,
|
valor LIKE notb00007.valor,
|
||||||
departamento INT
|
departamento INT
|
||||||
END RECORD
|
END RECORD
|
||||||
|
|
||||||
MAIN
|
MAIN
|
||||||
DEFER INTERRUPT
|
DEFER INTERRUPT
|
||||||
CALL ARG_VAL(1) RETURNING usuarios
|
CALL ARG_VAL(1) RETURNING usuarios
|
||||||
@@ -169,6 +170,15 @@ MAIN
|
|||||||
CALL noprmt008()
|
CALL noprmt008()
|
||||||
END MAIN
|
END MAIN
|
||||||
|
|
||||||
|
FUNCTION debuglog(txt)
|
||||||
|
DEFINE txt STRING
|
||||||
|
DEFINE ch base.Channel
|
||||||
|
LET ch = base.Channel.create()
|
||||||
|
CALL ch.openFile(FGL_GETENV("FGLSPOOL") || "/noprmt008_debug.log", "a")
|
||||||
|
CALL ch.writeLine(txt)
|
||||||
|
CALL ch.close()
|
||||||
|
END FUNCTION
|
||||||
|
|
||||||
FUNCTION noprmt008()
|
FUNCTION noprmt008()
|
||||||
#CLEAR SCREEN
|
#CLEAR SCREEN
|
||||||
|
|
||||||
@@ -200,7 +210,7 @@ FUNCTION noprmt008()
|
|||||||
|
|
||||||
# Busqueda del periodo comprendido de la nomina
|
# Busqueda del periodo comprendido de la nomina
|
||||||
LET selec =
|
LET selec =
|
||||||
"SELECT CONVERT(CHAR(10),fecha_del,103) ,CONVERT(CHAR(10),fecha_al,103), h_normal,mes,ano,num_sem,estado_legal ",
|
"SELECT fecha_del, fecha_al, h_normal,mes,ano,num_sem,estado_legal ",
|
||||||
" FROM notb00010 ",
|
" FROM notb00010 ",
|
||||||
" WHERE num_nomi = '",
|
" WHERE num_nomi = '",
|
||||||
datos_nomi.num_nomi,
|
datos_nomi.num_nomi,
|
||||||
@@ -228,7 +238,7 @@ FUNCTION noprmt008()
|
|||||||
DISPLAY BY NAME xestado_legal
|
DISPLAY BY NAME xestado_legal
|
||||||
|
|
||||||
LET selec =
|
LET selec =
|
||||||
"SELECT CONVERT(CHAR(10),MIN(a.fecha_del),103),CONVERT(CHAR(10),MAX(a.fecha_al),103) ",
|
"SELECT MIN(a.fecha_del), MAX(a.fecha_al) ",
|
||||||
" FROM notb00010 a ",
|
" FROM notb00010 a ",
|
||||||
" WHERE a.ano ='",
|
" WHERE a.ano ='",
|
||||||
p_ano,
|
p_ano,
|
||||||
@@ -246,7 +256,7 @@ FUNCTION noprmt008()
|
|||||||
# Busca el mes inicial del periodo
|
# Busca el mes inicial del periodo
|
||||||
|
|
||||||
LET selec =
|
LET selec =
|
||||||
"SELECT CONVERT(CHAR(10),MIN(a.fecha_Del),103) ",
|
"SELECT MIN(a.fecha_Del) ",
|
||||||
"FROM notb00010 a ",
|
"FROM notb00010 a ",
|
||||||
"WHERE a.ano = '",
|
"WHERE a.ano = '",
|
||||||
p_ano,
|
p_ano,
|
||||||
@@ -316,7 +326,7 @@ FUNCTION noprmt008()
|
|||||||
LET ultima_semana_mes = NULL
|
LET ultima_semana_mes = NULL
|
||||||
LET fecha_ult = NULL
|
LET fecha_ult = NULL
|
||||||
LET SELEC =
|
LET SELEC =
|
||||||
"SELECT CONVERT(CHAR(10),MAX(a.fecha_al),103) ",
|
"SELECT MAX(a.fecha_al) ",
|
||||||
" FROM notb00010 a ",
|
" FROM notb00010 a ",
|
||||||
" WHERE a.tipo_emp = ? AND ",
|
" WHERE a.tipo_emp = ? AND ",
|
||||||
" a.mes = ? AND ",
|
" a.mes = ? AND ",
|
||||||
@@ -350,7 +360,7 @@ FUNCTION noprmt008()
|
|||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF ultima_semana_mes = "S" THEN
|
IF ultima_semana_mes = "S" THEN
|
||||||
SELECT CONVERT(CHAR(10), MIN(fecha_del), 103)
|
SELECT MIN(fecha_del)
|
||||||
INTO fecha_ini_mes
|
INTO fecha_ini_mes
|
||||||
FROM notb00010
|
FROM notb00010
|
||||||
WHERE tipo_emp = datos_nomi.tipo_emp
|
WHERE tipo_emp = datos_nomi.tipo_emp
|
||||||
@@ -369,6 +379,7 @@ FUNCTION noprmt008()
|
|||||||
|
|
||||||
AFTER INPUT
|
AFTER INPUT
|
||||||
IF int_flag THEN
|
IF int_flag THEN
|
||||||
|
CALL debuglog("AFTER INPUT: int_flag true, saliendo")
|
||||||
LET numero_msg = 2
|
LET numero_msg = 2
|
||||||
CALL msg(numero_msg)
|
CALL msg(numero_msg)
|
||||||
LET int_flag = FALSE
|
LET int_flag = FALSE
|
||||||
@@ -376,24 +387,29 @@ FUNCTION noprmt008()
|
|||||||
END IF
|
END IF
|
||||||
EXIT INPUT
|
EXIT INPUT
|
||||||
END INPUT
|
END INPUT
|
||||||
|
CALL debuglog("Paso INPUT BY NAME ok")
|
||||||
|
|
||||||
# Preparacion para busqueda por rango de departamento y rango de ficha del
|
# Preparacion para busqueda por rango de departamento y rango de ficha del
|
||||||
# empleado
|
# empleado
|
||||||
CONSTRUCT BY NAME criterio ON a.departamento, a.num_emp
|
CONSTRUCT BY NAME criterio ON a.departamento, a.num_emp
|
||||||
|
|
||||||
IF int_flag THEN
|
IF int_flag THEN
|
||||||
|
CALL debuglog("CONSTRUCT: int_flag true, saliendo")
|
||||||
LET numero_msg = 2
|
LET numero_msg = 2
|
||||||
CALL msg(numero_msg)
|
CALL msg(numero_msg)
|
||||||
LET int_flag = FALSE
|
LET int_flag = FALSE
|
||||||
RETURN
|
RETURN
|
||||||
END IF
|
END IF
|
||||||
|
CALL debuglog("Paso CONSTRUCT ok, criterio=[" || criterio CLIPPED || "]")
|
||||||
#CLEAR SCREEN
|
#CLEAR SCREEN
|
||||||
# PROMPT
|
# PROMPT
|
||||||
#"ESTA SEGURO DE GENERAR DE NUEVO LA NOMINA (S/N) " FOR CHAR opt1
|
#"ESTA SEGURO DE GENERAR DE NUEVO LA NOMINA (S/N) " FOR CHAR opt1
|
||||||
LET opt1 = upshift(opt1)
|
LET opt1 = upshift(opt1)
|
||||||
IF opt1 != "S" THEN
|
IF opt1 != "S" THEN
|
||||||
|
CALL debuglog("opt1<>S, saliendo. opt1=[" || opt1 CLIPPED || "]")
|
||||||
RETURN
|
RETURN
|
||||||
END IF
|
END IF
|
||||||
|
CALL debuglog("Paso opt1 check ok")
|
||||||
|
|
||||||
#PROMPT
|
#PROMPT
|
||||||
#"ESTA NOMINA ES DE REGALIA (S/N) " FOR CHAR regalia
|
#"ESTA NOMINA ES DE REGALIA (S/N) " FOR CHAR regalia
|
||||||
|
|||||||
Reference in New Issue
Block a user