Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
DEFINE arr_bultos DYNAMIC ARRAY OF RECORD
id,num_oc,num_oc_externa INT,
titulo_bulto STRING,
fecha VARCHAR(10),
seleccionar VARCHAR(1)
END RECORD,
gpnum_oc,gpnum_externa,pbulto_id INT,
pcliente,pdireccion STRING
FUNCTION empacar(arr_empaque,encabezadoe,pnum_oc,pnum_externa,cliente,direccion)
DEFINE arr_empaque DYNAMIC ARRAY OF RECORD
producto, unidad STRING,
cantidad,cantidad_orden FLOAT,
pcodn,pcodgrupo,pcodtipo,pcodsec INT
END RECORD,
encabezadoe,titulo_empaque,cliente,direccion STRING,
idx,pcodid,pnum_oc,pnum_externa INT
CALL revisa_bultos()
OPEN WINDOW w3 WITH FORM "prfmmt021b"
DIALOG ATTRIBUTE(UNBUFFERED)
INPUT BY NAME titulo_empaque
BEFORE INPUT
LET gpnum_oc = pnum_oc
LET gpnum_externa = pnum_externa
SELECT a.titulo_bulto INTO titulo_empaque
from iptb00054 a WHERE a.bulto_id = pbulto_id
IF titulo_empaque IS NULL THEN
LET titulo_empaque = "BULTO ORD.",pnum_externa USING "&&&&&&&&"
END IF
LET pcliente = cliente
LET pdireccion = direccion
DISPLAY BY NAME encabezadoe,titulo_empaque
AFTER INPUT
IF titulo_empaque IS NULL THEN
NEXT FIELD titulo_empaque
END IF
END INPUT
INPUT ARRAY arr_empaque FROM sempaque.*
ON ACTION salvar ATTRIBUTE(TEXT="Guardar",IMAGE="save")
SELECT a.bulto_id INTO pbulto_id FROM iptb00055 a
IF pbulto_id IS NULL THEN
LET pbulto_id = 0
INSERT INTO iptb00055 (pbulto_id,us_crea,fech_crea) VALUES (0,SUSER_SNAME(),GETDADTE())
END IF
LET pbulto_id = pbulto_id + 1
BEGIN WORK
UPDATE iptb00054 SET bulto_id = pbulto_id,us_crea = SUSER_SNAME(),fech_crea = GETDATE()
#INFORMACION BULTO GENERAL
INSERT INTO iptb00054 (bulto_id,num_oc,num_oc_externa,cliente,direccion,estado,us_crea,fech_crea,fecha,
titulo_bulto)
VALUES (pbulto_id,gpnum_oc,gpnum_externa,pcliente,pdireccion,'EN PROCESO',SUSER_SNAME(),GETDATE(),GETDATE(),
titulo_empaque)
FOR idx = 1 TO arr_empaque.getLength()
IF arr_empaque[idx].cantidad IS NOT NULL THEN
SELECT a.codid INTO pcodid FROM iptb00002 a WHERE a.cod_n = arr_empaque[idx].pcodn AND
a.cod_grupo = arr_empaque[idx].pcodgrupo AND
a.cod_tipo = arr_empaque[idx].pcodtipo AND
a.cod_sec = arr_empaque[idx].pcodsec
INSERT INTO iptb00053 (codid,cod_n,cod_grupo,cod_tipo,cod_sec,descripcion,cantidad,
cantidad_orden,us_crea,fech_crea,num_oc,num_oc_externa,bulto_id)
VALUES (pcodid,arr_empaque[idx].pcodn,arr_empaque[idx].pcodgrupo,arr_empaque[idx].pcodtipo,
arr_empaque[idx].pcodsec,arr_empaque[idx].producto,arr_empaque[idx].cantidad,
arr_empaque[idx].cantidad_orden,SUSER_SNAME(),GETDATE(),
gpnum_oc,gpnum_externa,pbulto_id)
END IF
END FOR
COMMIT WORK
CALL msg(1)
EXIT DIALOG
END INPUT
ON ACTION CANCEL
EXIT DIALOG
END DIALOG
CLOSE WINDOW w3
END FUNCTION
FUNCTION revisa_bultos()
DEFINE i,cuenta INT,
opcion STRING
SELECT COUNT(*) INTO cuenta FROM iptb00054 WHERE num_oc = gpnum_oc
IF cuenta > 0 THEN
DECLARE busca_bultos CURSOR FOR
SELECT a.bulto_id,a.num_oc,a.num_oc_externa,a.titulo_bulto,a.fecha,'N'
FROM iptb00054 a
WHERE a.num_oc = gpnum_oc
LET i = i + 1
FOREACH busca_bultos INTO arr_bultos[i].*
LET i = i+1
END FOREACH
OPEN WINDOW w5 WITH FORM "prfmmt021c"
INPUT ARRAY arr_bultos FROM sbultos.* ATTRIBUTE(WITHOUT DEFAULTS)
ON ACTION DELETE
LET opcion = fgl_winquestion("INFO","DESEA ELIMINAR ESTE BULTO? ","NO","YES|NO","QUESTION",0)
IF opcion = "YES" THEN
DELETE FROM iptb00054 WHERE bulto_id = arr_bultos[arr_curr()].id
DELETE FROM iptb00053 WHERE bulto_id = arr_bultos[arr_curr()].id
CALL arr_bultos.deleteElement(arr_curr())
END IF
AFTER INPUT
LET pbulto_id = arr_bultos[arr_curr()].id
EXIT INPUT
END INPUT
CLOSE WINDOW w5
END IF
END FUNCTION