Files
MBS/PROYECTOS/ipdir/insertaubicacion.4gl
T

213 lines
5.6 KiB
Plaintext

FUNCTION insertaubicaciones(movi10,pnumdoc,pcodmov,xfecha,xdetalle,xestado,pcodmovt,pcontrol_ubicacion_t,xbodega)
DEFINE movi10 DYNAMIC ARRAY OF RECORD
cod_n,cod_Grupo,cod_tipo,cod_sec INT,
descripcion,observacion STRING,
book varchar(50)
,tipos varchar(50)
,lado_1 decimal(12,5)
,lado_2 decimal(12,5)
,lado_3 decimal(12,5)
,id_bodega, id_seccion1 INT
,d_seccion1 VARCHAR(50)
,id_tramo1 INT
,d_tramo1 VARCHAR(50),
id_producto VARCHAR(25),
tipo_material VARCHAR(30),
cantidad1,cantidad2,factor_conv DECIMAL(12,5),
cod_mov INT,
de_seccion,de_tramo int
END RECORD,
i,pnumdoc,pcodmov,pcodmovt,xbodega,xnumDoc_t INT,
xfecha DATE,
xestado VARCHAR(1),
pcontrol_ubicacion_t VARCHAR(2),
xdetalle VARCHAR(100)
IF pcodmovt IS NOT NULL THEN
SELECT a.num_doc INTO xnumDoc_t FROM iptb00007 a WHERE a.bodega = xbodega AND a.cod_mov = pcodmovt
IF STATUS = NOTFOUND THEN
INSERT INTO iptb00007(num_doc,cod_mov,bodega,us_crea,fech_crea)
VALUES (1,pcodmovt,xbodega,suser_sname(),getdate())
LET xnumDoc_t = 1
ELSE
LET xnumDoc_t = xnumDoc_t +1
END IF
END IF
FOR i = 1 TO movi10.getLength()
IF movi10[i].cantidad2 !=0 THEN
IF xestado = '2' THEN
LET movi10[i].cantidad2= movi10[i].cantidad2 * -1
LET movi10[i].cantidad1= movi10[i].cantidad1 * -1
END IF
IF pcontrol_ubicacion_t = 'SI' THEN
INSERT INTO iptb00050
(cod_n
,cod_grupo
,cod_tipo
,cod_sec
,descripcion
,observacion
,book
,tipos
,lado_1
,lado_2
,lado_3
,cantidad
,cantidad2
,us_crea
,fech_crea
,id_producto
,tipo_material
,bodega
,cod_seccion
,cod_tramo
,num_doc
,cod_mov
,fecha
)
VALUES
(movi10[i].cod_n
,movi10[i].cod_grupo
,movi10[i].cod_tipo
,movi10[i].cod_sec
,movi10[i].descripcion
,xdetalle
,movi10[i].book
,movi10[i].tipos
,movi10[i].lado_1
,movi10[i].lado_2
,movi10[i].lado_3
,movi10[i].cantidad1
,movi10[i].cantidad2
,SUSER_SNAME()
,GETDATE()
,movi10[i].id_producto
,movi10[i].tipo_material
,movi10[i].id_bodega
,movi10[i].de_seccion
,movi10[i].de_tramo
,pnumdoc
,pcodmov
,xfecha
)
IF movi10[i].cantidad2 <0 THEN
LET movi10[i].cantidad2= movi10[i].cantidad2 * -1
LET movi10[i].cantidad1= movi10[i].cantidad1 * -1
END IF
INSERT INTO iptb00050
(cod_n
,cod_grupo
,cod_tipo
,cod_sec
,descripcion
,observacion
,book
,tipos
,lado_1
,lado_2
,lado_3
,cantidad
,cantidad2
,us_crea
,fech_crea
,id_producto
,tipo_material
,bodega
,cod_seccion
,cod_tramo
,num_doc
,cod_mov
,fecha
)
VALUES
(movi10[i].cod_n
,movi10[i].cod_grupo
,movi10[i].cod_tipo
,movi10[i].cod_sec
,movi10[i].descripcion
,xdetalle
,movi10[i].book
,movi10[i].tipos
,movi10[i].lado_1
,movi10[i].lado_2
,movi10[i].lado_3
,movi10[i].cantidad1
,movi10[i].cantidad2
,SUSER_SNAME()
,GETDATE()
,movi10[i].id_producto
,movi10[i].tipo_material
,movi10[i].id_bodega
,movi10[i].id_seccion1
,movi10[i].id_tramo1
,xnumDoc_t
,pcodmovt
,xfecha
)
ELSE
INSERT INTO iptb00050
(cod_n
,cod_grupo
,cod_tipo
,cod_sec
,descripcion
,observacion
,book
,tipos
,lado_1
,lado_2
,lado_3
,cantidad
,cantidad2
,us_crea
,fech_crea
,id_producto
,tipo_material
,bodega
,cod_seccion
,cod_tramo
,num_doc
,cod_mov
,fecha
)
VALUES
(movi10[i].cod_n
,movi10[i].cod_grupo
,movi10[i].cod_tipo
,movi10[i].cod_sec
,movi10[i].descripcion
,xdetalle
,movi10[i].book
,movi10[i].tipos
,movi10[i].lado_1
,movi10[i].lado_2
,movi10[i].lado_3
,movi10[i].cantidad1
,movi10[i].cantidad2
,SUSER_SNAME()
,GETDATE()
,movi10[i].id_producto
,movi10[i].tipo_material
,movi10[i].id_bodega
,movi10[i].id_seccion1
,movi10[i].id_tramo1
,pnumdoc
,pcodmov
,xfecha
)
END IF
END IF
END FOR
DELETE FROM tmpubicacion WHERE us_crea = suser_sname()
DELETE FROM tmpubicacionTramos WHERE us_crea = suser_sname()
RETURN true
END FUNCTION