Instruccion de Johnny: todos los directorios de fuentes de inventario deben migrarse de la carpeta temporal PROYECTOS a la carpeta real PROYECTO, ya que PROYECTOS sera eliminada. Se elimino tambien un archivo suelto sin relacion llamado "ipdir" que existia en PROYECTO (del commit inicial) y bloqueaba el nombre de la carpeta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1177 lines
45 KiB
Plaintext
1177 lines
45 KiB
Plaintext
{
|
|
------------------------------------------------------------------
|
|
PROGRAMA : IPPRMT002
|
|
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
|
Tabla Maestra Productos
|
|
PROGRAMADOR : Juan Fco. Soto
|
|
FECHA REALIZACION : AGOSTO 1997
|
|
------------------------------------------------------------------
|
|
}
|
|
GLOBALS "ipprgb000.4gl"
|
|
|
|
DEFINE despiece CHAR(1),
|
|
pcodn,pcodgrupo,pcodtipo,pcodsec, d_tipos, f_tipos, mensaje SMALLINT,
|
|
imagen_file,filedestino,filepath STRING,
|
|
pimagen BYTE,
|
|
desc_permitido CHAR(2),
|
|
departamento,cantidadDias INT, es_produccion BOOLEAN, tipo_producto INT
|
|
|
|
DEFINE t_marca DYNAMIC ARRAY OF RECORD
|
|
cod_marca LIKE iptb00019.marca,
|
|
nombre LIKE iptb00019.nombre_marca
|
|
END RECORD,
|
|
descrip_medida,descrip_grupo,descrip_tipo CHAR(40),
|
|
porc_desc DEC(12,2),
|
|
fecha_desc DATE
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL STARTLOG("IPPRMT02.TXT")
|
|
CONNECT TO "marmotech" AS "IFMX" USER usuarios USING clave
|
|
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
SELECT * INTO p_companias.* FROM companias
|
|
CALL ipprmt002()
|
|
END MAIN
|
|
|
|
|
|
FUNCTION ipprmt002()
|
|
CLEAR SCREEN
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 23
|
|
|
|
OPEN FORM ipfmmt002 FROM "ipfmmt002"
|
|
DISPLAY FORM ipfmmt002
|
|
DISPLAY "ipprmt002" AT 4,3
|
|
DISPLAY "Catalogo Productos" AT 6,32
|
|
|
|
MENU
|
|
ON ACTION Adicionar
|
|
|
|
LET filedestino='tmpfoto.jpg'
|
|
LOCATE pimagen IN MEMORY
|
|
CLEAR FORM
|
|
LET INT_FLAG = FALSE
|
|
INITIALIZE p_iptb02.* TO NULL
|
|
LET tipo_p = "A"
|
|
SET CONNECTION "MSSQL"
|
|
CALL ippcad002()
|
|
ON ACTION consultar
|
|
CLEAR FORM
|
|
LET INT_FLAG = FALSE
|
|
INITIALIZE p_iptb02.* TO NULL
|
|
LET tipo_p = "C"
|
|
SET CONNECTION "MSSQL"
|
|
CALL ippcmf002()
|
|
ON ACTION Salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION ippcad002()
|
|
|
|
# WHENEVER ERROR CONTINUE
|
|
## Captura los datos que va a contener el registro
|
|
|
|
|
|
IF tipo_p = "A" THEN
|
|
LET porc_desc=0
|
|
SET CONNECTION "MSSQL"
|
|
INPUT BY NAME p_iptb02.cod_cia,
|
|
p_iptb02.cod_n ,
|
|
p_iptb02.cod_grupo,
|
|
p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,
|
|
p_iptb02.descrip_esp ,p_iptb02.unidad_med,departamento,
|
|
p_iptb02.nomenclatura,
|
|
p_iptb02.bodega,p_iptb01.factor_conv,p_iptb01.factor_ad,grupo1,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,
|
|
p_iptb06.cantidad_2,p_iptb02.control_itbis,p_iptb02.control_existencia,
|
|
p_iptb02.desglose, despiece,
|
|
porc_desc,fecha_desc,desc_permitido,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.tipos,
|
|
p_iptb02.bookmatch,
|
|
p_iptb02.tipo_material,
|
|
p_iptb02.imp_aduanal,
|
|
p_iptb02.categoria,
|
|
es_produccion,
|
|
tipo_producto
|
|
|
|
BEFORE INPUT
|
|
LET k1 = 1
|
|
LET p_iptb01.factor_ad = 1
|
|
DISPLAY BY NAME p_iptb01.factor_ad
|
|
CALL bodegas(k1)
|
|
CALL tipoProducto()
|
|
CALL grupo_producto()
|
|
CALL categoria_conteo()
|
|
CALL gerentesmarcas()
|
|
ON KEY(CONTROL-W)
|
|
CASE
|
|
|
|
WHEN INFIELD (cod_n)
|
|
LET p_iptb02.cod_n = NULL
|
|
LET p_iptb02.descrip_esp = NULL
|
|
LET p_iptb20.producto = NULL
|
|
CALL busca_prod1()
|
|
LET p_iptb02.cod_n = p_iptb20.cod_n
|
|
DISPLAY BY NAME p_iptb02.cod_n
|
|
NEXT FIELD cod_grupo
|
|
|
|
END CASE
|
|
AFTER FIELD porc_desc
|
|
IF porc_desc IS NULL THEN
|
|
LET porc_Desc = 0
|
|
END IF
|
|
DISPLAY BY NAME porc_desc
|
|
AFTER FIELD num_emp
|
|
IF p_iptb02.num_emp IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
|
|
ON ACTION formar
|
|
CALL consigue_descripcion() RETURNING p_iptb02.descrip_esp
|
|
DISPLAY BY NAME p_iptb02.descrip_esp
|
|
|
|
ON ACTION busca_foto
|
|
LET d_tipos="Images"
|
|
LET f_tipos="*.jpg *.png *.gif"
|
|
LET mensaje=%"Elige Imagen"
|
|
|
|
IF p_iptb02.cod_n IS NULL THEN
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
IF p_iptb02.cod_GRUPO IS NULL THEN
|
|
NEXT FIELD cod_GRUPO
|
|
END IF
|
|
IF p_iptb02.cod_TIPO IS NULL THEN
|
|
NEXT FIELD cod_TIPO
|
|
END IF
|
|
IF p_iptb02.cod_SEC IS NULL THEN
|
|
NEXT FIELD cod_SEC
|
|
END IF
|
|
|
|
LET imagen_file = "*.jpg"
|
|
|
|
CALL ui.interface.frontcall("standard","openfile",[imagen_file,d_tipos,f_tipos,mensaje],filepath)
|
|
IF filepath IS NOT NULL THEN
|
|
# LET filedestino = FGL_GETENV("IMAGENNOMINA"),"\\PRODUCTOS\\",p_iptb02.cod_n USING "<<<<","-",
|
|
# p_iptb02.cod_grupo USING "<<<<","-",
|
|
# p_iptb02.cod_tipo USING "<<<<","-",
|
|
# p_iptb02.cod_sec USING "<<<<","-",".jpg"
|
|
|
|
LOCATE pimagen IN MEMORY
|
|
DISPLAY "filepath ",filepath," filedestino ",filedestino
|
|
CALL fgl_getfile(filepath,filedestino)
|
|
|
|
CALL pimagen.readFile(filedestino)
|
|
|
|
DISPLAY filedestino TO foto_producto
|
|
# LET p_iptb02.foto_producto = filedestino
|
|
|
|
END IF
|
|
AFTER FIELD cod_cia
|
|
IF p_iptb02.cod_cia is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_cia
|
|
END IF
|
|
SELECT UNIQUE a.descripcion INTO nombre_cia FROM iptb00022 a
|
|
WHERE a.cod_cia = p_iptb22.cod_cia
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_cia
|
|
END IF
|
|
|
|
DISPLAY BY NAME nombre_cia
|
|
|
|
AFTER FIELD cod_n
|
|
IF p_iptb02.cod_n IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
SELECT UNIQUE a.producto INTO p_iptb20.producto FROM iptb00020 a
|
|
WHERE a.cod_n = p_iptb02.cod_n
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
DISPLAY BY NAME p_iptb20.producto
|
|
|
|
AFTER FIELD grupo1
|
|
IF grupo1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD grupo1
|
|
END IF
|
|
|
|
AFTER FIELD cod_grupo
|
|
IF p_iptb02.cod_grupo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_grupo
|
|
END IF
|
|
SELECT a.descripcion INTO descrip_grupo FROM iptb00029 a
|
|
WHERE a.cod_grupo = p_iptb02.cod_grupo
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(12)
|
|
NEXT FIELD cod_grupo
|
|
END IF
|
|
DISPLAY BY NAME descrip_grupo
|
|
AFTER FIELD cod_tipo
|
|
IF p_iptb02.cod_tipo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
|
|
SELECT UNIQUE a.descripcion INTO descrip_tipo FROM iptb00024 a WHERE
|
|
a.cod_tipo = p_iptb02.cod_tipo
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
DISPLAY BY NAME descrip_tipo
|
|
AFTER FIELD cod_sec
|
|
IF p_iptb02.cod_sec IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sec
|
|
END IF
|
|
SELECT a.descripcion INTO descrip_medida FROM iptb00030 a
|
|
WHERE a.cod_sec = p_iptb02.cod_sec
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cod_sec
|
|
END IF
|
|
DISPLAY BY NAME descrip_medida
|
|
|
|
SELECT UNIQUE a.descrip_esp FROM iptb00002 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_sec = p_iptb02.cod_sec
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
|
|
DISPLAY BY NAME p_iptb02.descrip_esp
|
|
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET INT_FLAG = FALSE
|
|
RETURN
|
|
END IF
|
|
IF p_iptb01.factor_ad IS NULL THEN
|
|
CALL msg(2)
|
|
NEXT FIELD factor_ad
|
|
END IF
|
|
IF p_iptb01.factor_conv IS NULL OR p_iptb01.factor_conv = 0 THEN
|
|
CALL msg(2)
|
|
NEXT FIELD factor_ad
|
|
END IF
|
|
|
|
IF p_iptb02.cod_cia IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_cia
|
|
END IF
|
|
|
|
IF p_iptb02.cod_n IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
IF p_iptb02.cod_grupo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_grupo
|
|
END IF
|
|
|
|
IF p_iptb02.cod_tipo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
|
|
IF p_iptb02.cod_sec IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sec
|
|
END IF
|
|
IF p_iptb02.num_emp IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
|
|
IF p_iptb02.desglose = 'S' THEN
|
|
IF p_iptb02.tipo_material IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD tipo_material
|
|
END IF
|
|
IF p_iptb02.tipos IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD tipos
|
|
END IF
|
|
IF p_iptb02.bookmatch IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD bookmatch
|
|
END IF
|
|
|
|
END IF
|
|
END INPUT
|
|
|
|
ELSE
|
|
SET CONNECTION "MSSQL"
|
|
LET pcodn = p_iptb02.cod_n
|
|
LET pcodgrupo = p_iptb02.cod_grupo
|
|
LET pcodtipo = p_iptb02.cod_tipo
|
|
LET pcodsec = p_iptb02.cod_sec
|
|
|
|
INPUT BY NAME
|
|
p_iptb02.cod_cia,
|
|
# p_iptb02.cod_n ,
|
|
# p_iptb02.cod_grupo,
|
|
# p_iptb02.cod_tipo,
|
|
# p_iptb02.cod_sec,
|
|
p_iptb02.descrip_esp ,p_iptb02.unidad_med,departamento,
|
|
p_iptb02.nomenclatura,
|
|
p_iptb02.bodega,p_iptb01.factor_conv,p_iptb01.factor_ad,grupo1,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,
|
|
p_iptb06.cantidad_2,p_iptb02.control_itbis,p_iptb02.control_existencia,
|
|
p_iptb02.desglose, despiece,
|
|
porc_desc,fecha_desc,desc_permitido,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.tipos,
|
|
p_iptb02.bookmatch,
|
|
p_iptb02.tipo_material,
|
|
p_iptb02.imp_aduanal,
|
|
p_iptb02.categoria,
|
|
es_produccion,
|
|
tipo_producto
|
|
WITHOUT DEFAULTS
|
|
|
|
ON ACTION formar
|
|
CALL consigue_descripcion() RETURNING p_iptb02.descrip_esp
|
|
DISPLAY BY NAME p_iptb02.descrip_esp
|
|
|
|
ON ACTION busca_foto
|
|
LET d_tipos="Images"
|
|
LET f_tipos="*.jpg *.png *.gif"
|
|
LET mensaje=%"Elige Imagen"
|
|
|
|
LET imagen_file = "*.jpg"
|
|
|
|
CALL ui.interface.frontcall("standard","openfile",[imagen_file,d_tipos,f_tipos,mensaje],filepath)
|
|
IF filepath IS NOT NULL THEN
|
|
# LET filedestino = FGL_GETENV("IMAGENNOMINA"),"\\PRODUCTOS\\",p_iptb02.cod_n USING "<<<<","-",
|
|
# p_iptb02.cod_grupo USING "<<<<","-",
|
|
# p_iptb02.cod_tipo USING "<<<<","-",
|
|
# p_iptb02.cod_sec USING "<<<<","-",".jpg"
|
|
|
|
CALL fgl_getfile(filepath,filedestino)
|
|
DISPLAY "filepath ",filepath," filedestino ",filedestino
|
|
CALL pimagen.readFile(filedestino)
|
|
|
|
DISPLAY filedestino TO foto_producto
|
|
LET p_iptb02.foto_producto = filedestino
|
|
END IF
|
|
|
|
BEFORE INPUT
|
|
CALL busca_departamento()
|
|
LET k1 = 1
|
|
CALL bodegas(k1)
|
|
CALL tipoProducto()
|
|
CALL grupo_producto()
|
|
CALL categoria_conteo()
|
|
LET cambio = "N"
|
|
LET int_flag = FALSE
|
|
IF p_iptb01.factor_ad IS NULL OR p_iptb01.factor_ad = 0 THEN
|
|
LET p_iptb01.factor_ad = 1
|
|
DISPLAY BY NAME p_iptb01.factor_ad
|
|
END IF
|
|
CALL gerentesmarcas()
|
|
{ SELECT UNIQUE a.cod_n FROM iptb00006 a WHERE a.cod_mov <> 99 AND
|
|
a.cod_n = p_iptb02.cod_n AND
|
|
a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND
|
|
a.cod_sec = p_iptb02.cod_sec AND
|
|
a.status_t IS NULL
|
|
|
|
IF STATUS <> NOTFOUND THEN
|
|
NEXT FIELD descrip_esp
|
|
END IF
|
|
|
|
|
|
AFTER FIELD cod_n
|
|
IF p_iptb02.cod_n IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
SELECT UNIQUE a.producto INTO p_iptb20.producto FROM iptb00020 a
|
|
WHERE a.cod_n = p_iptb02.cod_n
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_n
|
|
END IF
|
|
|
|
DISPLAY BY NAME p_iptb20.producto
|
|
|
|
AFTER FIELD cod_grupo
|
|
IF p_iptb02.cod_grupo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_grupo
|
|
END IF
|
|
SELECT a.descripcion INTO descrip_grupo FROM iptb00029 a
|
|
WHERE a.cod_grupo = p_iptb02.cod_grupo
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(12)
|
|
NEXT FIELD cod_grupo
|
|
END IF
|
|
DISPLAY BY NAME descrip_grupo
|
|
AFTER FIELD cod_tipo
|
|
IF p_iptb02.cod_tipo IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
|
|
SELECT UNIQUE a.descripcion INTO descrip_tipo FROM iptb00024 a WHERE
|
|
a.cod_tipo = p_iptb02.cod_tipo
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
DISPLAY BY NAME descrip_tipo
|
|
AFTER FIELD cod_sec
|
|
IF p_iptb02.cod_sec IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_sec
|
|
END IF
|
|
|
|
SELECT a.descripcion INTO descrip_medida FROM iptb00030 a
|
|
WHERE a.cod_sec = p_iptb02.cod_sec
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD cod_sec
|
|
END IF
|
|
DISPLAY BY NAME descrip_medida
|
|
|
|
SELECT UNIQUE a.descrip_esp FROM iptb00002 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_sec = p_iptb02.cod_sec
|
|
|
|
|
|
IF STATUS != NOTFOUND AND cambio = "S" THEN
|
|
LET numero_msg = 12
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_tipo
|
|
END IF
|
|
|
|
DISPLAY BY NAME p_iptb02.descrip_esp
|
|
}
|
|
AFTER FIELD num_emp
|
|
IF p_iptb02.num_emp IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD num_emp
|
|
END IF
|
|
LET p_iptb02.nombre_representante = ui.ComboBox.forName('formonly.num_emp').getTextOf(p_iptb02.num_emp)
|
|
|
|
AFTER FIELD cod_cia
|
|
IF p_iptb02.cod_cia is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_cia
|
|
END IF
|
|
|
|
IF p_iptb02.cod_cia = 1 THEN
|
|
LET nombre_cia = "PRODUCTO LOCAL"
|
|
ELSE
|
|
LET nombre_cia = "PRODUCTO IMPORTADO"
|
|
END IF
|
|
DISPLAY BY NAME nombre_cia
|
|
|
|
AFTER FIELD descrip_esp
|
|
IF p_iptb02.descrip_esp is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descrip_esp
|
|
END IF
|
|
|
|
|
|
|
|
AFTER FIELD unidad_med
|
|
IF p_iptb02.descrip_esp is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descrip_esp
|
|
END IF
|
|
|
|
AFTER FIELD grupo1
|
|
IF grupo1 IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD grupo1
|
|
END IF
|
|
|
|
AFTER FIELD exist_max
|
|
IF p_iptb02.exist_max is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD exist_max
|
|
END IF
|
|
|
|
AFTER FIELD exist_min
|
|
IF p_iptb02.exist_min is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD exist_min
|
|
END IF
|
|
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET INT_FLAG = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
IF p_iptb01.factor_ad IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD factor_ad
|
|
END IF
|
|
IF p_iptb01.factor_conv IS NULL OR p_iptb01.factor_conv = 0 THEN
|
|
CALL msg(16)
|
|
NEXT FIELD factor_conv
|
|
END IF
|
|
|
|
IF p_iptb02.cod_cia is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD cod_cia
|
|
END IF
|
|
|
|
IF p_iptb02.descrip_esp is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descrip_esp
|
|
END IF
|
|
|
|
IF p_iptb02.descrip_esp is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD descrip_esp
|
|
END IF
|
|
|
|
IF p_iptb02.bodega is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD bodega
|
|
END IF
|
|
|
|
IF p_iptb02.exist_max is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD exist_max
|
|
END IF
|
|
|
|
IF p_iptb02.exist_min is null THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD exist_min
|
|
END IF
|
|
IF p_iptb02.desglose = 'S' THEN
|
|
IF p_iptb02.tipo_material IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD tipo_material
|
|
END IF
|
|
IF p_iptb02.tipos IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD tipos
|
|
END IF
|
|
IF p_iptb02.bookmatch IS NULL THEN
|
|
CALL msg(16)
|
|
NEXT FIELD bookmatch
|
|
END IF
|
|
|
|
END IF
|
|
END INPUT
|
|
END IF
|
|
IF tipo_p = "A" THEN
|
|
# PRIMERA CONEXION
|
|
SET CONNECTION "MSSQL"
|
|
LET p_iptb06.num_doc = 0
|
|
SELECT MAX(a.num_doc) INTO p_iptb06.num_doc FROM iptb00006 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_sec = p_iptb02.cod_sec AND
|
|
a.cod_mov = 99
|
|
|
|
IF p_iptb06.num_doc IS NULL THEN
|
|
LET p_iptb06.num_doc = 0
|
|
END IF
|
|
LET p_iptb06.num_doc = p_iptb06.num_doc + 1
|
|
#LET pcodid = 0
|
|
#SELECT MAX(a.codid) INTO pcodid FROM iptb00002 a
|
|
#LET pcodid = pcodid +1
|
|
#LET p_iptb02.codid = pcodid
|
|
# BEGIN WORK
|
|
INSERT INTO iptb00001
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.unidad_med,p_iptb01.factor_conv,
|
|
NULL,SUSER_SNAME(),GETDATE(),NULL,NULL,p_iptb01.factor_ad)
|
|
|
|
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
|
|
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
|
|
exist_min,us_crea,fech_crea,foto_producto,porc_desc,fecha_desc,imagen,descuento_permitido,departamento,grupo1,
|
|
num_emp,nombre_representante,desglose,tipos,bookmatch,tipo_material,imp_aduanal,categoria, es_produccion,tipoProducto)
|
|
VALUES (p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,
|
|
p_iptb02.dia_llegada,p_iptb02.exist_max,p_iptb02.exist_min,usuarios,getdate(),
|
|
p_iptb02.foto_producto,porc_desc,fecha_desc,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,p_iptb02.nombre_representante,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria, es_produccion,tipo_producto)
|
|
|
|
|
|
FREE pimagen
|
|
LET p_iptb06.cantidad_2 = 0
|
|
INSERT INTO iptb00006 (cod_cia,num_doc,fecha,cod_n,cod_grupo,cod_tipo,
|
|
cod_sec,bodega,cantidad_2,cod_mov,us_crea,fech_crea,area,cantidad_1)
|
|
VALUES (p_iptb02.cod_cia,p_iptb06.num_doc,TODAY,p_iptb02.cod_n,
|
|
p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec,
|
|
p_iptb02.bodega,p_iptb06.cantidad_2,99,usuarios,GETDATE(),1,0)
|
|
|
|
IF despiece = "S" THEN
|
|
INSERT INTO iptb00027
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec)
|
|
END IF
|
|
|
|
# COMMIT WORK
|
|
|
|
SELECT a.codid INTO p_iptb02.codid FROM iptb00002 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND
|
|
a.cod_grupo = p_iptb02.cod_tipo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND
|
|
a.cod_sec = p_iptb02.cod_Sec
|
|
# SEGUNDA CONEXION
|
|
|
|
SET CONNECTION "IFMX"
|
|
|
|
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
|
|
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
|
|
exist_min,imp_aduanal, us_crea,fech_crea,codid)
|
|
VALUES (p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,
|
|
p_iptb02.dia_llegada,p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.imp_aduanal,usuarios,getdate(),
|
|
p_iptb02.codid)
|
|
|
|
|
|
INSERT INTO iptb00001
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.unidad_med,p_iptb01.factor_conv,
|
|
NULL,SUSER_SNAME(),GETDATE(),NULL,NULL,p_iptb01.factor_ad)
|
|
|
|
LET p_iptb06.cantidad_2 = 0
|
|
INSERT INTO iptb00006 (cod_cia,num_doc,fecha,cod_n,cod_grupo,cod_tipo,
|
|
cod_sec,bodega,cantidad_2,cod_mov,us_crea,fech_crea)
|
|
VALUES (p_iptb02.cod_cia,p_iptb06.num_doc,TODAY,p_iptb02.cod_n,
|
|
p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec,
|
|
p_iptb02.bodega,p_iptb06.cantidad_2,99,usuarios,getdate())
|
|
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
ELSE
|
|
|
|
# PRIMERA CONEXION
|
|
SET CONNECTION "MSSQL"
|
|
|
|
UPDATE iptb00002 SET iptb00002.cod_cia = p_iptb02.cod_cia,
|
|
iptb00002.cod_n =p_iptb02.cod_n,
|
|
iptb00002.cod_grupo = p_iptb02.cod_grupo,
|
|
iptb00002.cod_tipo =p_iptb02.cod_tipo,
|
|
iptb00002.cod_sec =p_iptb02.cod_Sec,
|
|
iptb00002.descrip_esp =p_iptb02.descrip_esp,
|
|
iptb00002.descrip_ing =p_iptb02.descrip_ing,
|
|
iptb00002.bodega =p_iptb02.bodega,
|
|
iptb00002.control_existencia =p_iptb02.control_existencia,
|
|
iptb00002.control_itbis =p_iptb02.control_itbis,
|
|
iptb00002.exist_min =p_iptb02.exist_min,
|
|
iptb00002.exist_max =p_iptb02.exist_max,
|
|
iptb00002.unidad_med = p_iptb02.unidad_med,
|
|
iptb00002.dia_llegada =p_iptb02.dia_llegada,
|
|
iptb00002.nomenclatura =p_iptb02.nomenclatura,
|
|
iptb00002.us_mod = usuarios,
|
|
iptb00002.fech_mod = getdate(),
|
|
iptb00002.foto_producto = p_iptb02.foto_producto,
|
|
iptb00002.porc_desc = porc_desc,
|
|
iptb00002.fecha_desc = fecha_Desc,
|
|
iptb00002.imagen = pimagen,
|
|
iptb00002.descuento_permitido=desc_permitido,
|
|
iptb00002.departamento = departamento,
|
|
iptb00002.grupo1 = grupo1,
|
|
iptb00002.num_emp = p_iptb02.num_emp,
|
|
iptb00002.nombre_representante = p_iptb02.nombre_representante,
|
|
iptb00002.desglose = p_iptb02.desglose,
|
|
iptb00002.tipos = p_iptb02.tipos,
|
|
iptb00002.bookmatch = p_iptb02.bookmatch,
|
|
iptb00002.tipo_material = p_iptb02.tipo_material,
|
|
iptb00002.imp_aduanal = p_iptb02.imp_aduanal,
|
|
iptb00002.categoria = p_iptb02.categoria,
|
|
iptb00002.es_produccion = es_produccion,
|
|
iptb00002.tipoProducto = tipo_producto
|
|
WHERE codid = p_iptb02.codid
|
|
FREE pimagen
|
|
|
|
SELECT a.cod_n FROM iptb00001 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_Sec = p_iptb02.cod_sec
|
|
IF STATUS = NOTFOUND THEN
|
|
|
|
INSERT INTO iptb00001
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.unidad_med,p_iptb01.factor_conv,
|
|
NULL,SUSER_SNAME(),GETDATE(),NULL,NULL,p_iptb01.factor_ad)
|
|
ELSE
|
|
|
|
UPDATE iptb00001 SET unidad = p_iptb02.unidad_med,
|
|
factor_conv = p_iptb01.factor_conv,
|
|
factor_ad = p_iptb01.factor_ad,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate()
|
|
WHERE cod_n = p_iptb02.cod_n AND cod_grupo = p_iptb02.cod_grupo AND
|
|
cod_tipo = p_iptb02.cod_tipo AND cod_Sec = p_iptb02.cod_sec
|
|
END IF
|
|
|
|
DELETE FROM iptb00027 WHERE @cod_n = p_iptb02.cod_n AND @cod_grupo = p_iptb02.cod_grupo AND
|
|
@cod_tipo = p_iptb02.cod_tipo AND @cod_sec = p_iptb02.cod_sec
|
|
|
|
IF despiece = "S" THEN
|
|
INSERT INTO iptb00027
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec)
|
|
END IF
|
|
|
|
# SEGUNDA CONEXION
|
|
|
|
SET CONNECTION "IFMX"
|
|
|
|
SELECT a.cod_n FROM iptb00002 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND
|
|
a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND
|
|
a.cod_sec = p_iptb02.cod_sec
|
|
|
|
IF STATUS <> NOTFOUND THEN
|
|
UPDATE iptb00002 SET iptb00002.cod_cia = p_iptb02.cod_cia,
|
|
iptb00002.descrip_esp =p_iptb02.descrip_esp,
|
|
iptb00002.descrip_ing =p_iptb02.descrip_ing,
|
|
iptb00002.bodega =p_iptb02.bodega,
|
|
iptb00002.control_existencia =p_iptb02.control_existencia,
|
|
iptb00002.control_itbis =p_iptb02.control_itbis,
|
|
iptb00002.exist_min =p_iptb02.exist_min,
|
|
iptb00002.exist_max =p_iptb02.exist_max,
|
|
iptb00002.unidad_med = p_iptb02.unidad_med,
|
|
iptb00002.dia_llegada =p_iptb02.dia_llegada,
|
|
iptb00002.nomenclatura =p_iptb02.nomenclatura,
|
|
iptb00002.imp_aduanal = p_iptb02.imp_aduanal,
|
|
iptb00002.status_t = p_iptb02.status_t,
|
|
iptb00002.us_mod = usuarios,
|
|
iptb00002.fech_mod = GETDATE()
|
|
WHERE cod_n = p_iptb02.cod_n AND
|
|
cod_grupo = p_iptb02.cod_grupo AND
|
|
cod_tipo = p_iptb02.cod_tipo AND
|
|
cod_Sec = p_iptb02.cod_sec
|
|
ELSE
|
|
INSERT INTO iptb00002(cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
|
|
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
|
|
exist_min,imp_aduanal,us_crea,fech_crea,codid)
|
|
VALUES (p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,
|
|
p_iptb02.dia_llegada,p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.imp_aduanal,usuarios,GETDATE(),
|
|
p_iptb02.codid)
|
|
|
|
LET p_iptb06.cantidad_2 = 0
|
|
INSERT INTO iptb00006 (cod_cia,num_doc,fecha,cod_n,cod_grupo,cod_tipo,
|
|
cod_sec,bodega,cantidad_2,cod_mov,us_crea,fech_crea)
|
|
VALUES (p_iptb02.cod_cia,p_iptb06.num_doc,TODAY,p_iptb02.cod_n,
|
|
p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec,
|
|
p_iptb02.bodega,p_iptb06.cantidad_2,99,usuarios,GETDATE())
|
|
|
|
END IF
|
|
|
|
SELECT a.cod_n FROM iptb00001 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_Sec = p_iptb02.cod_sec
|
|
IF STATUS = NOTFOUND THEN
|
|
|
|
INSERT INTO iptb00001
|
|
VALUES (p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.unidad_med,p_iptb01.factor_conv,
|
|
NULL,SUSER_SNAME(),GETDATE(),NULL,NULL,p_iptb01.factor_ad)
|
|
ELSE
|
|
|
|
UPDATE iptb00001 SET unidad = p_iptb02.unidad_med,
|
|
factor_conv = p_iptb01.factor_conv,
|
|
factor_ad = p_iptb01.factor_ad,
|
|
us_mod = usuarios,
|
|
fech_mod = getdate()
|
|
WHERE cod_n = p_iptb02.cod_n AND cod_grupo = p_iptb02.cod_grupo AND
|
|
cod_tipo = p_iptb02.cod_tipo AND cod_Sec = p_iptb02.cod_sec
|
|
END IF
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
END IF
|
|
END FUNCTION
|
|
|
|
FUNCTION ippcmf002()
|
|
#WHENEVER ERROR CONTINUE
|
|
CLEAR FORM
|
|
## Aqui se prepara para la captura del criterio de seleccion
|
|
|
|
CONSTRUCT criterio ON iptb00002.cod_cia,iptb00002.cod_n,iptb00002.cod_grupo,
|
|
iptb00002.cod_tipo,iptb00002.cod_sec,
|
|
iptb00002.descrip_esp
|
|
FROM cod_cia,cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp
|
|
BEFORE CONSTRUCT
|
|
CALL busca_departamento()
|
|
CALL gerentesmarcas()
|
|
CALL tipoProducto()
|
|
CALL grupo_producto()
|
|
AFTER CONSTRUCT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
EXIT CONSTRUCT
|
|
END CONSTRUCT
|
|
#CONVERT(VARCHAR(16),fech_crea,103)
|
|
LET filedestino="tmpfoto.jpg"
|
|
LET SELEC = "SELECT DISTINCT codid,cod_cia,cod_n,cod_grupo,cod_tipo,cod_Sec,descrip_esp,
|
|
descrip_ing,unidad_med,bodega,control_existencia,control_itbis,dia_llegada,exist_max,
|
|
exist_min,us_crea,fech_crea,foto_producto,porc_desc,",
|
|
"CONVERT(CHAR(10),fecha_desc,103),status_t,imagen,descuento_permitido,departamento,grupo1,
|
|
num_emp,us_mod,CONVERT(VARCHAR(16),fech_mod,103),desglose,
|
|
tipos,bookmatch,tipo_material, imp_aduanal, categoria, es_produccion, tipoProducto
|
|
FROM iptb00002 ",
|
|
"WHERE ",criterio clipped,
|
|
" ORDER BY cod_n,cod_grupo,cod_tipo,cod_Sec"
|
|
|
|
PREPARE busca FROM selec
|
|
DECLARE datos SCROLL CURSOR WITH HOLD FOR busca
|
|
|
|
OPEN datos
|
|
LOCATE pimagen IN MEMORY
|
|
FETCH FIRST datos INTO p_iptb02.codid, p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria, es_produccion,
|
|
tipo_producto
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
CALL despl1()
|
|
|
|
|
|
MENU "OPCIONES "
|
|
COMMAND "Siguiente" "Presenta en pantalla el proximo registro encontrado"
|
|
|
|
FETCH NEXT datos INTO p_iptb02.codid,p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria, es_produccion,
|
|
tipo_producto
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL despl1()
|
|
|
|
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
|
|
FETCH PREVIOUS datos INTO p_iptb02.codid,p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria,es_produccion,
|
|
tipo_producto
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
CALL despl1()
|
|
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
|
|
FETCH FIRST datos INTO p_iptb02.codid,p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria,es_produccion,
|
|
tipo_producto
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 5
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CALL despl1()
|
|
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
|
|
FETCH LAST datos INTO p_iptb02.codid,p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,pimagen,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,
|
|
p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.tipos,p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.imp_aduanal, p_iptb02.categoria,es_produccion,
|
|
tipo_producto
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 4
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
|
|
CALL despl1()
|
|
COMMAND "Escoger" "<Esc> Actualiza Registro <Delete> Cancela Operacion"
|
|
CALL ippcad002()
|
|
EXIT MENU
|
|
COMMAND KEY ("T") "acTivar"
|
|
UPDATE iptb00002 SET status_t = null,us_mod = user,fech_mod = GETDATE()
|
|
WHERE @cod_n = p_iptb02.cod_n AND @cod_grupo = p_iptb02.cod_grupo AND
|
|
@cod_tipo = p_iptb02.cod_tipo AND @cod_sec = p_iptb02.cod_sec
|
|
|
|
LET numero_msg = 13
|
|
CALL msg(numero_msg)
|
|
|
|
COMMAND KEY ("L") "eLiminar"
|
|
IF p_iptb02.control_existencia <> "SI" THEN
|
|
SELECT ISNULL(COUNT(*),0) INTO cantidadDias FROM iptb00006 a WHERE
|
|
a.cod_n = p_iptb02.cod_n AND a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND a.cod_sec = p_iptb02.cod_sec AND
|
|
TODAY - a.fecha <=30
|
|
|
|
IF cantidadDias > 0 THEN
|
|
CALL fgl_winmessage("TRANSACCIONES","NO PUEDE ELIMINAR CODIGO, TRANSACCIONES","INFO")
|
|
CONTINUE MENU
|
|
END IF
|
|
|
|
END IF
|
|
IF p_iptb02.control_existencia = "SI" THEN
|
|
IF p_iptb06.cantidad_2 <> 0 THEN
|
|
CALL fgl_winmessage("EXISTENCIA","NO PUEDE ELIMINAR UN CODIGO CON EXISTENCIA","INFO")
|
|
CONTINUE MENU
|
|
END IF
|
|
END IF
|
|
LET OPT = FGL_WINQUESTION("WARNING","ESTA SEGURO DE ELIMINAR ESTE REGISTRO?","NO","YES|NO","QUESTION",0)
|
|
IF opt = "YES" THEN
|
|
UPDATE iptb00002 SET status_t = "E",us_mod = usuarios,
|
|
fech_mod = GETDATE()
|
|
WHERE @cod_n = p_iptb02.cod_n AND @cod_grupo = p_iptb02.cod_grupo AND
|
|
@cod_tipo = p_iptb02.cod_tipo AND @cod_sec = p_iptb02.cod_sec
|
|
|
|
{ UPDATE iptb00006 SET status_t = "E", us_mod = user, fech_mod = GETDATE()
|
|
WHERE @cod_n = p_iptb02.cod_n AND @cod_grupo = p_iptb02.cod_grupo AND
|
|
@cod_tipo = p_iptb02.cod_tipo AND @cod_sec = p_iptb02.cod_sec
|
|
}
|
|
LET numero_msg = 39
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
COMMAND "Retornar" "Retorna al menu anterior"
|
|
CLEAR FORM
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_prod1()
|
|
OPEN WINDOW producto AT 12,3 WITH FORM "ipfmwd006" ATTRIBUTE(BORDER,CYAN,
|
|
FORM LINE FIRST +1)
|
|
|
|
DECLARE busca11 CURSOR FOR
|
|
SELECT a.* FROM iptb00020 a ORDER BY 2
|
|
|
|
LET idx = 1
|
|
FOREACH busca11 INTO t_marca[idx].*
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
IF idx = 1 THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
SLEEP 4
|
|
END IF
|
|
CALL set_count(idx-1)
|
|
DISPLAY ARRAY t_marca TO s_pilas.*
|
|
LET idx = arr_curr()
|
|
LET p_iptb20.cod_n = t_marca[idx].cod_marca
|
|
LET p_iptb20.producto = t_marca[idx].nombre
|
|
CLOSE WINDOW producto
|
|
END FUNCTION
|
|
|
|
FUNCTION despl1()
|
|
|
|
# FACTOR CONVERSION
|
|
LET p_iptb01.factor_ad=0
|
|
LET p_iptb01.factor_conv=0
|
|
SELECT a.factor_conv,a.factor_ad INTO p_iptb01.factor_conv,p_iptb01.factor_ad
|
|
FROM iptb00001 a
|
|
WHERE a.cod_n = p_iptb02.cod_n AND
|
|
a.cod_grupo = p_iptb02.cod_grupo AND
|
|
a.cod_tipo = p_iptb02.cod_tipo AND
|
|
a.cod_sec = p_iptb02.cod_sec
|
|
|
|
LET p_iptb06.cantidad_2 = 0
|
|
SELECT SUM(a.cantidad_2) INTO p_iptb06.cantidad_2 FROM iptb00006 a
|
|
WHERE a.cod_n=p_iptb02.cod_n and a.cod_grupo=p_iptb02.cod_grupo and
|
|
a.cod_tipo=p_iptb02.cod_tipo and a.cod_sec=p_iptb02.cod_sec AND
|
|
a.status_t IS NULL
|
|
|
|
IF p_iptb06.cantidad_2 IS NULL THEN
|
|
LET p_iptb06.cantidad_2 = 0
|
|
END IF
|
|
|
|
LET p_iptb20.producto = NULL
|
|
SELECT UNIQUE a.producto INTO p_iptb20.producto FROM iptb00020 a
|
|
WHERE a.cod_n = p_iptb02.cod_n
|
|
|
|
SELECT a.descripcion INTO descrip_grupo FROM iptb00029 a
|
|
WHERE a.cod_grupo = p_iptb02.cod_grupo
|
|
|
|
SELECT a.descripcion INTO descrip_medida FROM iptb00030 a
|
|
WHERE a.cod_sec = p_iptb02.cod_sec
|
|
|
|
LET p_iptb21.nombre_cia = NULL
|
|
SELECT UNIQUE a.nombre_cia INTO p_iptb21.nombre_cia FROM iptb00021 a
|
|
WHERE a.cod_cia = p_iptb02.cod_cia
|
|
|
|
SELECT UNIQUE a.cod_n FROM iptb00027 a
|
|
WHERE a.cod_n=p_iptb02.cod_n and
|
|
a.cod_grupo=p_iptb02.cod_grupo and
|
|
a.cod_tipo=p_iptb02.cod_tipo and
|
|
a.cod_sec=p_iptb02.cod_sec
|
|
|
|
|
|
IF STATUS != NOTFOUND THEN
|
|
LET despiece = "S"
|
|
ELSE
|
|
LET despiece = "N"
|
|
END IF
|
|
LET descrip_tipo = NULL
|
|
SELECT UNIQUE a.descripcion INTO descrip_tipo FROM iptb00024 a WHERE a.cod_tipo = p_iptb02.cod_tipo
|
|
|
|
CALL pimagen.writeFile(filedestino)
|
|
DISPLAY "file ",filedestino
|
|
DISPLAY filedestino TO foto_producto
|
|
|
|
DISPLAY BY NAME p_iptb02.codid, p_iptb02.cod_cia,p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,
|
|
p_iptb02.cod_sec,p_iptb02.descrip_esp,p_iptb02.descrip_ing,p_iptb02.unidad_med,
|
|
p_iptb02.bodega,p_iptb02.control_existencia,p_iptb02.control_itbis,p_iptb02.dia_llegada,
|
|
p_iptb02.exist_max,p_iptb02.exist_min,p_iptb02.us_crea,p_iptb02.fech_crea,p_iptb02.foto_producto,
|
|
porc_desc,fecha_desc,p_iptb02.status_t,p_iptb21.nombre_cia,p_iptb06.cantidad_2,
|
|
p_iptb20.producto,despiece,descrip_tipo,descrip_grupo,
|
|
descrip_medida,p_iptb01.factor_conv,p_iptb01.factor_ad,porc_desc,
|
|
fecha_desc,desc_permitido,departamento,grupo1,
|
|
p_iptb02.num_emp,p_iptb02.us_mod,p_iptb02.fech_mod,p_iptb02.desglose,
|
|
p_iptb02.bookmatch,p_iptb02.tipo_material,p_iptb02.tipos,p_iptb02.imp_aduanal, p_iptb02.categoria, es_produccion, tipo_producto
|
|
|
|
{ DISPLAY BY NAME p_iptb02.cod_n,p_iptb02.cod_grupo,p_iptb02.cod_tipo,p_iptb02.cod_sec,
|
|
p_iptb02.descrip_esp
|
|
CALL pimagen.writeFile("tmpfile.jpg")
|
|
DISPLAY "tmpfile.jpg" TO foto_producto}
|
|
|
|
END FUNCTION
|
|
FUNCTION consigue_descripcion()
|
|
|
|
LET p_iptb02.descrip_esp=p_iptb20.producto CLIPPED," ",
|
|
descrip_grupo CLIPPED," ",
|
|
descrip_tipo CLIPPED," ",
|
|
descrip_medida
|
|
RETURN p_iptb02.descrip_esp
|
|
END FUNCTION
|
|
|
|
FUNCTION tipoProducto()
|
|
|
|
DEFINE
|
|
ketiquetas SMALLINT,
|
|
detiquetas CHAR(30),
|
|
ctipoProducto ui.ComboBox
|
|
|
|
LET ctipoProducto = ui.combobox.forname("formonly.tipo_producto")
|
|
DECLARE btipoproductos CURSOR FOR
|
|
SELECT a.cod_tipoProducto, a.descrip_tipoProducto
|
|
FROM tipoProducto a
|
|
ORDER BY a.cod_tipoProducto
|
|
CALL ctipoProducto.clear()
|
|
|
|
FOREACH btipoproductos INTO ketiquetas, detiquetas
|
|
CALL ctipoProducto.additem(ketiquetas, detiquetas)
|
|
END FOREACH
|
|
|
|
LET tipo_Producto = 1
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION grupo_producto()
|
|
|
|
DEFINE
|
|
kgrupo SMALLINT,
|
|
dgrupo CHAR(30),
|
|
cgrupo ui.ComboBox
|
|
|
|
LET cgrupo = ui.combobox.forname("formonly.grupo1")
|
|
DECLARE bgrupos CURSOR FOR
|
|
SELECT a.cod_grupo, a.grupo_desc
|
|
FROM iptb00071 a
|
|
ORDER BY a.cod_grupo
|
|
CALL cgrupo.clear()
|
|
|
|
FOREACH btipoproductos INTO kgrupo, dgrupo
|
|
CALL cgrupo.additem(kgrupo, dgrupo)
|
|
END FOREACH
|
|
|
|
END FUNCTION |