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
+579
View File
@@ -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