579 lines
22 KiB
Plaintext
579 lines
22 KiB
Plaintext
{
|
|
========================================================================
|
|
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 |