Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,184 @@
|
||||
FUNCTION ccvisualiza_detalle_kit(pkit,pcantidad)
|
||||
DEFINE pkit INT,
|
||||
idx,pcantidad SMALLINT
|
||||
|
||||
DEFINE arr_kit1 DYNAMIC ARRAY OF RECORD
|
||||
area SMALLINT,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descripcion VARCHAR(100),
|
||||
cantidad DEC(12,5),
|
||||
precio DEC(12,2),
|
||||
porc_desc DEC(12,2),
|
||||
valor DEC(12,2)
|
||||
END RECORD,
|
||||
arr_kit_p DYNAMIC ARRAY OF RECORD
|
||||
area SMALLINT,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descripcion VARCHAR(100),
|
||||
cantidad DEC(12,5),
|
||||
precio DEC(12,2),
|
||||
porc_desc DEC(12,2)
|
||||
|
||||
END RECORD,
|
||||
pfactor DEC(12,5)
|
||||
|
||||
OPEN WINDOW w1 WITH FORM "visualiza_detalle_kit"
|
||||
|
||||
DECLARE busca_kit CURSOR FOR
|
||||
SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,a.cantidad,a.porc_desc,a.precio
|
||||
FROM vetb0031 a,iptb00002 b
|
||||
WHERE a.id_kit = pkit AND
|
||||
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec
|
||||
LET idx = 1
|
||||
FOREACH busca_kit INTO arr_kit1[idx].*
|
||||
SELECT a.factor_conv INTO pfactor FROM iptb00001 a WHERE
|
||||
a.cod_n = arr_kit1[idx].cod_n AND
|
||||
a.cod_grupo = arr_kit1[idx].cod_grupo AND
|
||||
a.cod_tipo = arr_kit1[idx].cod_tipo AND
|
||||
a.cod_sec = arr_kit1[idx].cod_sec
|
||||
IF pfactor IS NULL THEN
|
||||
LET pfactor = 1
|
||||
END IF
|
||||
LET arr_kit_p[idx].area =arr_kit1[idx].area
|
||||
LET arr_kit_p[idx].cod_n =arr_kit1[idx].cod_n
|
||||
LET arr_kit_p[idx].cod_grupo =arr_kit1[idx].cod_grupo
|
||||
LET arr_kit_p[idx].cod_tipo =arr_kit1[idx].cod_tipo
|
||||
LET arr_kit_p[idx].cod_sec =arr_kit1[idx].cod_sec
|
||||
LET arr_kit_p[idx].cantidad =arr_kit1[idx].cantidad *pfactor
|
||||
LET arr_kit_p[idx].precio =arr_kit1[idx].precio
|
||||
LET arr_kit_p[idx].porc_desc = arr_kit1[idx].porc_desc
|
||||
|
||||
LET arr_kit1[idx].valor = (arr_kit1[idx].cantidad*arr_kit1[idx].precio)
|
||||
# - ((arr_kit1[idx].cantidad*arr_kit1[idx].precio) * (arr_kit1[idx].porc_desc/100))
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
DISPLAY ARRAY arr_kit1 TO record1.*
|
||||
CLOSE WINDOW w1
|
||||
RETURN arr_kit_p
|
||||
END FUNCTION
|
||||
FUNCTION duplica_kit(xkit)
|
||||
DEFINE kid,xkit INT,
|
||||
inserta STRING
|
||||
|
||||
SELECT MAX(a.id_kit) INTO kid FROM vetb00029 a
|
||||
IF kid IS NULL THEN
|
||||
LET kid = 0
|
||||
END IF
|
||||
LET kid = kid + 1
|
||||
LET inserta =
|
||||
"INSERT INTO vetb00029 (cod_n,cod_grupo,cod_tipo,cod_sec,id_kit,descripcion,disponible,valor_total,us_crea,fech_crea) ",
|
||||
"SELECT cod_n,cod_grupo,cod_tipo,cod_sec,'",kid,"',descripcion,disponible,valor_total,us_crea,fech_crea ",
|
||||
" FROM vetb00029 ",
|
||||
" WHERE id_kit =?"
|
||||
|
||||
PREPARE inscomando FROM inserta
|
||||
EXECUTE inscomando USING xkit
|
||||
|
||||
LET inserta =
|
||||
"INSERT INTO vetb00030 (cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,precio,porc_Desc,id_kit) ",
|
||||
"SELECT cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,precio,porc_desc,'",kid,"'",
|
||||
" FROM vetb00030 ",
|
||||
" WHERE id_kit =?"
|
||||
|
||||
PREPARE inscomando1 FROM inserta
|
||||
EXECUTE inscomando1 USING xkit
|
||||
RETURN kid
|
||||
END FUNCTION
|
||||
FUNCTION modifica_detalle_kit(pkit,pcotizacion)
|
||||
DEFINE pkit,pcotizacion INT,
|
||||
idx SMALLINT
|
||||
|
||||
DEFINE arr_kit1 DYNAMIC ARRAY OF RECORD
|
||||
area SMALLINT,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descripcion VARCHAR(100),
|
||||
cantidad DEC(12,5),
|
||||
precio DEC(12,2),
|
||||
porc_desc DEC(12,2),
|
||||
valor DEC(12,2)
|
||||
END RECORD,
|
||||
total_neto,total_bruto,total_desc DEC(12,2)
|
||||
|
||||
OPEN WINDOW w1 WITH FORM "modifica_detalle_kit"
|
||||
|
||||
DECLARE busca_kit_cotizado CURSOR FOR
|
||||
SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,b.descrip_esp,a.cantidad,a.precio,a.porc_desc
|
||||
FROM vetb00031 a,iptb00002 b
|
||||
WHERE a.id_kit = pkit AND
|
||||
a.cotizacion_no = pcotizacion AND
|
||||
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND
|
||||
a.cod_sec = b.cod_sec
|
||||
LET idx = 1
|
||||
LET total_bruto = 0
|
||||
LET total_neto = 0
|
||||
LET total_desc = 0
|
||||
FOREACH busca_kit_cotizado INTO arr_kit1[idx].*
|
||||
let total_bruto = (arr_kit1[idx].cantidad* arr_kit1[idx].precio) + total_bruto
|
||||
LET total_desc = ((arr_kit1[idx].cantidad* arr_kit1[idx].precio) * (arr_kit1[idx].porc_desc/100) ) + total_desc
|
||||
|
||||
LET arr_kit1[idx].valor = (arr_kit1[idx].cantidad *arr_kit1[idx].precio)
|
||||
- ((arr_kit1[idx].cantidad*arr_kit1[idx].precio) * (arr_kit1[idx].porc_desc/100))
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
LET total_neto = total_bruto - total_Desc
|
||||
DISPLAY BY NAME total_bruto,total_desc,total_neto
|
||||
CALL set_count(idx-1)
|
||||
INPUT ARRAY arr_kit1 WITHOUT DEFAULTS FROM record1.*
|
||||
BEFORE INPUT
|
||||
NEXT FIELD precio
|
||||
AFTER ROW
|
||||
LET total_bruto = 0
|
||||
LET total_neto = 0
|
||||
LET total_desc = 0
|
||||
FOR idx = 1 TO arr_kit1.getLength()
|
||||
IF arr_kit1[idx].cod_n IS NOT NULL THEN
|
||||
let total_bruto = (arr_kit1[idx].cantidad* arr_kit1[idx].precio) + total_bruto
|
||||
LET total_desc = ((arr_kit1[idx].cantidad* arr_kit1[idx].precio) * (arr_kit1[idx].porc_desc/100) ) + total_desc
|
||||
|
||||
LET arr_kit1[idx].valor = (arr_kit1[idx].cantidad *arr_kit1[idx].precio)
|
||||
- ((arr_kit1[idx].cantidad*arr_kit1[idx].precio) * (arr_kit1[idx].porc_desc/100))
|
||||
|
||||
END IF
|
||||
END FOR
|
||||
LET total_neto = total_bruto - total_Desc
|
||||
DISPLAY BY NAME total_bruto,total_desc,total_neto
|
||||
|
||||
AFTER INPUT
|
||||
IF INT_FLAG THEN
|
||||
CALL fgl_winmessage("SALIR","OPERACION CANCELADA","INFO")
|
||||
EXIT INPUT
|
||||
END IF
|
||||
BEGIN WORK
|
||||
DELETE FROM vetb00031 WHERE cotizacion_no = pcotizacion AND id_kit = pkit
|
||||
|
||||
FOR idx = 1 TO arr_kit1.getLength()
|
||||
IF arr_kit1[idx].cod_n IS NOT NULL THEN
|
||||
INSERT INTO vetb00031 (cotizacion_no,id_kit,area,cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,precio,porc_desc)
|
||||
VALUES (pcotizacion,pkit,arr_kit1[idx].area,arr_kit1[idx].cod_n,arr_kit1[idx].cod_grupo,arr_kit1[idx].cod_tipo,arr_kit1[idx].cod_sec,
|
||||
arr_kit1[idx].cantidad,arr_kit1[idx].precio,arr_kit1[idx].porc_desc)
|
||||
IF STATUS < 0 THEN
|
||||
ROLLBACK WORK
|
||||
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL TRATAR DE MODIFICAR LOS COMPONENTES DEL KIT","INFO")
|
||||
EXIT FOR
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
COMMIT WORK
|
||||
CALL fgl_winmessage("ACTUALIZAR","ACTUALIZACION EXITOSA","INFO")
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
LET INT_FLAG = FALSE
|
||||
|
||||
CLOSE WINDOW w1
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user