Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-10-20 16:05:23 -04:00
8 changed files with 641 additions and 92 deletions
+67 -56
View File
@@ -7,6 +7,16 @@
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE arrprtb08 DYNAMIC ARRAY OF RECORD
cod_n_c LIKE prtb00008.cod_n,
cod_grupo_c LIKE prtb00008.cod_grupo,
cod_tipo_c LIKE prtb00008.cod_tipo,
cod_sec_c LIKE prtb00008.cod_sec,
cantidad_c LIKE prtb00008.cantidad,
descrip_esp_c LIKE intb00001.descrip_esp,
unidad_c LIKE intb00001.unidad_med
END RECORD
DEFINE nombre LIKE vetb00004.nombre,
descrip_esp_c,descrip_esp LIKE iptb00002.descrip_esp,
unidad LIKE iptb00002.unidad_med,
@@ -41,10 +51,11 @@ END MAIN
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
CALL pantalla()
# (pantalla() es el encabezado de la pantalla de texto antigua; no aplica en GUI)
OPEN FORM ctfmmt006 FROM "prfmmt006"
DISPLAY FORM ctfmmt006
CALL pantalla()
CALL ui.Window.getCurrent().setText("Ordenes de Produccion")
# (pantalla() es el encabezado de la pantalla de texto antigua; no aplica en GUI)
DISPLAY "prprmt006" AT 4,3
DISPLAY "Ordenes De Produccion" AT 6,32
@@ -280,13 +291,13 @@ FUNCTION prpcad006()
b.cod_sec = prtb07.cod_sec AND
a.num_oc = b.num_oc
LET idx = 1
FOREACH buscame INTO prtb08[idx].*
FOREACH buscame INTO arrprtb08[idx].*
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
}
INPUT ARRAY prtb08 FROM s_orden.*
INPUT ARRAY arrprtb08 FROM s_orden.*
ON KEY(CONTROL-W)
CALL busca_material()
@@ -295,13 +306,13 @@ FUNCTION prpcad006()
LET scr_l = scr_line()
AFTER FIELD cod_sec_c
LET descrip_esp_c = NULL
IF prtb08[curr].cod_sec_c IS NOT NULL THEN
IF arrprtb08[curr].cod_sec_c IS NOT NULL THEN
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
FROM intb00001 a
WHERE a.cod_n = prtb08[curr].cod_n_c AND
a.cod_grupo = prtb08[curr].cod_grupo_c AND
a.cod_tipo = prtb08[curr].cod_tipo_c AND
a.cod_sec = prtb08[curr].cod_sec_c AND
WHERE a.cod_n = arrprtb08[curr].cod_n_c AND
a.cod_grupo = arrprtb08[curr].cod_grupo_c AND
a.cod_tipo = arrprtb08[curr].cod_tipo_c AND
a.cod_sec = arrprtb08[curr].cod_sec_c AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
@@ -309,15 +320,15 @@ FUNCTION prpcad006()
NEXT FIELD cod_n_c
END IF
END IF
LET prtb08[curr].descrip_esp_c = descrip_esp_c
LET prtb08[curr].unidad_c = unidad_c
DISPLAY prtb08[curr].descrip_esp_c TO s_orden[scr_l].descrip_esp_c
LET arrprtb08[curr].descrip_esp_c = descrip_esp_c
LET arrprtb08[curr].unidad_c = unidad_c
DISPLAY arrprtb08[curr].descrip_esp_c TO s_orden[scr_l].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[curr].unidad_c TO s_orden[scr_l].unidad_c
DISPLAY arrprtb08[curr].unidad_c TO s_orden[scr_l].unidad_c
ATTRIBUTE(BLUE)
AFTER FIELD cantidad_c
IF prtb08[curr].cod_n_c IS NOT NULL THEN
IF prtb08[curr].cantidad_c IS NULL THEN
IF arrprtb08[curr].cod_n_c IS NOT NULL THEN
IF arrprtb08[curr].cantidad_c IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cantidad_c
@@ -347,23 +358,23 @@ FUNCTION prpcad006()
# SE ESTA VALIDANDO EL PRODUCTO TERMINADO EN EL CODIGO DE LA MATERIA PRIMA
# PARA CUANDO LA ORDEN SEA PARA PRODUCTOS IMPORTADOS QUE NO TIENEN COMPOSICION
IF prtb08[1].cod_n_c IS NULL THEN
LET prtb08[1].cod_n_c = prtb07.cod_n
LET prtb08[1].cod_grupo_c = prtb07.cod_grupo
LET prtb08[1].cod_tipo_c = prtb07.cod_tipo
LET prtb08[1].cod_sec_c = prtb07.cod_Sec
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
IF arrprtb08[1].cod_n_c IS NULL THEN
LET arrprtb08[1].cod_n_c = prtb07.cod_n
LET arrprtb08[1].cod_grupo_c = prtb07.cod_grupo
LET arrprtb08[1].cod_tipo_c = prtb07.cod_tipo
LET arrprtb08[1].cod_sec_c = prtb07.cod_Sec
OUTPUT TO REPORT ordenes(prtb07.num_oc,arrprtb08[idx].*)
END IF
FOR idx = 1 TO arr_count()
IF prtb08[idx].cod_n_c IS NOT NULL THEN
IF arrprtb08[idx].cod_n_c IS NOT NULL THEN
INSERT INTO prtb00008 VALUES (prtb07.num_oc,
prtb08[idx].cod_n_c,
prtb08[idx].cod_grupo_c,
prtb08[idx].cod_tipo_c,
prtb08[idx].cod_sec_c,
prtb08[idx].cantidad_c,
arrprtb08[idx].cod_n_c,
arrprtb08[idx].cod_grupo_c,
arrprtb08[idx].cod_tipo_c,
arrprtb08[idx].cod_sec_c,
arrprtb08[idx].cantidad_c,
SUSER_SNAME(),current,null,null)
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
OUTPUT TO REPORT ordenes(prtb07.num_oc,arrprtb08[idx].*)
END IF
END FOR
FINISH REPORT ordenes
@@ -534,24 +545,24 @@ LABEL sale9:
END FUNCTION
FUNCTION limpia()
FOR idx = 1 TO 10
LET prtb08[idx].cod_n_c = null
LET prtb08[idx].cod_grupo_c = null
LET prtb08[idx].cod_tipo_c = null
LET prtb08[idx].cod_sec_c = null
LET prtb08[idx].unidad_c = null
LET prtb08[idx].cantidad_c = null
LET prtb08[idx].descrip_esp_c = null
LET arrprtb08[idx].cod_n_c = null
LET arrprtb08[idx].cod_grupo_c = null
LET arrprtb08[idx].cod_tipo_c = null
LET arrprtb08[idx].cod_sec_c = null
LET arrprtb08[idx].unidad_c = null
LET arrprtb08[idx].cantidad_c = null
LET arrprtb08[idx].descrip_esp_c = null
END FOR
FOR idx = 1 TO 5
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
DISPLAY arrprtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY arrprtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY arrprtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY arrprtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY arrprtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
DISPLAY arrprtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
DISPLAY arrprtb08[idx].unidad_c TO s_orden[idx].unidad_c
ATTRIBUTE(BLUE)
END FOR
@@ -565,28 +576,28 @@ FUNCTION busca_detalle()
WHERE a.num_oc = numero_oc
LET idx = 1
FOREACH busca_d INTO prtb08[idx].*
FOREACH busca_d INTO arrprtb08[idx].*
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
FROM intb00001 a
WHERE a.cod_n = prtb08[idx].cod_n_c AND
a.cod_grupo = prtb08[idx].cod_grupo_c AND
a.cod_tipo = prtb08[idx].cod_tipo_c AND
a.cod_sec = prtb08[idx].cod_sec_c AND
WHERE a.cod_n = arrprtb08[idx].cod_n_c AND
a.cod_grupo = arrprtb08[idx].cod_grupo_c AND
a.cod_tipo = arrprtb08[idx].cod_tipo_c AND
a.cod_sec = arrprtb08[idx].cod_sec_c AND
a.status_t IS NULL
IF idx > 5 THEN
EXIT FOREACH
END IF
LET prtb08[idx].descrip_esp_c = descrip_esp_c
LET prtb08[idx].unidad_c = unidad_c
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
LET arrprtb08[idx].descrip_esp_c = descrip_esp_c
LET arrprtb08[idx].unidad_c = unidad_c
DISPLAY arrprtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY arrprtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY arrprtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY arrprtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY arrprtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
DISPLAY arrprtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
DISPLAY arrprtb08[idx].unidad_c TO s_orden[idx].unidad_c
ATTRIBUTE(BLUE)
LET idx = idx + 1
END FOREACH
+1 -1
View File
@@ -7,7 +7,7 @@
FECHA REALIZACION : Junio 24, 1993
------------------------------------------------------------------------
}
DATABASE rayovac
DATABASE smarmotech
SCREEN SIZE 24 by 80
{
Busqueda de los Niveles de Empleados
+11 -11
View File
@@ -55,7 +55,8 @@ FUNCTION adpcad001()
{WHENEVER ERROR CONTINUE}
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME depto.* #,m_estado_a,m_estado_m
INPUT BY NAME depto.departamento, depto.nom_dpto, depto.status_t, depto.us_crea,
depto.fech_crea, depto.us_mod, depto.fech_mod #,m_estado_a,m_estado_m
## VERIFICA QUE EL CODIGO NO EXISTA EN EL CATALOGO DE DEPARTAMENTO. SI EXISTE,
## ENTONCES DESPLEGA LOS DATOS DEL REGISTRO EXISTENTE.
@@ -77,7 +78,8 @@ FUNCTION adpcad001()
NEXT FIELD departamento
END IF
DISPLAY BY NAME depto.*
DISPLAY BY NAME depto.departamento, depto.nom_dpto, depto.status_t, depto.us_crea,
depto.fech_crea, depto.us_mod, depto.fech_mod
LET numero_msg = 12
CALL msg(numero_msg)
LET depto.nom_dpto = NULL
@@ -113,10 +115,12 @@ FUNCTION adpcad001()
CALL msg(numero_msg)
NEXT FIELD nom_dpto
ELSE
INSERT INTO adtb00001 VALUES (depto.departamento,depto.nom_dpto,
INSERT INTO adtb00001 (departamento,nom_dpto,status_t,us_crea,fech_crea,us_mod,fech_mod)
VALUES (depto.departamento,depto.nom_dpto,
null, SUSER_SNAME (), GETDATE (), null, null)
INSERT INTO adtb00029 VALUES (depto.departamento,m_estado_a,m_estado_m,
INSERT INTO adtb00029 (departamento,estado_a,estado_m,depto_ant,estatus_t,us_crea,fech_crea,us_mod,fech_mod)
VALUES (depto.departamento,m_estado_a,m_estado_m,
depto.departamento,null,SUSER_SNAME(), GETDATE (),null,null)
LET m_depto = depto.departamento
@@ -159,7 +163,7 @@ FUNCTION adpcmf001()
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM adtb00001 where ",
LET SELEC = " SELECT DISTINCT * FROM adtb00001 where ",
" status_t is null and ",
criterio clipped,
" ORDER BY 1"
@@ -246,9 +250,7 @@ FUNCTION adpcmf001()
END IF
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
INPUT BY NAME depto.nom_dpto,
m_estado_a,
m_estado_m WITHOUT DEFAULTS
INPUT BY NAME depto.nom_dpto WITHOUT DEFAULTS
AFTER FIELD nom_dpto
IF depto.nom_dpto IS NULL THEN
@@ -283,9 +285,7 @@ FUNCTION adpcmf001()
UPDATE chequeo SET nom_dpto = depto.nom_dpto
WHERE departamento = depto.departamento
UPDATE adtb00029 SET estado_a = m_estado_a,
estado_m = m_estado_m,
us_mod = SUSER_NAME(),
UPDATE adtb00029 SET us_mod = SUSER_NAME(),
fech_mod = GETDATE()
WHERE departamento = depto.departamento
+18 -18
View File
@@ -289,7 +289,7 @@ FUNCTION adpcad017()
## SELECCIONA LA FECHA DE INGRESO Y EL SUELDO DE LA TABLA DE CONTRATACION
## Y SELECCION DE EMPLEADOS
SELECT UNIQUE convert(char(10),a.fech_efec,101),a.sueldo,b.cod_sol
SELECT UNIQUE a.fech_efec,a.sueldo,b.cod_sol
INTO contra.fech_efec,contra.sueldo,parece.cod_sol
FROM adtb00019 a,adtb00018 b
WHERE a.cod_sol = b.cod_sol and b.cod_sol = acc_per.cod_sol and
@@ -301,7 +301,7 @@ FUNCTION adpcad017()
END IF
IF xtipo <> 'INGRESO' THEN
IF xtipo IS NULL OR xtipo <> 'INGRESO' THEN
LET acc_per.cod_sol = NULL
NEXT FIELD fecha
END IF
@@ -309,9 +309,9 @@ FUNCTION adpcad017()
## VERIFICA QUE EL SOLICITANTE EXISTE EN LA TABLA DE SOLICITANTES. SI EXISTE
## LO PRESENTA EN PANTALLA.
SELECT cod_sol,convert(char(10),fecha,101),nom1_sol,nom2_sol,apell1_sol,
SELECT cod_sol,fecha,nom1_sol,nom2_sol,apell1_sol,
apell2_sol,calle,casa_num,barrio,urbanizacion,telefono,
cod_provincia,convert(char(10),fech_nac,101),cod_nac,estado_civil,estatura,
cod_provincia,fech_nac,cod_nac,estado_civil,estatura,
peso,cedula,licencia,tipo_sangre,cod_puesto,
cod_prof,sexo,status_t,us_crea,fech_crea,us_mod,fech_mod,
serie
@@ -372,12 +372,12 @@ FUNCTION adpcad017()
## CHEQUEA QUE EL EMPLEADO EXISTA EN LA TABLA DE EMPLEADOS. SI EXISTE
## DESPLEGA TODA LA INFORMACION REFERENTE AL EMPLEADO.
IF xtipo <> 'INGRESO' THEN
IF xtipo IS NULL OR xtipo <> 'INGRESO' THEN
SELECT b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
b.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
b.nomina,b.estado_civil,b.tipo_sangre,
b.cedula,b.cuenta_no,CONVERT(char(10),b.fech_efec,103),b.tipo_sueldo
b.cedula,b.cuenta_no,b.fech_efec,b.tipo_sueldo
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
acc_per.nomina,acc_per.estado_civil,acc_per.tipo_sangre,
@@ -402,8 +402,8 @@ FUNCTION adpcad017()
WHERE k.cod_puesto = acc_per.cod_puesto and k.status_t is null
SELECT UNIQUE a.sexo INTO acc_per.sexo FROM adtb00021 a
WHERE a.num_emp = acc_per.num_emp AND a.cod_par = 0 AND
a.sec_par = 0
WHERE a.num_emp = acc_per.num_emp AND ISNULL(a.cod_par,0) = 0 AND
ISNULL(a.sec_par,0) = 0
SELECT a.nis INTO pnis FROM adtb00030 a
WHERE a.num_emp = acc_per.num_emp
@@ -905,7 +905,7 @@ FUNCTION adpcad017()
personal.serie USING "<<<"
SELECT UNIQUE num_emp FROM adtb00021
WHERE num_emp = acc_per.num_emp AND cod_par = 0 AND sec_par = 0
WHERE num_emp = acc_per.num_emp AND ISNULL(cod_par,0) = 0 AND ISNULL(sec_par,0) = 0
IF STATUS = NOTFOUND THEN
@@ -1001,14 +1001,14 @@ FUNCTION adpcmf017()
END IF
LET selec =
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,convert(char(10),a.fecha,103), ",
" CONVERT(CHAR(10),a.fech_efec,103),a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
"SELECT UNIQUE a.num_trx,a.cod_mto,a.cod_sol,a.fecha, ",
" a.fech_efec,a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
" a.sueldo_ac,a.nomina,a.estado_civil,b.sexo,a.tipo_sangre, ",
" a.sueldo_lq,a.observacion,a.num1_emp,a.departamento1, ",
" a.nivel1_emp,a.cod1_puesto,a.num2_emp,a.departamento2, ",
" a.nivel2_emp,a.cod2_puesto,a.num3_emp,a.departamento3, ",
" a.nivel3_emp,a.cod3_puesto,c.cedula,a.us_crea,a.fech_crea,a.us_mod, ",
" a.fech_mod,CASE a.status_t WHEN 'E' THEN 'ANULADO' ELSE 'ACTIVO' END, CONVERT(CHAR(10),c.fech_nac,103) ",
" a.fech_mod,CASE a.status_t WHEN 'E' THEN 'ANULADO' ELSE 'ACTIVO' END, c.fech_nac ",
"FROM adtb00020 a,adtb00003 c LEFT OUTER JOIN adtb00021 b ON b.num_emp = c.num_emp ",
"WHERE a.num_emp = c.num_emp AND ",criterio clipped,
" ORDER BY a.num_emp"
@@ -1580,7 +1580,7 @@ FUNCTION adpcmf017()
END IF
UPDATE adtb00021 SET sexo = acc_per.sexo WHERE num_emp = acc_per.num_emp
AND cod_par = 0 AND sec_par=0
AND ISNULL(cod_par,0) = 0 AND ISNULL(sec_par,0) = 0
UPDATE adtb00017 SET departamento = acc_per.departamento,
nivel_emp = acc_per.nivel_emp,
cod_puesto = acc_per.cod_puesto,
@@ -1668,7 +1668,7 @@ FUNCTION desplegar()
SELECT b.departamento,b.nivel_emp,b.cod_puesto,b.nom1_emp,
b.nom2_emp,b.apell1_emp,b.apell2_emp,b.sueldo_ac,
b.nomina,b.estado_civil,b.tipo_sangre,
b.cedula,b.cuenta_no,CONVERT(char(10),b.fech_efec,103),
b.cedula,b.cuenta_no,b.fech_efec,
b.sueldo_ac
INTO acc_per.departamento,acc_per.nivel_emp,acc_per.cod_puesto,
nombre9,nombre10,apellido9,apellido10,acc_per.sueldo_ac,
@@ -1764,7 +1764,7 @@ nombre5 clipped," ",nombre6 clipped," ",apellido5 clipped," ",apellido6 clipped
## DATOS VACACIONES
IF xtipo = 'VACACIONES' THEN
INITIALIZE vacacion.* TO NULL
SELECT a.cod_mov,a.cod_mov2,a.num_dias_disfrute,CONVERT(CHAR(10),a.fecha_sal,103),CONVERT(CHAR(10),a.fecha_ent,103),
SELECT a.cod_mov,a.cod_mov2,a.num_dias_disfrute,a.fecha_sal,a.fecha_ent,
a.num_nomi,
a.num_dias_disfrute,a.periodo,a.valor_vacaciones,a.num_dias_pagados,a.proporcion_vacaciones
INTO vacacion.cod_mov1,vacacion.cod_mov2,vacacion.dias_vac,vacacion.fecha_sal,vacacion.fecha_ent,
@@ -1930,7 +1930,7 @@ FUNCTION vacaciones(operacion)
LET salario_acumulado = 0
IF vacacion.cod_mov1 = 36 THEN
LET salario = 0
SELECT CONVERT(CHAR(10),a.fech_efec,103),a.sueldo_ac INTO fecha_entrada_emp,salario
SELECT a.fech_efec,a.sueldo_ac INTO fecha_entrada_emp,salario
FROM adtb00003 a
WHERE a.num_emp = acc_per.num_emp
@@ -2011,7 +2011,7 @@ FUNCTION vacaciones(operacion)
END INPUT
ELSE
LET salario = 0
SELECT CONVERT(CHAR(10),a.fech_efec,103),a.sueldo_ac INTO fecha_entrada_emp,salario
SELECT a.fech_efec,a.sueldo_ac INTO fecha_entrada_emp,salario
FROM adtb00003 a
WHERE a.num_emp = acc_per.num_emp
LET salario_quincenal = salario /2
@@ -2733,7 +2733,7 @@ ON EVERY ROW
SELECT COUNT(*) INTO depende FROM adtb00013
WHERE cod_sol = codigo_s AND cod_par = 4
SELECT a.cod_provincia,CONVERT(CHAR(10),a.fech_nac,103),a.cod_nac
SELECT a.cod_provincia,a.fech_nac,a.cod_nac
INTO cod_provincia,fecha_nac,codigo_n
FROM adtb00012 a
WHERE a.cod_sol = codigo_s
+1
View File
@@ -4,6 +4,7 @@
FECHA : Mayo 9, 2022
}
IMPORT FGL greruntime
GLOBALS "ipprgb000.4gl"
DEFINE r INT,
arr_busqueda1 DYNAMIC ARRAY OF RECORD
+3 -2
View File
@@ -81,6 +81,7 @@ END MAIN
OPEN FORM lqfmrp009 FROM "lqfmrp009"
DISPLAY FORM lqfmrp009
CALL ui.Window.getCurrent().setText("Liquidacion Repuestos")
DISPLAY "lqprrp009" AT 4,3
DISPLAY "Liquidacion Partes y Repuestos" AT 6,24
@@ -101,7 +102,7 @@ END MAIN
CALL msg(numero_msg)
NEXT FIELD m_mes
END IF
SELECT Convert(varchar(10),a.fecha_inicio,103),Convert(varchar(10),a.fecha_corte,103) INTO fecha_inicial,fecha_final
SELECT a.fecha_inicio,a.fecha_corte INTO fecha_inicial,fecha_final
FROM prdtable a WHERE a.mes = m_mes and a.ano = p_ano
DISPLAY BY NAME fecha_inicial,fecha_final ATTRIBUTE(BOLD)
@@ -730,7 +731,7 @@ FUNCTION entrada0271()
LET entra1 = entra
BEFORE FIELD fecha1
SELECT MAX (Convert(varchar(10),(a.fecha),103)) INTO p_fecha FROM cgtb00004 a
SELECT Convert(varchar(10),MAX(a.fecha),103) INTO p_fecha FROM cgtb00004 a
WHERE a.ref[1,5] = entra1 AND a.status_t IS NULL
LET fecha1 = p_fecha + 1
+26 -4
View File
@@ -551,7 +551,7 @@
<Configuration commandLineArguments="jpeguero Peguero2023" id="530364294" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="lqdir/lqprrp004.4gl"/>
</Application>
<Application binaryName="lqprrp009" dependencies="2132467565,-1026233879,-764824792" externalDependencies="libgre.42x" id="659835851" label="lqprrp009">
<Application binaryName="lqprrp009" dependencies="2132467565,-1026233879,-764824792,-1423229125" externalDependencies="libgre.42x" id="659835851" label="lqprrp009">
<Configuration commandLineArguments="jpeguero Peguero2023" id="189897394" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="lqdir/lqprrp009.4gl"/>
</Application>
@@ -716,6 +716,8 @@
<Application binaryName="ipprmt044" dependencies="1763548104,-1026233879,-764824792,-1423229125,493047263" externalDependencies="libgre.42x" id="-960000004" label="ipprmt044">
<Configuration commandLineArguments="jpeguero Peguero2023" id="-961000004" label="Configuration"/>
<File compilerOptions="--build-rdd" filePath="ipdir/ipprmt044.4gl"/>
<File filePath="otrodir/fotos.4gl"/>
<File filePath="ipdir/ipfmwd015.4fd"/>
<File filePath="bin/ipprmt020_1.4rp"/>
</Application>
<Application binaryName="ipprmt064" dependencies="1763548104,-1026233879,-764824792" externalDependencies="libgre.42x" id="-960000005" label="ipprmt064">
@@ -951,8 +953,29 @@
<Group id="328490448" label="ADMINISTRACION PERSONAL">
<Library binaryName="FORMULARIOS_AD" id="1612573873" label="FORMULARIOS_AD">
<File filePath="addir/adfmwd004.per"/>
<File filePath="addir/adfmmt001.4fd"/>
<File filePath="addir/adfmmt017.4fd"/>
<File filePath="addir/adfmwd007.4fd"/>
<File filePath="addir/adfmwd008.per"/>
<File filePath="addir/adfmwd017.per"/>
<File filePath="addir/adfmwd018.per"/>
<File filePath="addir/adfmwd019.per"/>
</Library>
<Library binaryName="FUNCIONES_AD" id="114070979" label="FUNCIONES_AD"/>
<Library binaryName="FUNCIONES_ADF" id="-700000103" label="FUNCIONES_ADF">
<File filePath="addir/adfunciones.4gl"/>
</Library>
<Library binaryName="FUNCIONES_AD" id="114070979" label="FUNCIONES_AD">
<File filePath="addir/adprgb000.4gl"/>
</Library>
<Application binaryName="adprmt001" dependencies="-1026233879,-764824792,114070979,1612573873" id="-700000099" label="adprmt001">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000100" label="Configuration"/>
<File filePath="addir/adprmt001.4gl"/>
</Application>
<Application binaryName="adprmt017" dependencies="-1026233879,-764824792,114070979,1612573873,-1423229125,-700000103" externalDependencies="libgre.42x" id="-700000101" label="adprmt017">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000102" label="Configuration"/>
<File filePath="addir/adprmt017.4gl"/>
<File filePath="bin/adprmt017.4rp"/>
</Application>
</Group>
<Group id="942743738" label="NOMINA">
<Library binaryName="FORMULARIOS_NO" id="-335228674" label="FORMULARIOS_NO">
@@ -1043,10 +1066,9 @@
<Configuration commandLineArguments="alopez Lopez2023" id="-700000070" label="Configuration"/>
<File filePath="nodir/noprcs002.4gl"/>
</Application>
<Application binaryName="noprcs004" dependencies="-1026233879,-764824792,-306412216,-335228674" id="-700000071" label="noprcs004">
<Application binaryName="noprcs004" dependencies="-1026233879,-764824792,-306412216,-335228674,-700000103" id="-700000071" label="noprcs004">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000072" label="Configuration"/>
<File filePath="nodir/noprcs004.4gl"/>
<File filePath="addir/adfunciones.4gl"/>
</Application>
<Application binaryName="noprcs006" dependencies="-1026233879,-764824792,-306412216,-335228674,-1423229125" externalDependencies="libgre.42x" id="-700000073" label="noprcs006">
<Configuration commandLineArguments="alopez Lopez2023" id="-700000074" label="Configuration"/>
+514
View File
@@ -0,0 +1,514 @@
{
==============================================================
MODULO : fotos.4gl
FECHA : 09/02/2017
DESARROLLADO POR : ING. JUAN SOTO
}
IMPORT os
DEFINE xusername,xsmtphost,xsmtpport, xpassword STRING
FUNCTION fotos(xcodn,xcodgrupo,xcodtipo,xcodsec,producto,xusuario,habilitar,xcantidadorden,
xtmpnumero,xcodmov,xbodega,xestado)
DEFINE xcodn,xcodgrupo,xcodtipo,xcodsec,xbodega SMALLINT,
producto VARCHAR(100),
xestado VARCHAR(1),
xcantidadorden,unidadorden DEC(12,5),
habilitar,noexistencia BOOLEAN
DEFINE areageneral RECORD
xtipo_material,xcantidad_minima VARCHAR(30),
bookmatch VARCHAR(50),
tipos VARCHAR(50),
bodega SMALLINT,
descrip_bodega VARCHAR(100)
END RECORD
DEFINE kdatos DYNAMIC ARRAY OF RECORD
kimagen VARCHAR(200),
lado_2 DEC(8,5),
lado_1 DEC(8,5),
lado_3 DEC(8,5),
solicitado SMALLINT,
# cantidadIni SMALLINT,
cantidad FLOAT,
cantidad2 FLOAT,
tono VARCHAR(100),
calidad VARCHAR(100),
disponible SMALLINT,
xobservacion VARCHAR(200),
id_producto CHAR(25),
seccion INT,
tramo INT,
--codid INT,
borrar CHAR(2) ,
nombre_file VARCHAR(100)
END RECORD,
kimagen_dest,kimagen_dest2 STRING,
xusuario VARCHAR(50),
i,xcodmov SMALLINT,
xtmpnumero INT,
TOemail,cuerpo_correo,
subject, procedimiento VARCHAR(200),
totalMedida DEC(12,5)
DEFINE s_tipo,d_tipos,mensaje,f_tipos,filepath,dir_file,opcion STRING
LET producto = xcodn USING "&&&&","-",xcodgrupo USING "&&&&","-",
xcodtipo USING "&&&&","-",xcodsec USING "&&&&&&"," ",producto CLIPPED
OPEN WINDOW w1 WITH FORM "ipfmwd015"
DISPLAY BY NAME producto
DECLARE busca_imagen CURSOR FOR
SELECT a.imagen, SUM(a.lado_1),SUM(a.lado_2),SUM(isnull(a.lado_3,0)),SUM(a.cantidad),
SUM(a.cantidad2),a.observacion,a.id_producto, a.cod_seccion,a.cod_tramo,
a.nombre_file,a.solicitados,a.tono,a.calidad
FROM iptb00050 a
WHERE a.cod_n = xcodn AND
a.cod_grupo = xcodgrupo AND
a.cod_tipo =xcodtipo AND
a.cod_sec = xcodsec AND
a.num_doc = xtmpnumero AND
a.cod_mov = xcodmov
GROUP BY a.imagen, a.observacion,a.id_producto, a.cod_bodega,a.cod_seccion,a.cod_tramo,
a.nombre_file,a.solicitados,a.tono,a.calidad
UNION
SELECT a.imagen, SUM(a.lado_1),SUM(a.lado_2),SUM(isnull(a.lado_3,0)),SUM(a.cantidad),
SUM(a.cantidad2),a.observacion,a.id_producto, a.cod_seccion,a.cod_tramo,
a.nombre_file,a.solicitados,a.tono,a.calidad
FROM tmpdesglose a
WHERE a.cod_n = xcodn AND
a.cod_grupo = xcodgrupo AND
a.cod_tipo =xcodtipo AND
a.cod_sec = xcodsec AND
a.num_doc = xtmpnumero AND
a.cod_mov = xcodmov
GROUP BY a.imagen, a.observacion,a.id_producto, a.cod_seccion,a.cod_tramo,
a.nombre_file,a.solicitados,a.tono,a.calidad
LET kimagen_dest = "tmpfile.jpg"
LET kimagen_dest2="tmpfile2.jpg"
LET i=1
LET d_tipos="jpeg"
LET f_tipos="*.jpg *.png *.jpeg"
LET mensaje=%"Elige Documento"
LET totalMedida = 0
FOREACH busca_imagen INTO kdatos[i].kimagen,kdatos[i].lado_1,
kdatos[i].lado_2,kdatos[i].lado_3,kdatos[i].cantidad,kdatos[i].cantidad2,
kdatos[i].xobservacion,kdatos[i].id_producto,
kdatos[i].seccion,kdatos[i].tramo,kdatos[i].nombre_file,
kdatos[i].tono,kdatos[i].calidad,
#,kdatos[i].solicitado,
kdatos[i].tono,kdatos[i].calidad
LET kdatos[i].borrar='NO'
# LET kdatos[i].cantidadIni = kdatos[i].cantidad
LET totalMedida = totalMedida + kdatos[i].cantidad2
LET i = i+1
END FOREACH
DISPLAY BY NAME totalMedida
CALL kdatos.deleteElement(i)
SELECT a.usuario FROM seg0003 a
WHERE a.usuario = xusuario AND
a.fotos_adicionales_inventario = "SI"
IF STATUS <> NOTFOUND THEN
LET habilitar = TRUE
DIALOG
INPUT BY NAME areageneral.*
BEFORE INPUT
DISPLAY BY NAME xcantidadOrden
IF habilitar = TRUE THEN
--CALL DIALOG.setActionHidden("xtipo_material",FALSE)
--CALL DIALOG.setActionHidden("xcantidad_minima",FALSE)
--CALL DIALOG.setActionHidden("foto",FALSE)
END IF
SELECT DISTINCT a.tipo_material,a.cantidad_minima,a.bookmatch,a.tipos
INTO areageneral.xtipo_material,areageneral.xcantidad_minima,areageneral.bookmatch,areageneral.tipos
FROM iptb00052 a
WHERE a.cod_n =xcodn AND a.cod_grupo = xcodgrupo AND
a.cod_tipo = xcodtipo AND a.cod_sec = xcodsec AND
a.num_doc = xtmpnumero AND a.cod_mov = xcodmov
UNION
SELECT DISTINCT a.tipo_material,a.cantidad_minima,a.bookmatch,a.tipos
INTO areageneral.xtipo_material,areageneral.xcantidad_minima,areageneral.bookmatch,areageneral.tipos
FROM tmpdesglose_master a
WHERE a.cod_n =xcodn AND a.cod_grupo = xcodgrupo AND
a.cod_tipo = xcodtipo AND a.cod_sec = xcodsec AND
a.num_doc = xtmpnumero AND a.cod_mov = xcodmov
SELECT a.tipo_material,a.bookmatch,a.tipos
INTO areageneral.xtipo_material,areageneral.bookmatch,areageneral.tipos
FROM iptb00002 a
WHERE a.cod_n =xcodn AND a.cod_grupo = xcodgrupo AND
a.cod_tipo = xcodtipo AND a.cod_sec = xcodsec
LET areageneral.bodega = xbodega
SELECT a.descripcion INTO areageneral.descrip_bodega FROM
intb00009 a WHERE a.cod_bodega = xbodega
DISPLAY BY NAME areageneral.xtipo_material,areageneral.xcantidad_minima,
areageneral.bookmatch,areageneral.tipos,
areageneral.descrip_bodega,
areageneral.bodega
END INPUT
INPUT ARRAY kdatos FROM sdatos.* ATTRIBUTE(WITHOUT DEFAULTS)
BEFORE INPUT
IF habilitar = TRUE THEN
CALL DIALOG.setFieldActive("lado_1",TRUE)
CALL DIALOG.setFieldActive("lado_2",TRUE)
CALL DIALOG.setFieldActive("lado_3",TRUE)
CALL DIALOG.setFieldActive("cantidad",TRUE)
CALL DIALOG.setFieldActive("cantidad2",TRUE)
CALL DIALOG.setFieldActive("disponible",TRUE)
CALL DIALOG.setFieldActive("xobservacion",TRUE)
CALL DIALOG.setFieldActive("id_producto",TRUE)
CALL DIALOG.setFieldActive("seccion",TRUE)
CALL DIALOG.setFieldActive("tramo",TRUE)
CALL DIALOG.setFieldActive("borrar",TRUE)
CALL DIALOG.setFieldActive("solicitado",FALSE)
END IF
IF xestado = '2' THEN
CALL DIALOG.setFieldActive("lado_1",FALSE)
CALL DIALOG.setFieldActive("lado_2",FALSE)
CALL DIALOG.setFieldActive("lado_3",FALSE)
CALL DIALOG.setFieldActive("cantidad",FALSE)
CALL DIALOG.setFieldActive("cantidad2",FALSE)
CALL DIALOG.setFieldActive("disponible",FALSE)
NEXT FIELD id_producto
END IF
BEFORE ROW
LET i=arr_curr()
# LET kdatos[i].bodega = xbodega
CALL cseccion(xbodega)
IF kdatos[i].kimagen IS NOT NULL THEN
LET kimagen_dest = kdatos[i].kimagen
DISPLAY kimagen_dest TO presenta
END IF
IF kdatos[i].cantidad2 < 0 THEN
LET kdatos[i].cantidad2 = kdatos[i].cantidad2 * -1
END IF
DISPLAY kdatos[i].cantidad TO sdatos[scr_line()].cantidad
AFTER FIELD seccion
CALL ctramo(xbodega, kdatos[i].seccion)
ON ACTION foto_down
IF kdatos[i].kimagen IS NOT NULL THEN
LET dir_file = "tmp\\",xusuario CLIPPED,
kimagen_dest CLIPPED
LET s_tipo = '*jpg *.png'
LET opcion = 'Archivo Imagen'
LET kimagen_dest = dir_file
DISPLAY kimagen_dest TO presenta
LET mensaje = 'Guardar archivo'
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [filepath] )
LET filepath = filepath CLIPPED,"\\",kdatos[i].nombre_file CLIPPED
CALL ui.Interface.frontCall("standard","savefile", [dir_file,opcion,
s_tipo,mensaje], [filepath] )
CALL fgl_putfile(dir_file,filepath)
CALL ui.Interface.frontCall("standard","shellexec", [filepath],[opcion])
END IF
ON ACTION foto
LET i = arr_curr()
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
IF filepath IS NOT NULL THEN
IF downshift(os.Path.extension(filepath)) = "jpg" OR
downshift(os.Path.extension(filepath)) = "jpeg" OR
downshift(os.Path.extension(filepath)) = "png" THEN
LET dir_file = os.Path.basename(filepath)
LET dir_file = "tmp\\",dir_file CLIPPED
# CALL fgl_getfile(filepath,kimagen_dest2)
CALL fgl_getfile(filepath,dir_file)
CALL comprimeImagen(dir_file,' -resize 500x500 ')
LET kdatos[i].nombre_file = os.Path.basename(dir_file)
DISPLAY dir_file TO presenta
LET kdatos[i].kimagen = dir_file
ELSE
CALL fgl_winmessage("ERROR","EL FILE DEBE SER JPG, JPEG, PNG","INFO")
END IF
END IF
{
AFTER FIELD solicitado
LET i = arr_curr()
IF kdatos[i].solicitado IS NULL THEN
CALL fgl_winmessage("ERROR","DEBE ESPECIFICAR lA CANTIDAD SOLICITADA","INFO")
NEXT FIELD solicitado
END IF
IF kdatos[i].solicitado > kdatos[i].cantidad THEN
CALL fgl_winmessage("ERROR","lA CANTIDAD SOLICITADA SUPERA LA DISPONIBLE","INFO")
NEXT FIELD solicitado
ELSE
DISPLAY "kdatos[i].cantidadIni: ",kdatos[i].cantidadIni
DISPLAY "kdatos[i].solicitado: ",kdatos[i].solicitado
LET kdatos[i].cantidad = kdatos[i].cantidadIni - kdatos[i].solicitado
LET kdatos[i].cantidad2= kdatos[i].lado_1 * kdatos[i].lado_2 * kdatos[i].cantidad
DISPLAY kdatos[i].cantidad TO sdatos[scr_line()].cantidad
DISPLAY kdatos[i].cantidad2 TO sdatos[scr_line()].cantidad2
END IF
}
AFTER FIELD cantidad
LET i = arr_curr()
LET kdatos[i].cantidad2= kdatos[i].lado_1 * kdatos[i].lado_2 * kdatos[i].cantidad
DISPLAY kdatos[i].cantidad2 TO sdatos[scr_line()].cantidad2
AFTER FIELD id_producto
IF xestado = '2' THEN
SELECT DISTINCT a.lado_1,a.lado_2,a.lado_3,a.tono,a.calidad
INTO kdatos[i].lado_1,kdatos[i].lado_2,kdatos[i].lado_3,
kdatos[i].tono,kdatos[i].calidad
FROM iptb00050 a WHERE a.id_producto = kdatos[i].id_producto
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD id_producto
END IF
DISPLAY kdatos[i].lado_1 TO sdatos[scr_line()].lado_1
DISPLAY kdatos[i].lado_2 TO sdatos[scr_line()].lado_2
DISPLAY kdatos[i].lado_3 TO sdatos[scr_line()].lado_3
DISPLAY kdatos[i].tono TO sdatos[scr_line()].tono
DISPLAY kdatos[i].calidad TO sdatos[scr_line()].calidad
END IF
ON ACTION guardar ATTRIBUTE(TEXT="Salvar",IMAGE="save")
BEGIN WORK
SELECT a.num_doc FROM tmpdesglose_master a
WHERE a.num_doc = xtmpnumero AND a.cod_mov = xcodmov AND a.us_crea = xusuario
IF STATUS = NOTFOUND THEN
INSERT INTO tmpdesglose_master (cod_n,cod_grupo,cod_tipo,cod_Sec,tipo_material,cantidad_minima,us_crea,fech_crea,cantidadorden,num_doc,cod_mov,fecha,bookmatch,tipos,bodega)
VALUES (xcodn,xcodgrupo,xcodtipo,xcodsec,areageneral.xtipo_material,areageneral.xcantidad_minima,xusuario,getdate(),xcantidadorden,xtmpnumero,xcodmov,getdate(),areageneral.bookmatch,areageneral.tipos,
xbodega)
END IF
DELETE FROM tmpdesglose WHERE num_doc = xtmpnumero AND cod_mov = xcodmov AND
cod_n = xcodn AND cod_grupo = xcodgrupo AND
cod_tipo = xcodtipo AND cod_sec = xcodsec AND
us_crea = xusuario
LET xcantidadorden = 0
LET unidadorden =0
FOR i =1 TO kdatos.getLength()
IF kdatos[i].calidad IS NOT NULL THEN
IF kdatos[i].id_producto IS NULL THEN
ROLLBACK WORK
CALL msg(16)
NEXT FIELD id_producto
END IF
IF xestado = '2' THEN
SELECT DISTINCT id_producto FROM iptb00050 WHERE id_producto = kdatos[i].id_producto
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD id_producto
END IF
IF kdatos[i].cantidad2 < 0 THEN
LET kdatos[i].cantidad2 = kdatos[i].cantidad2 * -1
END IF
CALL idexistencia(kdatos[i].id_producto,kdatos[i].cantidad2,xbodega,
kdatos[i].seccion,kdatos[i].tramo) RETURNING noexistencia
IF noexistencia THEN
ROLLBACK WORK
CALL msg(30)
NEXT FIELD cantidad2
END IF
END IF
LET kdatos[i].id_producto=kdatos[i].id_producto CLIPPED
LET xcantidadorden = xcantidadorden + kdatos[i].cantidad2
LET unidadorden = unidadorden + kdatos[i].cantidad
IF xestado = '2' THEN
LET kdatos[i].cantidad2 = kdatos[i].cantidad2 * -1
END IF
INSERT INTO tmpdesglose (cod_n,cod_grupo,cod_tipo,cod_Sec,imagen,observacion,
lado_1,lado_2,lado_3,cantidad,
nombre_file,us_crea,fech_crea,id_producto,
cantidad2,cod_bodega,cod_seccion,cod_tramo,tono,calidad,num_doc,cod_mov
)
VALUES (xcodn,xcodgrupo,xcodtipo,xcodsec,kdatos[I].kimagen,kdatos[i].xobservacion,
kdatos[i].lado_1,kdatos[i].lado_2,kdatos[i].lado_3,
kdatos[i].cantidad, kdatos[i].nombre_file,xusuario,getdate(),kdatos[i].id_producto,
kdatos[i].cantidad2,xbodega,kdatos[i].seccion,kdatos[i].tramo,kdatos[i].tono,
kdatos[i].calidad,xtmpnumero,xcodmov)
END IF
END FOR
COMMIT WORK
CALL msg(1)
LET subject="ACTUALIZACION IMAGEN PRODUCTO"
LET cuerpo_correo = "EL ARTICULO ",producto CLIPPED, " FUE ACTUALIZADO CON UNA IMAGEN"
# LET toemail ='vendedores@marmotech.com.do;jsoto@marmotech.com.do'
LET toemail ='jsoto@marmotech.com.do'
# LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
# CALL envia_correo(TOemail,CCEmail,cuerpo_correo,
# subject, procedimiento )
LET xusername ='notificacion@marmotech.com.do'
LET xsmtphost ='smtp.office365.com'
LET xsmtpport = '587'
LET xpassword = 'Lmmjvsd2020'
# CALL enviaemail(Toemail,subject,cuerpo_correo,NULL,xusername,xsmtphost,xsmtpport,xpassword)
# RETURNING retorne
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
END INPUT
ON ACTION retornar ATTRIBUTE(TEXT="Retornar",IMAGE="fa-long-arrow-left")
IF xcantidadorden IS NULL THEN
LET xcantidadorden=0
END IF
IF unidadorden IS NULL THEN
LET unidadorden = 0
END IF
EXIT DIALOG
END DIALOG
ELSE
DISPLAY ARRAY kdatos TO sdatos.*
BEFORE ROW
LET i=arr_curr()
IF kdatos[i].kimagen IS NOT NULL THEN
LET kimagen_dest =kdatos[i].kimagen
DISPLAY kimagen_dest TO presenta
END IF
ON ACTION foto_down
IF kdatos[i].kimagen IS NOT NULL THEN
LET dir_file = "tmp\\",xusuario CLIPPED,
kimagen_dest CLIPPED
LET s_tipo = '*jpg *.png'
LET opcion = 'Archivo Imagen'
LET mensaje = 'Guardar archivo'
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [filepath] )
LET filepath = filepath CLIPPED,"\\",kdatos[i].nombre_file CLIPPED
CALL ui.Interface.frontCall("standard","savefile", [dir_file,opcion,
s_tipo,mensaje], [filepath] )
CALL fgl_putfile(dir_file,filepath)
CALL comprimeImagen(filepath,' -resize 500x500 ')
CALL ui.Interface.frontCall("standard","shellexec", [filepath],[opcion])
END IF
AFTER DISPLAY
EXIT DISPLAY
END DISPLAY
END IF
CLOSE WINDOW w1
RETURN xcantidadorden,unidadorden
END FUNCTION
FUNCTION idexistencia(id,cantidad,pbodega, secc,fila)
DEFINE id VARCHAR(25),
existencia,cantidad DEC(12,5),
secc,fila,pbodega INT
SELECT ISNULL(SUM(a.cantidad2),0) INTO existencia FROM iptb00050 a
WHERE a.id_producto = id AND
a.cod_bodega = pbodega AND
a.cod_seccion = secc AND
a.cod_tramo = fila AND
a.status_t IS NULL
IF cantidad > existencia THEN
RETURN TRUE
ELSE
RETURN FALSE
END IF
END FUNCTION
FUNCTION cseccion(almacen)
DEFINE kcod_seccion,almacen SMALLINT,
kdescripcion CHAR(30),
pseccion ui.ComboBox
LET pseccion = ui.combobox.forname("formonly.seccion")
DECLARE busca_sec CURSOR FOR
SELECT a.cod_seccion,a.descripcion FROM Intb00010 a
WHERE a.cod_bodega = almacen
CALL pseccion.clear()
FOREACH busca_sec INTO kcod_seccion,kdescripcion
CALL pseccion.additem(kcod_seccion,kdescripcion)
END FOREACH
CALL pseccion.additem(99,"TODAS")
END FUNCTION
FUNCTION ctramo(almacen,seccion)
DEFINE kcod_tramo,almacen,seccion SMALLINT,kdescripcion CHAR(30),
ptramo ui.ComboBox
LET ptramo = ui.combobox.forname("formonly.tramo")
DECLARE busca_tramo CURSOR FOR
SELECT a.cod_tramo,a.descripcion FROM Intb00043 a
WHERE a.cod_bodega = almacen and a.cod_Seccion = seccion
CALL ptramo.clear()
FOREACH busca_tramo INTO kcod_tramo,kdescripcion
DISPLAY "tramos ",kcod_tramo,kdescripcion," ",almacen," ",seccion
CALL ptramo.additem(kcod_tramo,kdescripcion)
END FOREACH
CALL ptramo.additem(99,"TODOS")
END FUNCTION