Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,579 @@
|
||||
{
|
||||
========================================================================
|
||||
PROGRAMA : ccprmt011
|
||||
OBJETIVO : CONTROL DE ORDENES ECOMMERCE
|
||||
========================================================================
|
||||
}
|
||||
|
||||
GLOBALS "ccprgb000.4gl"
|
||||
|
||||
DEFINE arr_autoriza_t DYNAMIC ARRAY OF RECORD
|
||||
inserta CHAR(2),
|
||||
estado CHAR(20),
|
||||
estado_despacho CHAR(20),
|
||||
vendedor CHAR(60),
|
||||
num_req INT,
|
||||
fecha DATE,
|
||||
cotizacion_no INT,
|
||||
num_oc INT,
|
||||
tipo_venta CHAR(60),
|
||||
cliente CHAR(60),
|
||||
valor_cotizacion DEC(12,2),
|
||||
valor_autorizar DEC(12,2),
|
||||
sec_vend SMALLINT,
|
||||
tipo_cliente INT,
|
||||
sec_cliente INT,
|
||||
num_emp_inst INT,
|
||||
nombre_supervisor VARCHAR(80),
|
||||
balance DEC(12,2),
|
||||
balance_restante DEC(12,2)
|
||||
|
||||
END RECORD
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(4) RETURNING impresor
|
||||
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
|
||||
|
||||
CALL ccprmt010()
|
||||
END MAIN
|
||||
FUNCTION ccprmt010()
|
||||
DEFINE
|
||||
actualice BOOLEAN,
|
||||
registros INT
|
||||
|
||||
OPTIONS INPUT WRAP
|
||||
OPEN WINDOW w1 AT 5,5 WITH FORM "ccfmmt010"
|
||||
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
|
||||
|
||||
CONSTRUCT BY NAME criterio ON a.estado,c.num_oc,c.cotizacion_no,x.cerrada,
|
||||
a.estado_despacho
|
||||
BEFORE CONSTRUCT
|
||||
CLEAR FORM
|
||||
END CONSTRUCT
|
||||
|
||||
ON ACTION procesar
|
||||
|
||||
LET selec =
|
||||
" SELECT DISTINCT '1',a.estado,a.estado_despacho,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp , ",
|
||||
" a.num_req,CONVERT(CHAR(10),a.fecha_autorizacion,103),c.cotizacion_no,c.num_oc,g.descripcion as tipo_venta, ",
|
||||
" CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ",
|
||||
" AS cliente,d.total_neto as valor_cotizacion, ",
|
||||
" SUM(c.valor),d.sec_vend,e.tipo_cliente,e.sec_cliente ",
|
||||
" FROM cctb00025 a,adtb00003 b,cctb00026 c,vetb00050 d,vetb00004 e,vetb00061 g,vetb00060 h, ",
|
||||
" prtb00012 x ",
|
||||
"WHERE ",
|
||||
# " a.sec_vend = d.sec_vend and ",
|
||||
" a.sec_vend = b.num_emp and ",
|
||||
" a.num_req = c.num_req and ",
|
||||
" c.cotizacion_no = d.cotizacion_no AND ",
|
||||
" d.tipo_cliente = e.tipo_cliente AND ",
|
||||
" d.sec_cliente = e.sec_cliente AND ",
|
||||
" d.tipo_cliente = h.tipo_cliente AND ",
|
||||
" c.num_oc = x.num_oc AND ",
|
||||
" h.ventas = g.ventas and ",criterio CLIPPED,
|
||||
" and a.status_t is null and x.status_t is null ",
|
||||
" AND a.estado = 'AUTORIZADA' AND a.estado_despacho <> 'DESPACHADA' ",
|
||||
" GROUP BY a.estado,RTRIM(CAST(d.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp, ",
|
||||
" a.num_req,c.cotizacion_no,g.descripcion, ",
|
||||
" CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ",
|
||||
" ,d.total_neto,a.fecha_autorizacion,a.sec_vend,c.num_oc, ",
|
||||
" a.fecha_transporte,a.estado_despacho,",
|
||||
" c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente,b.nom1_emp,b.apell1_emp, ",
|
||||
" d.sec_vend,e.tipo_cliente,e.sec_cliente ",
|
||||
" ORDER BY a.estado DESC,CONVERT(CHAR(10),a.fecha_autorizacion,103) DESC"
|
||||
|
||||
DISPLAY "BUSCANDO INORMACION" TO proceso
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca_requisi CURSOR FOR comando
|
||||
LET idx = 1
|
||||
FOREACH busca_requisi INTO arr_autoriza_t[idx].*
|
||||
SELECT a.nom1_emp||a.apell1_emp INTO arr_autoriza_t[idx].nombre_supervisor
|
||||
FROM adtb00003 a WHERE a.num_emp = arr_autoriza_t[idx].num_emp_inst
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
IF idx = 1 THEN
|
||||
CLEAR FORM
|
||||
CALL fgl_winmessage("ERROR","NO EXISTEN REQUISICIONES CON ESA CONDICION ","STOP")
|
||||
CONTINUE DIALOG
|
||||
END IF
|
||||
|
||||
DISPLAY idx-1 TO registros
|
||||
|
||||
CALL SET_COUNT(idx-1)
|
||||
DISPLAY " " TO proceso
|
||||
|
||||
INPUT ARRAY arr_autoriza_T WITHOUT DEFAULTS FROM s_autoriza.*
|
||||
BEFORE INPUT
|
||||
|
||||
|
||||
#CALL DIALOG.setactionactive("accept",FALSE)
|
||||
CALL DIALOG.setactionactive("insert",FALSE)
|
||||
CALL DIALOG.setactionactive("append",FALSE)
|
||||
CALL DIALOG.setactionactive("delete",FALSE)
|
||||
ON IDLE 60
|
||||
DISPLAY " " TO proceso
|
||||
|
||||
CALL refrescar()
|
||||
ON ACTION imprimir
|
||||
LET curr=arr_curr()
|
||||
IF arr_autoriza_t[curr].num_req IS NOT NULL THEN
|
||||
CALL imprime_req(arr_autoriza_t[curr].num_req)
|
||||
ELSE
|
||||
CALL fgl_winmessage("INFO","DEBES DE COLOCAR EL CURSOR EN LA FILA DONDE EXISTA UN DOCUMENTO","INFO")
|
||||
END IF
|
||||
ON ACTION buscaMaterial
|
||||
LET curr = arr_curr()
|
||||
CALL fbuscaMaterial(arr_autoriza_t[curr].num_req,arr_autoriza_t[curr].num_oc)
|
||||
ON ACTION buscamensaje
|
||||
LET curr = arr_curr()
|
||||
CALL entramensaje(arr_autoriza_t[curr].num_req,arr_autoriza_t[curr].cotizacion_no,"V",usuarios)
|
||||
|
||||
AFTER INPUT
|
||||
#WHENEVER ERROR CONTINUE
|
||||
|
||||
IF int_flag THEN
|
||||
CALL fgl_winmessage("WARNING","OPERACION CANCELADA","STOP")
|
||||
CALL arr_autoriza.clear()
|
||||
CLEAR FORM
|
||||
LET int_flag = FALSE
|
||||
EXIT INPUT
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
ON ACTION limpiar
|
||||
|
||||
CALL arr_autoriza.clear()
|
||||
CLEAR FORM
|
||||
|
||||
ON ACTION cancel
|
||||
EXIT PROGRAM
|
||||
|
||||
END DIALOG
|
||||
CLOSE WINDOW w1
|
||||
END FUNCTION
|
||||
FUNCTION fbuscaMaterial(xreq,xnumoc)
|
||||
DEFINE arr_material DYNAMIC ARRAY OF RECORD
|
||||
fecha_compromiso CHAR(10),
|
||||
fecha_transporte DATE,
|
||||
fecha_llegada DATE,
|
||||
material CHAR(50),
|
||||
cantidad DEC(12,4),
|
||||
pendiente DEC(12,4),
|
||||
pendiente_ord DEC(12,4),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
num_oc INT
|
||||
END RECORD,
|
||||
xreq,xnumoc INT,
|
||||
cantidad_req,cantidad_desp,cantidad_ord,cantidad_desp1 DEC(12,4)
|
||||
|
||||
OPEN WINDOW w2 AT 5,5 WITH FORM "ccfmmt014"
|
||||
|
||||
|
||||
LET selec =
|
||||
"SELECT CONVERT(CHAR(10),c.fecha_compromiso,103),CONVERT(CHAR(10),a.fecha_transporte,103),CONVERT(CHAR(10),a.fecha_llegada,103),",
|
||||
"CAST(a.cod_n AS CHAR(2))||'-'||CAST(a.cod_grupo AS CHAR(4))||'-'|| ",
|
||||
"CAST(a.cod_tipo AS CHAR(4))||'-'||CAST(a.cod_sec AS CHAR(4))||' '|| ",
|
||||
"RTRIM(b.descrip_esp)||' '||b.unidad_med,a.cantidad,'0', '0',",
|
||||
" b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_Sec,a.num_oc ",
|
||||
"FROM cctb00026 a,iptb00002 b,prtb00013 c ",
|
||||
"WHERE a.num_req = '", xreq,"' AND ",
|
||||
" a.num_oc = c.num_oc AND ",
|
||||
" a.cod_n = c.cod_n AND ",
|
||||
" a.cod_Grupo = c.cod_grupo AND ",
|
||||
" a.cod_tipo = c.cod_tipo AND ",
|
||||
" a.cod_Sec = c.cod_sec 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 "
|
||||
|
||||
PREPARE comando10 FROM selec
|
||||
DECLARE buscaM CURSOR FOR comando10
|
||||
|
||||
LET idx = 1
|
||||
FOREACH buscam INTO arr_material[idx].*
|
||||
LET cantidad_req = 0
|
||||
SELECT SUM(a.cantidad) INTO cantidad_req FROM cctb00026 a
|
||||
WHERE a.cod_n = arr_material[idx].cod_n AND
|
||||
a.cod_grupo = arr_material[idx].cod_grupo AND
|
||||
a.cod_tipo = arr_material[idx].cod_tipo AND
|
||||
a.cod_sec = arr_material[idx].cod_sec AND
|
||||
a.num_req = xreq AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF cantidad_req IS NULL THEN
|
||||
LET cantidad_req = 0
|
||||
END IF
|
||||
|
||||
LET cantidad_Desp=0
|
||||
SELECT SUM(a.cantidad_2) INTO cantidad_desp
|
||||
FROM iptb00006 a
|
||||
WHERE a.cod_n = arr_material[idx].cod_n AND
|
||||
a.cod_grupo = arr_material[idx].cod_grupo AND
|
||||
a.cod_tipo = arr_material[idx].cod_tipo AND
|
||||
a.cod_sec = arr_material[idx].cod_sec AND
|
||||
a.conduce_no = arr_material[idx].num_oc AND
|
||||
a.num_req = xreq AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF cantidad_Desp IS NULL THEN
|
||||
LET cantidad_desp = 0
|
||||
END IF
|
||||
|
||||
LET cantidad_ord = 0
|
||||
SELECT SUM(a.cantidad) INTO cantidad_ord FROM prtb00013 a
|
||||
WHERE a.cod_n = arr_material[idx].cod_n AND
|
||||
a.cod_grupo = arr_material[idx].cod_grupo AND
|
||||
a.cod_tipo = arr_material[idx].cod_tipo AND
|
||||
a.cod_sec = arr_material[idx].cod_sec AND
|
||||
a.num_oc =xnumoc AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF cantidad_ord IS NULL THEN
|
||||
LET cantidad_ord = 0
|
||||
END IF
|
||||
|
||||
LET cantidad_desp1 = 0
|
||||
SELECT SUM(a.cantidad_2) INTO cantidad_desp1 FROM iptb00006 a
|
||||
WHERE a.cod_n = arr_material[idx].cod_n AND
|
||||
a.cod_grupo = arr_material[idx].cod_grupo AND
|
||||
a.cod_tipo = arr_material[idx].cod_tipo AND
|
||||
a.cod_sec = arr_material[idx].cod_sec AND
|
||||
a.num_oc =xnumoc AND
|
||||
a.cod_mov IN (30,31,55,56,12,13) AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF cantidad_desp1 IS NULL THEN
|
||||
LET cantidad_desp1 = 0
|
||||
END IF
|
||||
LET arr_material[idx].pendiente_ord = cantidad_ord - cantidad_desp1
|
||||
LET arr_material[idx].pendiente= cantidad_req - cantidad_desp
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
CALL set_count(idx-1)
|
||||
INPUT ARRAY arr_material FROM s_transporte.* ATTRIBUTE(WITHOUT DEFAULTS)
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
CALL msg(2)
|
||||
EXIT INPUT
|
||||
END IF
|
||||
LET curr = arr_curr()
|
||||
IF arr_material[curr].fecha_transporte > arr_material[curr].fecha_llegada THEN
|
||||
CALL fgl_Winmessage("ERROR","FECHA TRANSPORTE NO PUEDE SER MAYOR FECHA LLEGADA","STOP")
|
||||
NEXT FIELD fecha_transporte
|
||||
END IF
|
||||
BEGIN WORK
|
||||
FOR idx = 1 TO arr_count()
|
||||
IF arr_material[idx].fecha_llegada IS NOT NULL THEN
|
||||
UPDATE cctb00026 set fecha_llegada = arr_material[idx].fecha_llegada,
|
||||
fecha_transporte = arr_material[idx].fecha_transporte,
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE num_req = xreq AND
|
||||
cod_n = arr_material[idx].cod_n and
|
||||
cod_grupo = arr_material[idx].cod_grupo and
|
||||
cod_tipo = arr_material[idx].cod_tipo and
|
||||
cod_Sec = arr_material[idx].cod_sec
|
||||
|
||||
IF STATUS < 0 THEN
|
||||
ROLLBACK WORK
|
||||
LET chmensaje = SQLERRMESSAGE CLIPPED,"NO ES POSIBLE GUARDAR LA TRANSACCION"
|
||||
CALL fgl_winmessage("ERROR",chmensaje,"STOP")
|
||||
|
||||
CONTINUE INPUT
|
||||
ELSE
|
||||
COMMIT WORK
|
||||
CALL msg(1)
|
||||
|
||||
END IF
|
||||
END IF
|
||||
END FOR
|
||||
END INPUT
|
||||
IF Int_flag THEN
|
||||
LET Int_flag = FALSE
|
||||
END IF
|
||||
CLOSE WINDOW w2
|
||||
END FUNCTION
|
||||
FUNCTION imprime_req(xnumreq)
|
||||
DEFINE xnumreq INT,
|
||||
|
||||
handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING, -- output format option
|
||||
preview INTEGER -- TRUE/FALSE, to set preview option
|
||||
|
||||
DEFINE mrequisicion RECORD
|
||||
numreq INT,
|
||||
numoc INT,
|
||||
nombre VARCHAR(80),
|
||||
vendedor VARCHAR(80),
|
||||
fecha VARCHAR(10),
|
||||
estatus_req VARCHAR(50),
|
||||
direccion VARCHAR(100),
|
||||
telefono_r VARCHAR(20),
|
||||
telefono_o VARCHAR(20),
|
||||
celular VARCHAR(20),
|
||||
celular1 VARCHAR(20),
|
||||
contacto VARCHAR(60),
|
||||
usuario_autoriza VARCHAR(50),
|
||||
fecha_autorizacion CHAR(16),
|
||||
estado_despacho VARCHAR(50),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descripcion VARCHAR(80),
|
||||
cantidad DEC(12,4),
|
||||
codn SMALLINT,
|
||||
codgrupo SMALLINT,
|
||||
codtipo SMALLINT,
|
||||
codsec SMALLINT,
|
||||
descripcion1 VARCHAR(60),
|
||||
kit INT,
|
||||
observacion VARCHAR(180),
|
||||
cantidad_1 FLOAT,
|
||||
cantidad_despachada_req DEC(12,4),
|
||||
cantidad_despachada_ord DEC(12,4),
|
||||
cantidad_pendiente_ord DEC(12,4),
|
||||
cantidad_pendiente_req DEC(12,4),
|
||||
cantidad_ord DEC(12,4),
|
||||
codigo CHAR(30)
|
||||
END RECORD
|
||||
|
||||
DECLARE busca_req CURSOR FOR
|
||||
SELECT b.num_req,c.num_oc, CAST (a.tipo_cliente AS varchar(2))+'-'+CAST(a.sec_cliente AS varchar(6))+' '+ISNULL(a.nombre,' ') AS cliente,
|
||||
CAST(e.num_emp AS varchar(5))+' '+ISNULL(RTRIM(e.nom1_emp),' ')+' '+ISNULL(e.apell1_emp,' ') AS vendedor,
|
||||
CONVERT(CHAR(10),b.fecha,103) AS fecha,b.estado,
|
||||
RTRIM(d.direccion_proyecto)+ '-'+ISNULL(x2.mensaje,' ') AS direccion,d.telefono_r,d.telefono_o,d.celular,
|
||||
d.celular1,d.contacto,
|
||||
(SELECT isnull(adtb00003.nom1_emp,' ')+' '+isnull(adtb00003.apell1_Emp,' ') FROM adtb00003 WHERE adtb00003.num_emp = b.sec_vend_aprobado),
|
||||
CONVERT(CHAR(10),b.fecha_autorizacion,103),
|
||||
b.estado_despacho,
|
||||
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp,
|
||||
sum(c.cantidad),
|
||||
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,(SELECT k1.descrip_esp FROM iptb00002 k1
|
||||
WHERE k1.cod_n = c.cod_n AND k1.cod_grupo = c.cod_grupo AND k1.cod_tipo = c.cod_tipo AND
|
||||
k1.cod_sec = c.cod_sec),c.id_kit,x3.observacion,SUM(c.cantidad_1)
|
||||
FROM vetb00004 a,cctb00025 b LEFT OUTER JOIN cctb00029 x2 ON b.num_req = x2.num_req,
|
||||
cctb00026 c,
|
||||
vetb00050 d,adtb00003 e,iptb00002 f,prtb00014 x3
|
||||
WHERE a.tipo_cliente = d.tipo_cliente AND b.num_req = c.num_req AND
|
||||
a.sec_cliente = d.sec_cliente AND
|
||||
c.cotizacion_no = d.cotizacion_no AND
|
||||
c.cod_n = f.cod_n AND c.cod_grupo =f.cod_grupo AND c.cod_tipo=f.cod_tipo AND
|
||||
c.cod_sec = f.cod_Sec AND c.status_t IS NULL AND
|
||||
b.num_req = xnumreq AND d.sec_vend = e.num_emp AND
|
||||
c.num_oc = x3.num_oc
|
||||
GROUP BY b.num_req,a.tipo_cliente,a.sec_cliente,a.nombre, e.num_emp,e.nom1_emp,e.apell1_emp,c.num_oc,
|
||||
b.fecha,b.estado,
|
||||
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp,b.sec_vend_aprobado,
|
||||
b.fecha_autorizacion,b.estado_despacho,
|
||||
d.direccion_proyecto,x2.mensaje,
|
||||
d.telefono_r,d.telefono_o,d.celular,
|
||||
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,
|
||||
c.id_kit,x3.observacion,d.celular1,d.contacto
|
||||
ORDER BY b.num_req, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
|
||||
|
||||
LET r_output="SVG"
|
||||
LET r_filename = "ccprmt010.4rp"
|
||||
LET preview = 1
|
||||
|
||||
iF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
||||
CALL fgl_report_selectDevice(r_output) -- changing default
|
||||
CALL fgl_report_selectPreview(preview) -- changing default
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
|
||||
|
||||
START REPORT CCRP10 TO XML HANDLER HANDLER
|
||||
LET idx = 1
|
||||
FOREACH busca_req INTO mrequisicion.*
|
||||
LET mrequisicion.codigo =mrequisicion.kit USING "<<<<","/", mrequisicion.cod_n USING "&&&&","-",
|
||||
mrequisicion.cod_grupo USING "&&&&","-",
|
||||
mrequisicion.cod_tipo USING "&&&&","-",
|
||||
mrequisicion.cod_sec USING "&&&&&&"
|
||||
OUTPUT TO REPORT ccrp10(mrequisicion.*)
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
DISPLAY "idx ",idx
|
||||
FINISH REPORT ccrp10
|
||||
END IF
|
||||
END FUNCTION
|
||||
REPORT ccrp10(x)
|
||||
DEFINE X RECORD
|
||||
numreq INT,
|
||||
numoc INT,
|
||||
nombre VARCHAR(80),
|
||||
vendedor VARCHAR(80),
|
||||
fecha VARCHAR(10),
|
||||
estatus_req VARCHAR(50),
|
||||
direccion VARCHAR(100),
|
||||
telefono_r VARCHAR(20),
|
||||
telefono_o VARCHAR(20),
|
||||
celular VARCHAR(20),
|
||||
celular1 VARCHAR(20),
|
||||
contacto VARCHAR(60),
|
||||
usuario_autoriza VARCHAR(50),
|
||||
fecha_autorizacion CHAR(16),
|
||||
estado_despacho VARCHAR(50),
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
descripcion VARCHAR(80),
|
||||
cantidad DEC(12,4),
|
||||
codn SMALLINT,
|
||||
codgrupo SMALLINT,
|
||||
codtipo SMALLINT,
|
||||
codsec SMALLINT,
|
||||
descripcion1 VARCHAR(60),
|
||||
kit INT,
|
||||
observacion VARCHAR(180),
|
||||
cantidad_1 FLOAT,
|
||||
cantidad_despachada_req DEC(12,4),
|
||||
cantidad_despachada_ord DEC(12,4),
|
||||
cantidad_pendiente_ord DEC(12,4),
|
||||
cantidad_pendiente_req DEC(12,4),
|
||||
cantidad_ord DEC(12,4),
|
||||
codigo CHAR(30)
|
||||
END RECORD,
|
||||
fecha_imp CHAR(16),
|
||||
semaforo BOOLEAN,
|
||||
chkit CHAR(100),
|
||||
y RECORD
|
||||
etiqueta CHAR(30),
|
||||
cod_n,cod_grupo,cod_tipo,cod_sec INT,
|
||||
lado_1,lado_2,lado_3 FLOAT,
|
||||
cantidad_r,medida_r FLOAT
|
||||
END RECORD
|
||||
|
||||
ORDER BY x.numreq
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
|
||||
LET fecha_imp = TODAY USING "DD/MM/YYYY",":",TIME
|
||||
BEFORE GROUP OF x.numreq
|
||||
|
||||
PRINTX x.numreq,x.estado_despacho,x.estatus_req,x.fecha,x.fecha_autorizacion,p_companias.nombre,
|
||||
x.nombre,x.usuario_autoriza,x.vendedor,fecha_imp,x.numoc,X.direccion,X.telefono_r,x.telefono_o,
|
||||
x.celular,x.celular1,x.contacto, x.observacion
|
||||
|
||||
BEFORE GROUP OF x.codigo
|
||||
# BUSCA LAS CANTIDADES PENDIENTES
|
||||
LET x.cantidad_despachada_req=0
|
||||
SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_req
|
||||
FROM iptb00006 a
|
||||
WHERE a.num_req = x.numreq AND a.cod_n = x.cod_n AND
|
||||
a.cod_grupo = x.cod_grupo AND
|
||||
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND a.status_t IS NULL
|
||||
|
||||
LET x.cantidad_despachada_ord=0
|
||||
SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_ord
|
||||
FROM iptb00006 a
|
||||
WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND
|
||||
a.cod_grupo = x.cod_grupo AND a.cod_mov IN (30,31,55,56,12,13) AND
|
||||
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec
|
||||
AND a.status_t IS NULL
|
||||
|
||||
SELECT SUM(a.cantidad) INTO x.cantidad_ord
|
||||
FROM prtb00013 a
|
||||
WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND
|
||||
a.cod_grupo = x.cod_grupo AND
|
||||
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF x.cantidad_despachada_req IS NULL THEN
|
||||
LET x.cantidad_despachada_req = 0
|
||||
END IF
|
||||
|
||||
IF x.cantidad_despachada_ord IS NULL THEN
|
||||
LET x.cantidad_despachada_ord = 0
|
||||
END IF
|
||||
|
||||
|
||||
IF x.cantidad_ord IS NULL THEN
|
||||
LET x.cantidad_ord = 0
|
||||
END IF
|
||||
# DISPLAY "datos ",x.cantidad_ord,x.cantidad_despachada_ord,x.cantidad,
|
||||
# x.cantidad_despachada_req
|
||||
|
||||
LET x.cantidad_pendiente_ord=x.cantidad_ord+x.cantidad_despachada_ord
|
||||
|
||||
LET x.cantidad_pendiente_req=x.cantidad + x.cantidad_despachada_req
|
||||
{ #BUSCA DESPIECE
|
||||
DECLARE busca_desp CURSOR FOR
|
||||
SELECT b.descripcion,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.medida
|
||||
FROM vetb00026 b,cctb00027 a
|
||||
WHERE b.codid = a.etiqueta AND
|
||||
a.cod_n = x.cod_n AND
|
||||
a.cod_grupo = x.cod_grupo AND
|
||||
a.cod_tipo = x.cod_tipo AND
|
||||
a.cod_sec = x.cod_sec
|
||||
FOREACH busca_desp INTO y.*
|
||||
END FOREACH
|
||||
}
|
||||
PRINTX x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_Sec,x.descripcion,x.cantidad,
|
||||
x.cantidad_pendiente_req,x.cantidad_pendiente_ord
|
||||
ON EVERY ROW
|
||||
# IF x.codn IS NOT NULL THEN
|
||||
# LET semaforo = TRUE
|
||||
# LET chkit = x.codn USING "&&&&","-",x.codgrupo USING "&&&&","-",x.codtipo USING "&&&&","-",
|
||||
# x.codsec USING "&&&&"," ",x.descripcion1
|
||||
# ELSE
|
||||
LET semaforo = FALSE
|
||||
|
||||
# END IF
|
||||
|
||||
PRINTX y.etiqueta,y.lado_1,y.lado_2,y.lado_3,y.cantidad_r,y.medida_r,
|
||||
chkit,semaforo,x.cantidad_1,x.cantidad
|
||||
END REPORT
|
||||
FUNCTION refrescar()
|
||||
LET selec =
|
||||
" SELECT '1',a.estado,a.estado_despacho,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp , ",
|
||||
" a.num_req,CONVERT(CHAR(10),a.fecha_autorizacion,103),c.cotizacion_no,c.num_oc,g.descripcion as tipo_venta, ",
|
||||
" CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ",
|
||||
" AS cliente,d.total_neto as valor_cotizacion, ",
|
||||
" SUM(c.valor),a.sec_vend,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente ",
|
||||
" FROM cctb00025 a,adtb00003 b,cctb00026 c,vetb00050 d,vetb00004 e,vetb00061 g,vetb00060 h, ",
|
||||
" prtb00012 x ",
|
||||
"WHERE ",
|
||||
" a.sec_vend = d.sec_vend and ",
|
||||
" a.sec_vend = b.num_emp and ",
|
||||
" a.num_req = c.num_req and ",
|
||||
" c.cotizacion_no = d.cotizacion_no AND ",
|
||||
" d.tipo_cliente = e.tipo_cliente AND ",
|
||||
" d.sec_cliente = e.sec_cliente AND ",
|
||||
" d.tipo_cliente = h.tipo_cliente AND ",
|
||||
" c.num_oc = x.num_oc AND ",
|
||||
" h.ventas = g.ventas and ",criterio CLIPPED,
|
||||
" and a.status_t is null and x.status_t is null ",
|
||||
" AND a.estado = 'AUTORIZADA' AND a.estado_despacho <> 'DESPACHADA' ",
|
||||
" GROUP BY a.estado,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp, ",
|
||||
" a.num_req,c.cotizacion_no,g.descripcion, ",
|
||||
" CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ",
|
||||
" ,d.total_neto,a.fecha_autorizacion,a.sec_vend,c.num_oc, ",
|
||||
" a.fecha_transporte,a.estado_despacho, ",
|
||||
" c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente ",
|
||||
" ORDER BY a.estado DESC,CONVERT(CHAR(10),a.fecha_autorizacion,103) DESC"
|
||||
|
||||
DISPLAY "REFRESCANDO INFORMACION" TO proceso
|
||||
|
||||
PREPARE comando1 FROM selec
|
||||
DECLARE busca_requisi1 CURSOR FOR comando1
|
||||
LET idx = 1
|
||||
CALL arr_autoriza.clear()
|
||||
FOREACH busca_requisi1 INTO arr_autoriza_t[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user