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/nofmmt001.4fd"/>
|
||||
<File filePath="nodir/nofmmt007.4fd"/>
|
||||
<File filePath="nodir/nofmmt008.4fd"/>
|
||||
<File filePath="nodir/nofmmt108.per"/>
|
||||
<File filePath="nodir/nofmmt208.per"/>
|
||||
</Library>
|
||||
<Library binaryName="FUNCIONES_NO" id="-306412216" label="FUNCIONES_NO">
|
||||
<File filePath="nodir/noprgb000.4gl"/>
|
||||
@@ -495,6 +498,10 @@
|
||||
<Configuration commandLineArguments="alopez Lopez2023" id="-700000050" label="Configuration"/>
|
||||
<File filePath="nodir/noprmt007.4gl"/>
|
||||
</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 id="1667448785" label="PRODUCTOS TERMINADOS">
|
||||
<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="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="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>
|
||||
<Form gridHeight="13" gridWidth="82" name="nofmmt008" style="basic" text="GENERACION NOMINAS">
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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>
|
||||
</Grid>
|
||||
</Form>
|
||||
|
||||
@@ -158,6 +158,7 @@ DEFINE movi_emp DYNAMIC ARRAY OF RECORD
|
||||
valor LIKE notb00007.valor,
|
||||
departamento INT
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
@@ -169,6 +170,15 @@ MAIN
|
||||
CALL noprmt008()
|
||||
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()
|
||||
#CLEAR SCREEN
|
||||
|
||||
@@ -200,7 +210,7 @@ FUNCTION noprmt008()
|
||||
|
||||
# Busqueda del periodo comprendido de la nomina
|
||||
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 ",
|
||||
" WHERE num_nomi = '",
|
||||
datos_nomi.num_nomi,
|
||||
@@ -228,7 +238,7 @@ FUNCTION noprmt008()
|
||||
DISPLAY BY NAME xestado_legal
|
||||
|
||||
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 ",
|
||||
" WHERE a.ano ='",
|
||||
p_ano,
|
||||
@@ -246,7 +256,7 @@ FUNCTION noprmt008()
|
||||
# Busca el mes inicial del periodo
|
||||
|
||||
LET selec =
|
||||
"SELECT CONVERT(CHAR(10),MIN(a.fecha_Del),103) ",
|
||||
"SELECT MIN(a.fecha_Del) ",
|
||||
"FROM notb00010 a ",
|
||||
"WHERE a.ano = '",
|
||||
p_ano,
|
||||
@@ -316,7 +326,7 @@ FUNCTION noprmt008()
|
||||
LET ultima_semana_mes = NULL
|
||||
LET fecha_ult = NULL
|
||||
LET SELEC =
|
||||
"SELECT CONVERT(CHAR(10),MAX(a.fecha_al),103) ",
|
||||
"SELECT MAX(a.fecha_al) ",
|
||||
" FROM notb00010 a ",
|
||||
" WHERE a.tipo_emp = ? AND ",
|
||||
" a.mes = ? AND ",
|
||||
@@ -350,7 +360,7 @@ FUNCTION noprmt008()
|
||||
END IF
|
||||
|
||||
IF ultima_semana_mes = "S" THEN
|
||||
SELECT CONVERT(CHAR(10), MIN(fecha_del), 103)
|
||||
SELECT MIN(fecha_del)
|
||||
INTO fecha_ini_mes
|
||||
FROM notb00010
|
||||
WHERE tipo_emp = datos_nomi.tipo_emp
|
||||
@@ -369,6 +379,7 @@ FUNCTION noprmt008()
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
CALL debuglog("AFTER INPUT: int_flag true, saliendo")
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
@@ -376,24 +387,29 @@ FUNCTION noprmt008()
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
CALL debuglog("Paso INPUT BY NAME ok")
|
||||
|
||||
# Preparacion para busqueda por rango de departamento y rango de ficha del
|
||||
# empleado
|
||||
CONSTRUCT BY NAME criterio ON a.departamento, a.num_emp
|
||||
|
||||
IF int_flag THEN
|
||||
CALL debuglog("CONSTRUCT: int_flag true, saliendo")
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
CALL debuglog("Paso CONSTRUCT ok, criterio=[" || criterio CLIPPED || "]")
|
||||
#CLEAR SCREEN
|
||||
# PROMPT
|
||||
#"ESTA SEGURO DE GENERAR DE NUEVO LA NOMINA (S/N) " FOR CHAR opt1
|
||||
LET opt1 = upshift(opt1)
|
||||
IF opt1 != "S" THEN
|
||||
CALL debuglog("opt1<>S, saliendo. opt1=[" || opt1 CLIPPED || "]")
|
||||
RETURN
|
||||
END IF
|
||||
CALL debuglog("Paso opt1 check ok")
|
||||
|
||||
#PROMPT
|
||||
#"ESTA NOMINA ES DE REGALIA (S/N) " FOR CHAR regalia
|
||||
|
||||
Reference in New Issue
Block a user