1388 lines
60 KiB
Plaintext
1388 lines
60 KiB
Plaintext
{------------------------------------------------------------------
|
|
PROGRAMA : PRPRMT011
|
|
OBJETIVO : Matenimiento de Status de Orden de Produccion
|
|
PROGRAMADOR : Ing. Juan Soto
|
|
FECHA REALIZACION : Octubre, 2013
|
|
|
|
OBSERVACIONES : EL USUARIO QUIEN ADMINISTRA LAS INFORMACIONES DE
|
|
ESTA HERRAMIENTA DEBE TENER EN LA TABLA SEG0003
|
|
NOM_PUESTO = 'ADM PRODUCCION', LOS DEMAS USUARIOS
|
|
QUIENEN TIENEN PERMISOS PARA EJECUTARLO NO ACTUALIZAN
|
|
------------------------------------------------------------------}
|
|
GLOBALS "prprgb000.4gl"
|
|
DEFINE veces,vecesparcial SMALLINT,
|
|
arrparcial DYNAMIC ARRAY OF RECORD
|
|
fecha DATE,
|
|
cantidad DEC(12,4)
|
|
END RECORD,
|
|
puesto VARCHAR(50),
|
|
email,emailsubject,emailbody,procedimiento CHAR(200),
|
|
noencontre,resultado CHAR(2),
|
|
xarticulo STRING
|
|
DEFINE w ui.Window
|
|
DEFINE f ui.Form
|
|
DEFINE p_vetb50 RECORD LIKE vetb00050.*
|
|
DEFINE data_imp RECORD
|
|
cotizacion_no,tipo_cliente,sec_cliente INT,
|
|
fecha DATE,
|
|
sec_vend INT,
|
|
direccion_cliente,nombre,contacto,nombre_proyecto,direccion_proyecto,nombre_ciudad,
|
|
nombre_vend,nombre_cliente VARCHAR(100),
|
|
rnc VARCHAR(11),
|
|
telefono_o,telefono_r,celular,celular1 VARCHAR(25),
|
|
email VARCHAR(100),
|
|
orden,cond_pago INT,
|
|
soportes,instalador,plazo_entrega VARCHAR(100),
|
|
comentario VARCHAR(250),
|
|
sub_total,monto_desc,porc_itbis,neto,total_bruto,monto_itbis,total_neto DEC(12,2),
|
|
num_emp_int,vendedor_aux,bodega INT,
|
|
tbodega VARCHAR(100)
|
|
END RECORD
|
|
|
|
DEFINE container RECORD
|
|
vendedor STRING,
|
|
orden INT,
|
|
etiqueta_cotiza CHAR(30),
|
|
cuenta_item SMALLINT
|
|
END RECORD
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL STARTLOG("prprmt11.log")
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
|
|
DECLARE buscacorreo CURSOR FOR
|
|
SELECT a.correo FROM seg0003 a
|
|
WHERE a.actualizacion_log_produccion = 'SI'
|
|
|
|
LET idx = 1
|
|
FOREACH buscacorreo INTO copiacorreo[idx]
|
|
LET copiaemail = copiaemail CLIPPED,";",copiacorreo[idx]
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
SELECT a.actualizacion_log_produccion,actualizacion_produccion
|
|
INTO actualiza_log_produccion,actualiza_produccion FROM seg0003 a
|
|
WHERE a.usuario = usuarios
|
|
|
|
CALL prprmt011()
|
|
END MAIN
|
|
|
|
FUNCTION prprmt011()
|
|
|
|
DEFINE arr_ordenes DYNAMIC ARRAY OF RECORD
|
|
actualiza VARCHAR(1),
|
|
cerrada VARCHAR(1),
|
|
estado_produccion VARCHAR(100),
|
|
estado_producto VARCHAR(100),
|
|
departamento SMALLINT,
|
|
descripcion_dpto VARCHAR(30),
|
|
vendedor VARCHAR(50),
|
|
apell1_emp VARCHAR(50),
|
|
fecha DATE,
|
|
fecha_compromiso DATE,
|
|
fecha_llegada DATE,
|
|
fechaDispEntrega DATE,
|
|
fechaSolDespacho DATE,
|
|
fechaInstalacion DATE,
|
|
cotizacion_no INT,
|
|
num_oc INT,
|
|
orden_compra INT,
|
|
observacion VARCHAR(250),
|
|
tipo_venta VARCHAR(30),
|
|
cliente VARCHAR(60),
|
|
origen VARCHAR(30),
|
|
producto VARCHAR(100),
|
|
cantidad_ord DEC(12,5),
|
|
cantidad_desp DEC(12,5),
|
|
cantidad_dev DEC(12,5),
|
|
pendiente DEC(12,5),
|
|
sec_vend SMALLINT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente INT,
|
|
balance DEC(12,5),
|
|
id_kit INT ,
|
|
area SMALLINT,
|
|
instalador,equipo VARCHAR(100),
|
|
|
|
costo NUMERIC(12,2)
|
|
END RECORD,
|
|
cantidad_Desp,cantidad_dev DEC(12,5),
|
|
registros INT,
|
|
fecha1,fecha2 DATE,
|
|
busqueda,entre STRING,
|
|
att dynamic array of record
|
|
col1 string,
|
|
col2 string,
|
|
col3 string,
|
|
col4 string,
|
|
col5 string,
|
|
col6 string,
|
|
col7 string,
|
|
col8 string,
|
|
col9 STRING,
|
|
col10,col11,col12,col13,col14,col15,col16 STRING
|
|
end record,
|
|
estado VARCHAR(20),
|
|
cuenta INT,
|
|
arr_req DYNAMIC ARRAY OF RECORD
|
|
num_req INT,
|
|
nombre STRING,
|
|
precio FLOAT
|
|
END RECORD
|
|
## Captura los datos que va a contener el registro
|
|
--fechaSolDespacho
|
|
|
|
OPEN WINDOW prfmmt011 AT 10,10 WITH FORM "prfmmt011"
|
|
#WHENEVER ERROR CONTINUE
|
|
|
|
LET w = ui.Window.getCurrent()
|
|
LET f = w.getForm()
|
|
|
|
DIALOG ATTRIBUTE(UNBUFFERED,FIELD ORDER FORM)
|
|
|
|
INPUT BY NAME fecha1,fecha2
|
|
BEFORE INPUT
|
|
|
|
LET entre='N'
|
|
LET busqueda = NULL
|
|
|
|
CALL f.setFieldHidden("fechaSolDespacho",1)
|
|
CALL f.setElementHidden("fechaSolDespacho",1)
|
|
AFTER INPUT
|
|
END INPUT
|
|
CONSTRUCT criterio ON x.cerrada,x.num_oc,x.departamento,x.cotizacion_no,e.tipo_cliente,e.sec_cliente,e.nombre,b.nom1_emp,
|
|
b.apell1_emp,x1.estado_produccion,x1.estado_producto,x4.cod_cia,x1.cod_n,x1.cod_grupo,x1.cod_tipo,x1.cod_Sec,
|
|
x2.descrip_esp,
|
|
x1.fecha_compromiso,x.tipo_orden,x7.depto
|
|
FROM
|
|
cerrada,num_oc,departamento,cotizacion_no,tipo_cliente,sec_cliente,nombre,vendedor,
|
|
apell1_emp,estado_produccion,estado_producto,xorigen,pcod10,pcod11,pcod12,pcod13,descripcionprod,fecha_compromiso,
|
|
tipo_orden,equipos
|
|
|
|
BEFORE CONSTRUCT
|
|
LET entre = 'S'
|
|
CALL cequipos()
|
|
AFTER CONSTRUCT
|
|
|
|
END CONSTRUCT
|
|
|
|
ON ACTION busca ATTRIBUTE(TEXT="Buscar",IMAGE="find")
|
|
LET busqueda = NULL
|
|
IF fecha1 IS NOT NULL THEN
|
|
IF fecha1 > fecha2 THEN
|
|
CALL msg(64)
|
|
NEXT FIELD fecha1
|
|
END IF
|
|
LET busqueda = " AND x.fecha_oc BETWEEN '",fecha1 USING "MM/DD/YYYY",
|
|
"' AND '",fecha2 USING "mm/dd/yyyy","'"
|
|
|
|
|
|
END IF
|
|
LET selec2 = " SELECT SUM(a.cantidad_2)
|
|
FROM iptb00006 a
|
|
WHERE a.area =? AND
|
|
a.cod_n = ? AND
|
|
a.cod_grupo = ? AND
|
|
a.cod_tipo = ? AND
|
|
a.cod_sec = ? AND
|
|
a.num_oc = ? AND
|
|
a.cod_mov IN (30,31,55,56,12,13) AND
|
|
a.status_t IS NULL
|
|
"
|
|
PREPARE despachos FROM selec2
|
|
|
|
IF busqueda IS NULL THEN
|
|
LET selec1 =
|
|
" SELECT 'N', x.cerrada, x1.estado_produccion,x1.estado_producto,x1.departamento,x3.nom_dpto,RTRIM(CAST(x.sec_vend AS CHAR)) + ' ' + RTRIM(b.nom1_emp), b.apell1_emp, ",
|
|
" CONVERT(CHAR(10), x.fecha_oc,103) AS fecha_orden , CONVERT(char(10),x1.fecha_compromiso,103) ,x1.fecha_llegada, x1.fecha_disp_entrega, ",
|
|
" x1.fecha_solic_despacho, x1.fecha_instalacion, x.cotizacion_no, x.num_oc,x5.num_oc, x.observacion,g.descripcion, CAST(e.tipo_cliente AS CHAR(2)) ",
|
|
" + '-' + CAST(e.sec_cliente AS CHAR(6)) + ' ' + RTRIM(e.nombre) ,x4.descripcion, CAST(x1.cod_n AS VARCHAR(4)) + '-' + CAST(x1.cod_grupo AS VARCHAR(4)) ",
|
|
" + '-' + CAST(x1.cod_tipo AS VARCHAR(4)) + '-' + CAST(x1.cod_sec AS VARCHAR(7)) + ' ' + RTRIM(x2.descrip_esp), ",
|
|
" SUM(x1.cantidad), '0' , '0' , '0' , x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente, ",
|
|
" '0',x1.id_kit,x1.area,(SELECT RTRIM(x10.nom1_emp)+' '+ISNULL(x10.apell1_emp,' ') FROM adtb00003 x10 WHERE x.num_emp_inst=x10.num_emp),
|
|
x7.nombre as equipo ",
|
|
" FROM vetb00004 AS e INNER JOIN ",
|
|
" prtb00012 AS x ON (e.tipo_cliente = x.tipo_cliente AND e.sec_cliente = x.sec_cliente) INNER JOIN ",
|
|
" vetb00060 AS h ON x.tipo_cliente = h.tipo_cliente INNER JOIN ",
|
|
" prtb00013 AS x1 ON (x.num_oc = x1.num_oc) LEFT OUTER JOIN ",
|
|
" cotb00015 AS x5 ON (x1.num_oc = x5.numero_orden) and (x1.cod_n = x5.cod_n AND ",
|
|
" x1.cod_grupo = x5.cod_grupo AND x1.cod_tipo = x5.cod_tipo AND x1.cod_sec = x5.cod_sec) ",
|
|
" LEFT OUTER JOIN ",
|
|
" adtb00001 AS x3 ON (x1.departamento = x3.departamento) INNER JOIN ",
|
|
" iptb00002 AS x2 ON (x1.cod_n = x2.cod_n) AND (x1.cod_grupo = x2.cod_grupo) AND (x1.cod_tipo = x2.cod_tipo) AND (x1.cod_sec = x2.cod_sec) INNER JOIN ",
|
|
" iptb00022 AS x4 ON x2.cod_cia = x4.cod_cia INNER JOIN ",
|
|
" vetb00061 AS g ON h.ventas = g.ventas INNER JOIN ",
|
|
" adtb00003 AS b ON (x.sec_vend = b.num_emp) LEFT OUTER JOIN ",
|
|
" seg0000 as x6 ON x6.sec_vend = b.num_emp LEFT OUTER JOIN ",
|
|
" seg0008 AS x7 ON x7.depto = x6.depto ",
|
|
" WHERE x.tipo_orden in ('GENERAL','COCINAS MODULARES, PUERTAS, BANOS','REPOSICION') AND ",criterio CLIPPED,
|
|
" GROUP BY x.cerrada, x1.estado_produccion,x.sec_vend ,b.nom1_emp, b.apell1_emp,
|
|
x.fecha_oc , x1.fecha_compromiso , x.cotizacion_no, x.num_oc, x.observacion,g.descripcion, e.tipo_cliente,
|
|
e.sec_cliente ,e.nombre , x1.cod_n,x1.cod_grupo ,
|
|
x1.cod_tipo ,x1.cod_sec,x2.descrip_esp,x4.descripcion,
|
|
x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente,",
|
|
" x1.departamento,x3.nom_dpto,x1.id_kit,x1.area,x5.num_oc,x.num_emp_inst,x1.fecha_llegada, x1.fecha_disp_entrega,
|
|
x1.fecha_solic_despacho, x1.fecha_instalacion,x1.estado_producto,x7.nombre ",
|
|
" ORDER BY x.num_oc DESC "
|
|
|
|
ELSE
|
|
IF criterio IS NOT NULL THEN
|
|
LET busqueda = " AND x.fecha_oc BETWEEN '",fecha1 USING "MM/DD/YYYY",
|
|
"' AND '",fecha2 USING "mm/dd/yyyy","'"
|
|
ELSE
|
|
LET busqueda = " x.fecha_oc BETWEEN '",fecha1 USING "MM/DD/YYYY",
|
|
"' AND '",fecha2 USING "mm/dd/yyyy","'"
|
|
|
|
END IF
|
|
LET selec1 =
|
|
" SELECT 'N', x.cerrada, x1.estado_produccion,x1.estado_producto,x1.departamento,x3.nom_dpto,RTRIM(CAST(x.sec_vend AS CHAR)) + ' ' + RTRIM(b.nom1_emp), b.apell1_emp, ",
|
|
" CONVERT(CHAR(10), x.fecha_oc,103) AS fecha_orden , CONVERT(char(10),x1.fecha_compromiso,103) ,
|
|
x1.fecha_llegada,x1.fecha_disp_entrega, ",
|
|
" x1.fecha_solic_despacho, x1.fecha_instalacion, x.cotizacion_no, x.num_oc,x5.num_oc, x.observacion,g.descripcion, CAST(e.tipo_cliente AS CHAR(2)) ",
|
|
" + '-' + CAST(e.sec_cliente AS CHAR(6)) + ' ' + RTRIM(e.nombre) ,x4.descripcion, CAST(x1.cod_n AS VARCHAR(4)) + '-' + CAST(x1.cod_grupo AS VARCHAR(4)) ",
|
|
" + '-' + CAST(x1.cod_tipo AS VARCHAR(4)) + '-' + CAST(x1.cod_sec AS VARCHAR(7)) + ' ' + RTRIM(x2.descrip_esp), ",
|
|
" SUM(x1.cantidad), '0' , '0' , '0' , x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente, ",
|
|
" '0',x1.id_kit,x1.area,(SELECT RTRIM(x10.nom1_emp)+' '+ISNULL(x10.apell1_emp,' ') FROM adtb00003 x10 WHERE x.num_emp_inst=x10.num_emp),
|
|
x7.nombre as equipos ",
|
|
" FROM vetb00004 AS e INNER JOIN ",
|
|
" prtb00012 AS x ON (e.tipo_cliente = x.tipo_cliente AND e.sec_cliente = x.sec_cliente) INNER JOIN ",
|
|
" vetb00060 AS h ON x.tipo_cliente = h.tipo_cliente INNER JOIN ",
|
|
" prtb00013 AS x1 ON (x.num_oc = x1.num_oc) LEFT OUTER JOIN ",
|
|
" cotb00015 AS x5 ON (x1.num_oc = x5.numero_orden) and (x1.cod_n = x5.cod_n AND ",
|
|
" x1.cod_grupo = x5.cod_grupo AND x1.cod_tipo = x5.cod_tipo AND x1.cod_sec = x5.cod_sec) ",
|
|
" LEFT OUTER JOIN ",
|
|
" adtb00001 AS x3 ON (x1.departamento = x3.departamento) INNER JOIN ",
|
|
" iptb00002 AS x2 ON (x1.cod_n = x2.cod_n) AND (x1.cod_grupo = x2.cod_grupo) AND (x1.cod_tipo = x2.cod_tipo) AND (x1.cod_sec = x2.cod_sec) INNER JOIN ",
|
|
" iptb00022 AS x4 ON x2.cod_cia = x4.cod_cia INNER JOIN ",
|
|
" vetb00061 AS g ON h.ventas = g.ventas INNER JOIN ",
|
|
" adtb00003 AS b ON (x.sec_vend = b.num_emp) LEFT OUTER JOIN ",
|
|
" seg0000 as x6 ON x6.sec_vend = b.num_emp LEFT OUTER JOIN ",
|
|
" seg0008 AS x7 ON x7.depto = x6.depto ",
|
|
" WHERE x.tipo_orden in ('GENERAL','COCINAS MODULARES, PUERTAS, BANOS') AND ",criterio CLIPPED,
|
|
busqueda CLIPPED,
|
|
" GROUP BY x.cerrada, x1.estado_produccion,x.sec_vend ,b.nom1_emp, b.apell1_emp,
|
|
x.fecha_oc , x1.fecha_compromiso , x.cotizacion_no, x.num_oc, x.observacion,g.descripcion, e.tipo_cliente,
|
|
e.sec_cliente ,e.nombre , x1.cod_n,x1.cod_grupo ,
|
|
x1.cod_tipo ,x1.cod_sec,x2.descrip_esp,x4.descripcion,
|
|
x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente,",
|
|
" x1.departamento,x3.nom_dpto,x1.id_kit,x1.area,x5.num_oc,x.num_emp_inst,x1.fecha_llegada, x1.fecha_disp_entrega,
|
|
x1.fecha_solic_despacho, x1.fecha_instalacion,x1.estado_producto,x7.nombre ",
|
|
" ORDER BY x.num_oc DESC "
|
|
END IF
|
|
# CALL fgl_winmessage("info",selec1,"info")
|
|
{
|
|
IF actualiza_log_produccion="SI" THEN
|
|
LET selec1=
|
|
" SELECT 'N', x.cerrada, x1.estado_produccion,x1.departamento,x3.nom_dpto,RTRIM(CAST(x.sec_vend AS CHAR)) + ' ' + RTRIM(b.nom1_emp), b.apell1_emp, ",
|
|
" CONVERT(CHAR(10), x.fecha_oc,103) AS fecha_orden , CONVERT(char(10),x1.fecha_compromiso,103) ,' ', x.cotizacion_no, x.num_oc, x.observacion,g.descripcion, CAST(e.tipo_cliente AS CHAR(2)) ",
|
|
" + '-' + CAST(e.sec_cliente AS CHAR(6)) + ' ' + RTRIM(e.nombre) , CAST(x1.cod_n AS VARCHAR(4)) + '-' + CAST(x1.cod_grupo AS VARCHAR(4)) ",
|
|
" + '-' + CAST(x1.cod_tipo AS VARCHAR(4)) + '-' + CAST(x1.cod_sec AS VARCHAR(4)) + ' ' + RTRIM(x2.descrip_esp), ",
|
|
" SUM(x1.cantidad), '0' , '0' , '0' , x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente, ",
|
|
" '0' ",
|
|
|
|
"FROM vetb00004 AS e INNER JOIN ",
|
|
" prtb00012 AS x ON e.tipo_cliente = x.tipo_cliente AND e.sec_cliente = x.sec_cliente INNER JOIN ",
|
|
" vetb00060 AS h ON x.tipo_cliente = h.tipo_cliente INNER JOIN ",
|
|
" prtb00013 AS x1 ON x.num_oc = x1.num_oc LEFT OUTER JOIN ",
|
|
" adtb00001 AS x3 ON x1.departamento = x3.departamento INNER JOIN ",
|
|
" iptb00002 AS x2 ON x1.cod_n = x2.cod_n AND x1.cod_grupo = x2.cod_grupo AND x1.cod_tipo = x2.cod_tipo AND x1.cod_sec = x2.cod_sec INNER JOIN ",
|
|
" vetb00061 AS g ON h.ventas = g.ventas INNER JOIN ",
|
|
" adtb00003 AS b ON x.sec_vend = b.num_emp INNER JOIN ",
|
|
" seg0001 AS c ON x1.departamento =c.departamento ",
|
|
|
|
" WHERE (x.status_t IS NULL) ",
|
|
busqueda CLIPPED,
|
|
" AND c.usuario = '",usuarios CLIPPED,"' ",
|
|
" GROUP BY x.cerrada, x1.estado_produccion,x.sec_vend ,b.nom1_emp, b.apell1_emp,
|
|
x.fecha_oc , x1.fecha_compromiso , x.cotizacion_no, x.num_oc, x.observacion,g.descripcion, e.tipo_cliente,
|
|
e.sec_cliente ,e.nombre , x1.cod_n,x1.cod_grupo ,
|
|
x1.cod_tipo ,x1.cod_sec,x2.descrip_esp,
|
|
x.sec_vend, x1.cod_n, x1.cod_grupo, x1.cod_tipo, x1.cod_Sec, e.tipo_cliente, e.sec_cliente,",
|
|
" x1.departamento,x3.nom_dpto ",
|
|
" ORDER BY x.num_oc DESC "
|
|
|
|
END IF
|
|
}
|
|
DISPLAY "seleccion: ",selec1
|
|
PREPARE comando FROM selec1
|
|
DECLARE busca_orden CURSOR FOR comando
|
|
OPEN busca_orden
|
|
|
|
|
|
LET idx = 1
|
|
FOREACH busca_orden INTO arr_ordenes[idx].*
|
|
|
|
# BUSCA CANTIDAD DESPACHADA
|
|
|
|
LET cantidad_Desp=0
|
|
EXECUTE despachos INTO cantidad_desp USING arr_ordenes[idx].area,
|
|
arr_ordenes[idx].cod_n,arr_ordenes[idx].cod_grupo,
|
|
arr_ordenes[idx].cod_tipo,arr_ordenes[idx].cod_sec,
|
|
arr_ordenes[idx].num_oc
|
|
|
|
|
|
IF cantidad_Desp IS NULL THEN
|
|
LET cantidad_desp = 0
|
|
END IF
|
|
|
|
# BUSCA CANTIDAD DEVUELTA
|
|
LET cantidad_Dev = 0
|
|
# SELECT SUM(a.cantidad_2) INTO cantidad_dev
|
|
# FROM iptb00006 a
|
|
# WHERE a.cod_n = arr_ordenes[idx].cod_n AND
|
|
# a.cod_grupo = arr_ordenes[idx].cod_grupo AND
|
|
# a.cod_tipo = arr_ordenes[idx].cod_tipo AND
|
|
# a.cod_sec = arr_ordenes[idx].cod_sec AND
|
|
# a.conduce_no = arr_ordenes[idx].num_oc AND
|
|
# a.cod_mov IN (12,13) AND
|
|
# a.status_t IS NULL AND a.fech_crea > '2011-01-01'
|
|
|
|
IF cantidad_Desp IS NULL THEN
|
|
LET cantidad_desp = 0
|
|
END IF
|
|
LET arr_ordenes[idx].cantidad_desp = cantidad_desp
|
|
LET arr_ordenes[idx].pendiente = arr_ordenes[idx].cantidad_ord -
|
|
(arr_ordenes[idx].cantidad_desp*-1)
|
|
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
IF idx = 1 THEN
|
|
CALL fgl_winmessage("ADVERTENCIA","NO EXISTEN REGISTROS CON ESA CONDICION","INFO")
|
|
EXIT PROGRAM
|
|
END IF
|
|
|
|
CALL set_count(idx-1)
|
|
|
|
options input WRAP
|
|
|
|
INPUT ARRAY arr_ordenes WITHOUT DEFAULTS FROM s_ordenes.* attributes(UNBUFFERED)
|
|
ON ACTION transacciones
|
|
LET xarticulo = arr_ordenes[arr_curr()].producto
|
|
CALL transacciones(arr_ordenes[arr_curr()].num_oc,arr_ordenes[arr_curr()].cod_n,
|
|
arr_ordenes[arr_curr()].cod_grupo,arr_ordenes[arr_curr()].cod_tipo,
|
|
arr_ordenes[arr_curr()].cod_sec,xarticulo)
|
|
ON ACTION btransito
|
|
IF fecha2 IS NULL THEN
|
|
LET fecha2 = TODAY
|
|
END IF
|
|
CALL fechas_llegadas(arr_ordenes[arr_curr()].cod_n,arr_ordenes[arr_curr()].cod_grupo,arr_ordenes[arr_curr()].cod_tipo,
|
|
arr_ordenes[arr_curr()].cod_sec,fecha2)
|
|
ON ACTION buscareq ATTRIBUTE(TEXT="Requisicion")
|
|
IF verificaordenNoAutorizada(arr_ordenes[arr_curr()].num_oc) OR verificaordenAutorizada(arr_ordenes[arr_curr()].num_oc) THEN
|
|
CALL buscareq(arr_ordenes[arr_curr()].num_oc)
|
|
CLOSE WINDOW w1
|
|
END IF
|
|
|
|
ON ACTION cotizacion_detalle
|
|
INITIALIZE container TO NULL
|
|
LET container.vendedor = arr_ordenes[arr_curr()].vendedor
|
|
LET container.orden = arr_ordenes[arr_curr()].num_oc
|
|
LET container.cuenta_item = arr_count()
|
|
LET container.etiqueta_cotiza = "COTIZACION"
|
|
|
|
CALL vepcmf008(arr_ordenes[arr_curr()].cotizacion_no)
|
|
|
|
AFTER FIELD departamento
|
|
IF arr_ordenes[arr_curr()].departamento IS NOT NULL THEN
|
|
SELECT a.nom_dpto INTO arr_ordenes[arr_curr()].descripcion_dpto
|
|
FROM adtb00001 a
|
|
WHERE a.departamento = arr_ordenes[arr_curr()].departamento
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD departamento
|
|
END IF
|
|
DISPLAY arr_ordenes[arr_curr()].descripcion_dpto TO s_ordenes[scr_line()].descripcion_dpto
|
|
END IF
|
|
|
|
BEFORE INPUT
|
|
call dialog.setCellAttributes(att)
|
|
|
|
LET registros = DIALOG.getArrayLength("s_ordenes") - 1
|
|
DISPLAY BY NAME registros
|
|
|
|
FOR idx = 1 TO arr_ordenes.getLength()
|
|
LET att[idx].col1 = NULL
|
|
LET att[idx].col2 = NULL
|
|
LET att[idx].col3 = NULL
|
|
LET att[idx].col4 = NULL
|
|
LET att[idx].col5 = NULL
|
|
LET att[idx].col6 = NULL
|
|
LET att[idx].col7 = NULL
|
|
LET att[idx].col8 = NULL
|
|
LET att[idx].col9 = NULL
|
|
LET att[idx].col10 = NULL
|
|
LET att[idx].col11 = NULL
|
|
LET att[idx].col12 = NULL
|
|
LET att[idx].col13 = NULL
|
|
LET att[idx].col14 = NULL
|
|
LET att[idx].col15 = NULL
|
|
LET att[idx].col16 = NULL
|
|
#FECHA LLEGADA
|
|
LET veces = 0
|
|
SELECT COUNT(*) INTO veces FROM cctb00026 a
|
|
WHERE (a.num_oc = arr_ordenes[idx].num_oc AND
|
|
a.cod_n = arr_ordenes[idx].cod_n AND
|
|
a.cod_grupo = arr_ordenes[idx].cod_grupo AND
|
|
a.cod_tipo = arr_ordenes[idx].cod_tipo AND
|
|
a.cod_sec = arr_ordenes[idx].cod_sec) AND
|
|
a.status_t IS NULL
|
|
|
|
IF veces > 1 THEN
|
|
LET att[idx].col7 = 'blue reverse'
|
|
ELSE
|
|
SELECT CONVERT(CHAR(10),a.fecha_llegada,103) INTO arr_ordenes[idx].fecha_llegada
|
|
FROM cctb00026 a
|
|
WHERE a.num_oc = arr_ordenes[idx].num_oc AND
|
|
a.cod_n = arr_ordenes[idx].cod_n AND
|
|
a.cod_grupo = arr_ordenes[idx].cod_grupo AND
|
|
a.cod_tipo = arr_ordenes[idx].cod_tipo AND
|
|
a.cod_sec = arr_ordenes[idx].cod_sec AND
|
|
a.status_t IS NULL
|
|
|
|
END IF
|
|
#VERIFICA SI LA ORDEN TIENE REQUISICION DE DESPACHOS
|
|
IF verificaordenNoReq(arr_ordenes[idx].num_oc) THEN
|
|
LET att[idx].col16 = 'black'
|
|
DISPLAY "ORDENES NO TIENE ",arr_ordenes[idx].num_oc
|
|
END IF
|
|
|
|
IF verificaordenNoAutorizada(arr_ordenes[idx].num_oc) THEN
|
|
LET att[idx].col16 = 'yellow reverse'
|
|
|
|
END IF
|
|
|
|
IF verificaordenAutorizada(arr_ordenes[idx].num_oc) THEN
|
|
|
|
LET att[idx].col16 = 'magenta reverse'
|
|
END IF
|
|
|
|
|
|
#---------------------------------------------------------------------
|
|
# FECHA COMPROMISO O PRODUCCION
|
|
|
|
LET vecesparcial = 0
|
|
SELECT COUNT(*) INTO vecesparcial FROM prtb00028 a
|
|
WHERE a.num_oc =arr_ordenes[idx].num_oc AND
|
|
a.cod_n = arr_ordenes[idx].cod_n AND
|
|
a.cod_grupo = arr_ordenes[idx].cod_grupo AND
|
|
a.cod_tipo = arr_ordenes[idx].cod_tipo AND
|
|
a.cod_Sec = arr_ordenes[idx].cod_sec
|
|
|
|
IF vecesparcial > 1 THEN
|
|
LET att[idx].col8 = 'green reverse'
|
|
ELSE
|
|
LET att[idx].col8 = 'Black'
|
|
END IF
|
|
|
|
IF (arr_ordenes[idx].fecha_compromiso - TODAY) > 2 AND
|
|
(arr_ordenes[idx].fecha_compromiso - TODAY) < 3 THEN
|
|
LET att[idx].col9 = 'magenta reverse'
|
|
ELSE
|
|
LET att[idx].col9 = 'Black'
|
|
|
|
END IF
|
|
|
|
IF (arr_ordenes[idx].fecha_compromiso-TODAY) <0 THEN
|
|
LET att[idx].col9 = 'red reverse'
|
|
ELSE
|
|
LET att[idx].col9 = 'Black'
|
|
|
|
END IF
|
|
# VERIFICA QUE LA ORDEN TENGA DIBUJOS
|
|
SELECT ISNULL(COUNT(*),0) INTO cuenta FROM prtb00029 a
|
|
WHERE a.num_oc =arr_ordenes[idx].num_oc AND a.tipo_file = 'DI'
|
|
IF cuenta > 0 THEN
|
|
LET att[idx].col2='Yellow'
|
|
ELSE
|
|
LET att[idx].col2 = 'Black'
|
|
END IF
|
|
|
|
END FOR
|
|
ON ACTION existencia ATTRIBUTE(TEXT="Existencia",IMAGE='fa-list-alt')
|
|
LET xarticulo = arr_ordenes[arr_curr()].producto CLIPPED
|
|
CALL existenciaalmacenes(
|
|
arr_ordenes[arr_curr()].cod_n,
|
|
arr_ordenes[arr_curr()].cod_grupo,
|
|
arr_ordenes[arr_curr()].cod_tipo,
|
|
arr_ordenes[arr_curr()].cod_sec,
|
|
xarticulo
|
|
)
|
|
|
|
ON ACTION flujo
|
|
LET curr = arr_curr()
|
|
IF curr >0 THEN
|
|
CALL prprmt011c(arr_ordenes[curr].num_oc,arr_ordenes[curr].cod_n,arr_ordenes[curr].cod_grupo,
|
|
arr_ordenes[curr].cod_tipo,arr_ordenes[curr].cod_sec,usuarios,actualiza_log_produccion,
|
|
arr_ordenes[curr].departamento)
|
|
END IF
|
|
ON ACTION dibujo ATTRIBUTE(TEXT="Documentos")
|
|
LET curr = arr_curr()
|
|
CALL busca_dibujos(arr_ordenes[curr].num_oc)
|
|
|
|
{ON ACTION buscaConduce ATTRIBUTE(TEXT="CONDUCES", IMAGE='picture')
|
|
LET curr = arr_curr()
|
|
CALL busca_imagen_conduces(arr_ordenes[curr].num_oc) }
|
|
ON ACTION fllegada
|
|
LET curr = arr_curr()
|
|
LET scr_l = scr_line()
|
|
|
|
# FECHA LLEGADA
|
|
SELECT COUNT(*) INTO veces FROM cctb00026 a
|
|
WHERE a.num_oc = arr_ordenes[curr].num_oc AND
|
|
a.cod_n = arr_ordenes[curr].cod_n AND
|
|
a.cod_grupo = arr_ordenes[curr].cod_grupo AND
|
|
a.cod_tipo = arr_ordenes[curr].cod_tipo AND
|
|
a.cod_sec = arr_ordenes[curr].cod_sec AND
|
|
a.status_t IS NULL
|
|
|
|
IF veces > 1 THEN
|
|
CALL busca_fecha(arr_ordenes[curr].num_oc,arr_ordenes[curr].cod_n,
|
|
arr_ordenes[curr].cod_grupo,arr_ordenes[curr].cod_tipo,
|
|
arr_ordenes[curr].cod_sec)
|
|
END IF
|
|
|
|
ON ACTION forden
|
|
LET curr = arr_curr()
|
|
CALL prprrp016(arr_ordenes[curr].num_oc)
|
|
ON ACTION imprime_data ATTRIBUTE(TEXT="Reporte Data",image="print")
|
|
IF arr_ordenes.getLength() > 1 THEN
|
|
CALL seleccionarsalida() RETURNING r_output
|
|
#LET r_output='PDF'
|
|
LET preview = TRUE
|
|
LET r_filename ="prprmt011d.4rp"
|
|
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
|
|
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
END IF
|
|
START REPORT rordenes TO XML HANDLER HANDLER
|
|
|
|
FOR idx=1 TO arr_ordenes.getLength()
|
|
IF arr_ordenes[idx].num_oc >0 THEN
|
|
IF arr_ordenes[idx].cerrada='S' THEN
|
|
LET estado='CERRADA'
|
|
ELSE
|
|
IF arr_ordenes[idx].cerrada = 'N' THEN
|
|
LET estado='ABIERTA'
|
|
END IF
|
|
IF arr_ordenes[idx].cerrada = 'E' THEN
|
|
LET estado='NULA'
|
|
END IF
|
|
END IF
|
|
|
|
OUTPUT TO REPORT rordenes(arr_ordenes[idx].num_oc,estado,
|
|
arr_ordenes[idx].estado_produccion,arr_ordenes[idx].fecha_compromiso,
|
|
arr_ordenes[idx].vendedor,arr_ordenes[idx].cliente,arr_ordenes[idx].cotizacion_no,
|
|
arr_ordenes[idx].producto,arr_ordenes[idx].fecha,arr_ordenes[idx].cantidad_ord,
|
|
arr_ordenes[idx].pendiente,arr_ordenes[idx].costo)
|
|
END IF
|
|
END FOR
|
|
|
|
FINISH REPORT rordenes
|
|
ELSE
|
|
CALL fgl_winmessage("INFO","NO EXISTEN INFORMACIONES A IMPRIMIR","INFO")
|
|
END IF
|
|
|
|
ON ACTION parciales
|
|
LET curr = arr_curr()
|
|
CALL fparciales(arr_ordenes[curr].num_oc,arr_ordenes[curr].cod_n,
|
|
arr_ordenes[curr].cod_grupo,arr_ordenes[curr].cod_tipo,
|
|
arr_ordenes[curr].cod_sec,arr_ordenes[curr].fecha,
|
|
arr_ordenes[curr].producto)
|
|
|
|
|
|
ON ACTION informe ATTRIBUTE(TEXT="Informe",IMAGE="print")
|
|
CALL seg000(usuarios,0,'prprmt011.informe') RETURNING resultado
|
|
|
|
IF resultado = "SI" THEN
|
|
CALL prprmt011b(arr_ordenes)
|
|
ELSE
|
|
CALL fgl_winmessage("ADVERTENCIA","USTED NO TIENE PERMISOS PARA UTILIZAR OPCION","INFO")
|
|
CONTINUE DIALOG
|
|
END IF
|
|
|
|
AFTER FIELD fecha_compromiso
|
|
LET curr=arr_curr()
|
|
IF arr_ordenes[curr].fecha_compromiso IS NOT NULL THEN
|
|
IF arr_ordenes[curr].fecha_compromiso < arr_ordenes[curr].fecha THEN
|
|
CALL fgl_winmessage("ADVERTENCIA","FECHA COMPROMISO, NO PUEDE SER MENOR A LA FECHA DE LA ORDEN","INFO")
|
|
NEXT FIELD fecha_compromiso
|
|
ELSE
|
|
LET arr_ordenes[arr_curr()].fechaDispEntrega = arr_ordenes[arr_curr()].fecha_compromiso + 1
|
|
LET arr_ordenes[arr_curr()].fechaSolDespacho = arr_ordenes[arr_curr()].fechaDispEntrega
|
|
DISPLAY arr_ordenes[arr_curr()].fechaDispEntrega TO s_ordenes[scr_line()].fechaDispEntrega
|
|
DISPLAY arr_ordenes[arr_curr()].fechaDispEntrega TO s_ordenes[scr_line()].fechaDispEntrega
|
|
END IF
|
|
END IF
|
|
|
|
BEFORE FIELD fechaSolDespacho
|
|
CALL seg000(usuarios,0,'prprmt011.informe') RETURNING resultado
|
|
IF resultado = "NO" THEN
|
|
NEXT FIELD fechaInstalacion
|
|
CONTINUE DIALOG
|
|
END IF
|
|
|
|
BEFORE FIELD fechaInstalacion
|
|
CALL seg000(usuarios,0,'prprmt011.finstalacion') RETURNING resultado
|
|
IF resultado = "NO" THEN
|
|
NEXT FIELD cotizacion_no
|
|
CONTINUE DIALOG
|
|
END IF
|
|
|
|
ON ACTION visualiza_log
|
|
CALL ver_log(arr_ordenes[arr_curr()].num_oc,arr_ordenes[arr_curr()].cod_n,arr_ordenes[arr_curr()].cod_grupo
|
|
,arr_ordenes[arr_curr()].cod_tipo,arr_ordenes[arr_curr()].cod_sec)
|
|
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
LET INT_FLAG = FALSE
|
|
CALL msg(2)
|
|
EXIT INPUT
|
|
END IF
|
|
|
|
IF actualiza_produccion="SI" THEN
|
|
FOR idx = 1 TO arr_ordenes.getLength()
|
|
|
|
|
|
IF arr_ordenes[idx].actualiza = "S" THEN
|
|
IF arr_ordenes[idx].num_oc IS NOT NULL THEN
|
|
UPDATE prtb00012 SET cerrada = arr_ordenes[idx].cerrada,
|
|
us_mod = SUSER_SNAME(),
|
|
fech_mod = GETDATE()
|
|
WHERE prtb00012.num_oc = arr_ordenes[idx].num_oc
|
|
IF arr_ordenes[idx].cerrada = 'E' THEN
|
|
|
|
IF arr_ordenes[idx].fecha_compromiso IS NOT NULL THEN
|
|
CALL msg(1011)
|
|
EXIT FOR
|
|
END IF
|
|
|
|
IF arr_ordenes[idx].estado_produccion IS NOT NULL THEN
|
|
CALL msg(1011)
|
|
EXIT FOR
|
|
END IF
|
|
|
|
IF arr_ordenes[idx].estado_producto IS NOT NULL THEN
|
|
CALL msg(1011)
|
|
EXIT FOR
|
|
END IF
|
|
|
|
UPDATE prtb00012 SET status_t = 'E',us_mod = usuarios,fech_mod = getdate()
|
|
WHERE num_oc = arr_ordenes[idx].num_oc
|
|
|
|
END IF
|
|
UPDATE prtb00013 SET prtb00013.fecha_compromiso = arr_ordenes[idx].fecha_compromiso,
|
|
prtb00013.estado_produccion = arr_ordenes[idx].estado_produccion,
|
|
prtb00013.estado_producto = arr_ordenes[idx].estado_producto,
|
|
prtb00013.observacion = arr_ordenes[idx].observacion,
|
|
departamento=arr_ordenes[idx].departamento,
|
|
us_mod = SUSER_SNAME(),
|
|
fech_mod = GETDATE(),
|
|
fecha_llegada = arr_ordenes[idx].fecha_llegada,
|
|
fecha_disp_entrega = arr_ordenes[idx].fechaDispEntrega,
|
|
fecha_solic_despacho = arr_ordenes[idx].fechaSolDespacho,
|
|
fecha_instalacion = arr_ordenes[idx].fechaInstalacion
|
|
|
|
WHERE prtb00013.num_oc = arr_ordenes[idx].num_oc AND
|
|
cod_n = arr_ordenes[idx].cod_n AND
|
|
cod_grupo = arr_ordenes[idx].cod_grupo AND
|
|
cod_tipo = arr_ordenes[idx].cod_tipo AND
|
|
cod_sec = arr_ordenes[idx].cod_sec AND
|
|
area = arr_ordenes[idx].area
|
|
|
|
# Se buscan los usuarios quienes tienen permisos para el log de producion por que el usuario
|
|
# quien actualiza las ordenes de producion es el que tiene la autorizacion_produccion,
|
|
# este proceso de envio de correo esta orientado a informar a los usuarios quienes
|
|
# Deben actualizar las otras informaciones como fecha de compromisos y comentarios adicionales
|
|
SELECT a.correo FROM seg0003 a,seg0001 b
|
|
WHERE a.actualizacion_log_produccion = 'SI' AND
|
|
b.departamento = arr_ordenes[idx].departamento AND
|
|
a.usuario = b.usuario
|
|
|
|
LET j = 1
|
|
FOREACH buscacorreo INTO copiacorreo[j]
|
|
LET copiaemail = copiaemail CLIPPED,";",copiacorreo[j]
|
|
LET j = j + 1
|
|
END FOREACH
|
|
|
|
SELECT a.email INTO email FROM seg0000 a
|
|
WHERE a.sec_vend = arr_ordenes[idx].sec_vend
|
|
|
|
IF arr_ordenes[idx].estado_produccion IS NULL THEN
|
|
LET arr_ordenes[idx].estado_produccion ='SIN EVALUAR'
|
|
END IF
|
|
IF arr_ordenes[idx].estado_producto IS NULL THEN
|
|
LET arr_ordenes[idx].producto ='SIN EVALUAR'
|
|
END IF
|
|
LET email = email CLIPPED,';','soporteclientes@marmotech.com.do'
|
|
LET emailsubject = arr_ordenes[idx].num_oc USING "&&&&&&"," ",arr_ordenes[idx].cliente CLIPPED
|
|
IF arr_ordenes[idx].fecha_compromiso IS NOT NULL THEN
|
|
LET emailbody = " LA ORDEN ",arr_ordenes[idx].num_oc USING "&&&&&&"," FUE ACTUALIZADA CON LA FECHA PRODUCCION ",arr_ordenes[idx].fecha_compromiso USING "dd/mm/yyyy",
|
|
" EL ESTADO DE LA PRODUCCION: ",arr_ordenes[idx].estado_produccion CLIPPED,
|
|
" ",arr_ordenes[idx].observacion CLIPPED," Y EL ESTADO DEL PRODUCTO ",
|
|
arr_ordenes[idx].producto CLIPPED
|
|
IF arr_ordenes[idx].observacion IS NULL OR arr_ordenes[idx].observacion = ' ' THEN
|
|
LET arr_ordenes[idx].observacion = emailbody CLIPPED
|
|
END IF
|
|
|
|
ELSE
|
|
LET emailbody = " LA ORDEN ",arr_ordenes[idx].num_oc USING "&&&&&&"," FUE ACTUALIZADA ",
|
|
" EL ESTADO DE LA PRODUCCION ESTA EN ",arr_ordenes[idx].estado_produccion CLIPPED,
|
|
" ",arr_ordenes[idx].observacion CLIPPED," Y EL ESTADO DEL PRODUCTO ",
|
|
arr_ordenes[idx].estado_producto CLIPPED
|
|
IF arr_ordenes[idx].observacion IS NULL OR arr_ordenes[idx].observacion = ' ' THEN
|
|
LET arr_ordenes[idx].observacion = emailbody CLIPPED
|
|
END IF
|
|
|
|
END IF
|
|
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
|
|
CALL envia_correo(email,copiaemail,emailbody,emailsubject,procedimiento)
|
|
|
|
INSERT INTO prordenstatus(fecha_trx,num_oc,cerrada,observacion,fecha_compromiso,usuario,
|
|
cod_n,cod_grupo,cod_tipo,cod_sec)
|
|
VALUES (GETDATE(),arr_ordenes[idx].num_oc,arr_ordenes[idx].cerrada,
|
|
arr_ordenes[idx].observacion,arr_ordenes[idx].fecha_compromiso,usuarios,
|
|
arr_ordenes[idx].cod_n,arr_ordenes[idx].cod_grupo,arr_ordenes[idx].cod_tipo,
|
|
arr_ordenes[idx].cod_sec)
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
ON ACTION limpiar
|
|
LET fecha1 = NULL
|
|
LET fecha2 = NULL
|
|
LET busqueda = NULL
|
|
DISPLAY BY NAME fecha1,fecha2
|
|
CALL arr_ordenes.clear()
|
|
CLEAR FORM
|
|
|
|
ON ACTION CANCEL
|
|
LET fecha1 = NULL
|
|
LET fecha2 = NULL
|
|
LET busqueda = NULL
|
|
DISPLAY BY NAME fecha1,fecha2
|
|
EXIT DIALOG
|
|
EXIT PROGRAM
|
|
END DIALOG
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_fecha(xnum_oc,xcodn,xcodgrupo,xcodtipo,xcodsec)
|
|
DEFINE xnum_oc INT,
|
|
xcodn,xcodgrupo,xcodtipo,xcodsec SMALLINT,
|
|
afecha_llegada DYNAMIC ARRAY OF RECORD
|
|
fecha_llegada CHAR(10),
|
|
num_req INT,
|
|
fecha CHAR(10)
|
|
|
|
END RECORD,
|
|
k smallint
|
|
|
|
OPEN WINDOW prfmwd014 AT 10,10 WITH FORM "prfmwd014"
|
|
|
|
DISPLAY xnum_oc TO num_oc
|
|
DECLARE busca_req CURSOR FOR
|
|
SELECT DISTINCT CONVERT(CHAR(10),a.fecha_llegada,103),a.num_req,
|
|
CONVERT(CHAR(10),b.fecha,103) FROM cctb00026 a,cctb00025 b
|
|
WHERE a.num_oc = xnum_oc AND
|
|
a.num_req = b.num_req AND
|
|
a.cod_n = xcodn AND
|
|
a.cod_grupo = xcodgrupo AND
|
|
a.cod_tipo = xcodtipo AND
|
|
a.cod_sec = xcodsec
|
|
|
|
LET k = 1
|
|
FOREACH busca_req INTO afecha_llegada[k].*
|
|
LET k = k + 1
|
|
END FOREACH
|
|
CALL set_count(k-1)
|
|
INPUT ARRAY afecha_llegada WITHOUT DEFAULTS FROM s_llegada.*
|
|
CLOSE WINDOW prfmwd014
|
|
END FUNCTION
|
|
|
|
FUNCTION prprrp016(pnum_oc)
|
|
|
|
DEFINE busqueda RECORD
|
|
cotizacion_no INT,
|
|
fecha CHAR(10),
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente INT,
|
|
nombre_proyecto CHAR(40),
|
|
direccion_proyecto CHAR(40),
|
|
telefono_r CHAR(15),
|
|
nombre CHAR(40),
|
|
num_oc INT,
|
|
fecha_oc CHAR(10),
|
|
fecha_entrega CHAR(10),
|
|
fecha_cierre CHAR(10),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(100),
|
|
unidad_med CHAR(4),
|
|
cantidad DEC(12,5),
|
|
precio DEC(12,2),
|
|
cantidad_2 DEC(12,5),
|
|
cod_mov CHAR(60),
|
|
fecha_doc CHAR(10),
|
|
documento INT,
|
|
status_mov SMALLINT,
|
|
simbolo CHAR(6),
|
|
vendedor CHAR(50),
|
|
monto_cotizacion DEC(12,2),
|
|
condicion CHAR(30),
|
|
estado_orden CHAR(20),
|
|
avance CHAR(20),
|
|
monto_avance DEC(12,2),
|
|
fecha_avance CHAR(10),
|
|
codigo CHAR(31),
|
|
factura INT,
|
|
bodega SMALLINT
|
|
END RECORD,
|
|
pnum_oc INT
|
|
|
|
|
|
|
|
LET selec =
|
|
|
|
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103) as fecha_cotizacion,a.tipo_cliente,a.sec_cliente, ",
|
|
"a.nombre_proyecto, ",
|
|
"a.direccion_proyecto,a.telefono_r, ",
|
|
"b.nombre,c.num_oc,CONVERT(CHAR(10),c.fecha_oc,103) as fecha_orden,",
|
|
"CONVERT(CHAR(10),c.fecha_entrega,103) as fecha_entrega,CONVERT(CHAR(10),c.fecha_cierre,103) as fecha_cierre,",
|
|
"x1.cod_n,x1.cod_grupo,x1.cod_tipo,x1.cod_sec,",
|
|
"e.descrip_esp,e.unidad_med, SUM(x1.cantidad),'0',",
|
|
"i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+ISNULL(RTRIM(j.nom1_emp),' ')+' '+ISNULL(RTRIM(j.nom2_emp),' ')+' '+ISNULL(RTRIM(j.apell1_emp),' ') as vendedor, ",
|
|
"a.total_neto, k.descrip, CASE WHEN c.cerrada='S' THEN 'CERRADA' ELSE 'ABIERTA' END ",
|
|
"FROM vetb00050 a,vetb00004 b,vetb00012 k,vetb00061 i,adtb00003 j,iptb00002 e, prtb00012 c,prtb00013 x1 ",
|
|
" WHERE a.cotizacion_no = c.cotizacion_no and ",
|
|
" a.tipo_cliente = b.tipo_cliente AND ",
|
|
" a.sec_cliente = b.sec_cliente and ",
|
|
" a.sec_vend = j.num_emp AND ",
|
|
" a.cond_pago = k.cond_pago AND ",
|
|
" a.ventas =i.ventas AND ",
|
|
" c.num_oc = x1.num_oc and ",
|
|
" c.num_oc = ",pnum_oc," AND ",
|
|
" e.cod_n = x1.cod_n and ",
|
|
" e.cod_grupo =x1.cod_grupo AND ",
|
|
" e.cod_tipo = x1.cod_tipo and ",
|
|
" e.cod_sec =x1.cod_sec ",
|
|
" GROUP BY a.cotizacion_no,a.fecha,a.tipo_cliente,a.sec_cliente, ",
|
|
"a.nombre_proyecto, c.cerrada, ",
|
|
"a.direccion_proyecto,a.telefono_r,",
|
|
"b.nombre,c.num_oc,c.fecha_oc, ",
|
|
"c.fecha_entrega,c.fecha_cierre,",
|
|
"x1.cod_n,x1.cod_grupo,x1.cod_tipo,x1.cod_sec,",
|
|
"e.descrip_esp,e.unidad_med, ",
|
|
"i.simbolo,a.sec_vend ,j.nom1_emp,j.nom2_emp,j.apell1_emp,",
|
|
" a.total_neto, k.descrip",
|
|
" ORDER BY x1.cod_n,x1.cod_grupo,x1.cod_tipo,x1.cod_sec "
|
|
|
|
|
|
|
|
PREPARE comando1 FROM selec
|
|
DECLARE busca CURSOR FOR comando1
|
|
OPEN busca
|
|
|
|
LET r_filename = 'prprmt011a.4rp'
|
|
CALL seleccionarSalida() RETURNING r_output
|
|
|
|
|
|
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
|
# LET r_output='SVG' CLIPPED
|
|
LET preview=1
|
|
CALL fgl_report_selectDevice(r_output) -- changing default
|
|
CALL fgl_report_selectPreview(preview) -- changing default
|
|
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
|
END IF
|
|
|
|
IF handler IS NOT NULL THEN -- report engine was configured ok
|
|
START REPORT reporte_16a TO XML HANDLER HANDLER
|
|
LET idx = 1
|
|
FOREACH busca INTO busqueda.cotizacion_no,busqueda.fecha,busqueda.tipo_cliente,
|
|
busqueda.sec_cliente,busqueda.nombre_proyecto,busqueda.direccion_proyecto,
|
|
busqueda.telefono_r,busqueda.nombre,busqueda.num_oc,busqueda.fecha_oc,
|
|
busqueda.fecha_entrega,busqueda.fecha_cierre,busqueda.cod_n,
|
|
busqueda.cod_grupo,busqueda.cod_tipo,busqueda.cod_sec,
|
|
busqueda.descrip_esp,busqueda.unidad_med,busqueda.cantidad,
|
|
busqueda.precio,
|
|
busqueda.simbolo,busqueda.vendedor,busqueda.monto_cotizacion,
|
|
busqueda.condicion,busqueda.estado_orden
|
|
|
|
LET busqueda.avance = null
|
|
LET busqueda.fecha_avance= NULL
|
|
LET busqueda.monto_avance = NULL
|
|
|
|
|
|
|
|
SELECT MAX(a.num_doc),MAX(a.fecha_orig)
|
|
INTO busqueda.avance,busqueda.fecha_avance,
|
|
busqueda.monto_avance
|
|
FROM cctb00001 a
|
|
WHERE a.num_cheque = busqueda.cotizacion_no and
|
|
a.tipo_Doc = 'AV' and a.tipo_cliente = busqueda.tipo_cliente and
|
|
a.sec_cliente = busqueda.sec_cliente and a.status_t is null and
|
|
a.fecha_orig > '08/01/2009'
|
|
|
|
LET busqueda.codigo = busqueda.cod_n using "&&&&","-",
|
|
busqueda.cod_grupo USING "&&&&","-",
|
|
busqueda.cod_tipo USING "&&&&","-",
|
|
busqueda.cod_Sec USING "&&&&&&&"
|
|
|
|
|
|
|
|
LET selec1 =
|
|
" SELECT a.num_doc,CONVERT(CHAR(10),a.fecha,103),a.cod_mov,b.descrip_mov,a.cantidad_2,a.bodega,a.factura ",
|
|
" FROM iptb00006 a,iptb00005 b ",
|
|
" WHERE a.cod_mov = b.cod_mov AND ",
|
|
" a.num_oc = ",pnum_oc," AND ",
|
|
" a.cod_n = ",busqueda.cod_n," AND ",
|
|
" a.cod_grupo = ",busqueda.cod_grupo," AND ",
|
|
" a.cod_tipo = ",busqueda.cod_tipo, " AND ",
|
|
" a.cod_sec = ",busqueda.cod_sec," AND ",
|
|
" a.status_t IS NULL AND b.cod_mov in (30,31,55,12,13,56) ",
|
|
" ORDER BY a.fecha "
|
|
|
|
PREPARE transacciones FROM selec1
|
|
DECLARE trx_cursor CURSOR FOR transacciones
|
|
|
|
|
|
LET noencontre = "NO"
|
|
FOREACH trx_cursor INTO busqueda.documento,busqueda.fecha_doc,busqueda.cod_mov,
|
|
busqueda.cod_mov,busqueda.cantidad_2,busqueda.bodega,busqueda.factura
|
|
|
|
# BUSQUEDA FACTURA DE VENTAS
|
|
# LET busqueda.factura =NULL
|
|
# SELECT MAX(a.factura) INTO busqueda.factura
|
|
# FROM vetb00002 a
|
|
# WHERE a.conduce = busqueda.documento AND
|
|
# a.bodega = busqueda.bodega AND
|
|
# a.status_t IS NULL
|
|
|
|
IF busqueda.cantidad_2 IS NULL THEN
|
|
LET busqueda.cantidad_2 = 0
|
|
END IF
|
|
LET noencontre="SI"
|
|
OUTPUT TO REPORT reporte_16a(busqueda.*)
|
|
END FOREACH
|
|
|
|
IF noencontre = "NO" THEN
|
|
LET busqueda.documento=NULL
|
|
LET busqueda.cantidad_2=0
|
|
LET busqueda.fecha_doc=NULL
|
|
LET busqueda.cod_mov=NULL
|
|
LET busqueda.factura=NULL
|
|
|
|
OUTPUT TO REPORT reporte_16a(busqueda.*)
|
|
END IF
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
|
|
FINISH REPORT reporte_16a
|
|
END IF
|
|
|
|
END FUNCTION
|
|
|
|
REPORT reporte_16a(x)
|
|
|
|
DEFINE x RECORD
|
|
cotizacion_no INT,
|
|
fecha CHAR(10),
|
|
tipo_cliente SMALLINT,
|
|
sec_cliente INT,
|
|
nombre_proyecto CHAR(40),
|
|
direccion_proyecto CHAR(40),
|
|
telefono_r CHAR(15),
|
|
nombre CHAR(40),
|
|
num_oc INT,
|
|
fecha_oc CHAR(10),
|
|
fecha_entrega CHAR(10),
|
|
fecha_cierre CHAR(10),
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo SMALLINT,
|
|
cod_sec SMALLINT,
|
|
descrip_esp CHAR(100),
|
|
unidad_med CHAR(4),
|
|
cantidad DEC(12,5),
|
|
precio DEC(12,2),
|
|
cantidad_2 DEC(12,5),
|
|
cod_mov CHAR(60),
|
|
fecha_doc CHAR(10),
|
|
documento INT,
|
|
status_mov SMALLINT,
|
|
simbolo CHAR(6),
|
|
vendedor CHAR(50),
|
|
monto_cotizacion DEC(12,2),
|
|
condicion CHAR(30),
|
|
estado_orden CHAR(20),
|
|
avance CHAR(20),
|
|
monto_avance DEC(12,2),
|
|
fecha_avance CHAR(10),
|
|
codigo CHAR(31),
|
|
factura INT,
|
|
bodega SMALLINT
|
|
END RECORD,
|
|
|
|
balance DEC(12,5),
|
|
v CHAR(1),
|
|
codigoant CHAR(11)
|
|
|
|
ORDER BY x.cotizacion_no,x.num_oc,x.codigo
|
|
FORMAT
|
|
|
|
BEFORE GROUP OF x.cotizacion_no
|
|
|
|
|
|
PRINTX x.cotizacion_no,x.direccion_proyecto,x.nombre,x.nombre_proyecto,
|
|
x.tipo_cliente,x.sec_cliente,x.telefono_r,x.num_oc,x.fecha,x.fecha_cierre,
|
|
x.fecha_entrega,x.fecha_oc
|
|
|
|
BEFORE GROUP OF x.codigo
|
|
IF codigoant <> x.codigo THEN
|
|
LET codigoant = x.codigo
|
|
END IF
|
|
|
|
PRINTX x.codigo,x.descrip_esp,x.unidad_med
|
|
|
|
LET balance = x.cantidad
|
|
|
|
ON EVERY ROW
|
|
|
|
|
|
IF x.status_mov <> 3 THEN
|
|
LET balance = balance + x.cantidad_2
|
|
END IF
|
|
|
|
PRINTX x.cantidad,x.cantidad_2,x.cod_mov,x.fecha_Doc,
|
|
x.documento,balance,x.precio,x.simbolo,v,x.avance,x.fecha_avance,
|
|
x.monto_avance,x.vendedor,x.monto_cotizacion,x.condicion,x.status_mov,
|
|
x.estado_orden,x.factura
|
|
LET x.cantidad = 0
|
|
END REPORT
|
|
|
|
FUNCTION fparciales(xnum_oc,xcodn,xcodgrupo,xcodtipo,xcodsec,xfecha,xproducto)
|
|
DEFINE xcodn,xcodgrupo,xcodtipo,xcodsec,i1 SMALLINT,
|
|
xnum_oc INT,
|
|
xfecha DATE,
|
|
xproducto STRING
|
|
|
|
CALL arrparcial.clear()
|
|
|
|
OPEN WINDOW prfmwd015 AT 10,10 WITH FORM "prfmwd015"
|
|
DISPLAY xnum_oc TO num_oc
|
|
|
|
DISPLAY xproducto TO producto
|
|
|
|
|
|
DECLARE busca_parcial CURSOR FOR
|
|
SELECT CONVERT(CHAR(10),a.fecha_compromiso,103),a.cantidad FROM prtb00028 a
|
|
WHERE a.num_oc = xnum_oc AND
|
|
a.cod_n = xcodn AND
|
|
a.cod_grupo = xcodgrupo AND
|
|
a.cod_tipo = xcodtipo AND
|
|
a.cod_sec = xcodsec
|
|
|
|
LET i1 = 1
|
|
FOREACH busca_parcial INTO arrparcial[i1].*
|
|
|
|
LET i1 = i1 + 1
|
|
END FOREACH
|
|
CALL set_count(i1-1)
|
|
|
|
INPUT ARRAY arrparcial WITHOUT DEFAULTS FROM sparcial.*
|
|
AFTER FIELD fecha
|
|
LET i1 = arr_curr()
|
|
IF arrparcial[i1].fecha IS NOT NULL THEN
|
|
|
|
IF arrparcial[i1].fecha < xfecha THEN
|
|
CALL msg(64)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
END IF
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
CALL msg(2)
|
|
LET INT_FLAG = FALSE
|
|
EXIT INPUT
|
|
END IF
|
|
IF puesto = 'ADM PRODUCCION' OR puesto = 'ADMINISTRATOR' THEN
|
|
# WHENEVER ERROR CONTINUE
|
|
# BEGIN WORK
|
|
FOR idx = 1 TO arr_count()
|
|
IF arrparcial[idx].fecha IS NOT NULL THEN
|
|
DELETE FROM prtb00028 WHERE num_oc = xnum_oc AND
|
|
fecha_compromiso = arrparcial[idx].fecha AND
|
|
cod_n = xcodn AND
|
|
cod_grupo = xcodgrupo AND
|
|
cod_tipo = xcodtipo AND
|
|
cod_sec = xcodsec
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage("ERROR","NO PUDE ACTUALIZAR ENTREGAS PARCIALES","INFO")
|
|
EXIT FOR
|
|
END IF
|
|
INSERT INTO prtb00028 (num_oc,fecha_compromiso,cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,us_crea,fech_Crea)
|
|
VALUES(xnum_oc,arrparcial[idx].fecha,xcodn,xcodgrupo,xcodtipo,xcodsec,arrparcial[idx].cantidad,usuarios,getdate())
|
|
|
|
IF STATUS < 0 THEN
|
|
ROLLBACK WORK
|
|
CALL fgl_winmessage("ERROR","NO PUDE ACTUALIZAR ENTREGAS PARCIALES","INFO")
|
|
EXIT FOR
|
|
END IF
|
|
|
|
END IF
|
|
END FOR
|
|
# COMMIT WORK
|
|
END IF
|
|
EXIT INPUT
|
|
|
|
END INPUT
|
|
|
|
CLOSE WINDOW prfmwd015
|
|
|
|
END FUNCTION
|
|
FUNCTION desplega_dibujo(xnumero)
|
|
DEFINE xnumero INT,
|
|
desplega DYNAMIC ARRAY OF CHAR(100),
|
|
zruta,pruta STRING
|
|
|
|
OPEN WINDOW w1 WITH FORM "prfmmt012"
|
|
DECLARE busca_imagen CURSOR FOR
|
|
|
|
SELECT a.ruta_file,a.id
|
|
FROM prtb00029 a
|
|
WHERE a.num_oc = xnumero
|
|
ORDER BY a.id
|
|
|
|
LET idx = 1
|
|
FOREACH busca_imagen INTO desplega[idx]
|
|
|
|
LET idx = idx + 1
|
|
END FOREACH
|
|
CALL set_count(idx-1)
|
|
|
|
|
|
DISPLAY xnumero TO num_oc
|
|
DISPLAY ARRAY desplega TO sdibujo.*
|
|
BEFORE ROW
|
|
LET idx = arr_curr()
|
|
DISPLAY desplega[idx] TO imagen
|
|
AFTER ROW
|
|
LET idx = arr_curr()
|
|
DISPLAY desplega[idx] TO imagen
|
|
ON ACTION imprime
|
|
LET r_output='PDF'
|
|
LET preview = TRUE
|
|
LET r_filename ="prprmt011.4rp"
|
|
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
|
|
END IF
|
|
START REPORT rdibujo TO XML HANDLER HANDLER
|
|
LET pruta = desplega[idx] CLIPPED
|
|
CALL remplazachar(pruta) RETURNING zruta
|
|
OUTPUT TO REPORT rdibujo(zruta,xnumero)
|
|
FINISH REPORT rdibujo
|
|
|
|
AFTER DISPLAY
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
|
|
CLOSE WINDOW w1
|
|
|
|
END FUNCTION
|
|
REPORT rdibujo(xruta,znumero)
|
|
DEFINE xruta CHAR(150),
|
|
znumero, xtipo,xsec,xcotiza INT,
|
|
xfecha CHAR(10),
|
|
xcliente CHAR(60),
|
|
tiempo CHAR(30)
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET tiempo = current
|
|
SELECT a.tipo_cliente,a.sec_cliente,b.nombre,CONVERT(CHAR(10),a.fecha_oc,103),a.cotizacion_no
|
|
INTO xtipo,xsec,xcliente,xfecha,xcotiza
|
|
FROM prtb00012 a,vetb00004 b
|
|
WHERE a.num_oc = znumero AND
|
|
a.tipo_cliente = b.tipo_cliente AND
|
|
a.sec_cliente = b.sec_cliente
|
|
|
|
|
|
ON EVERY ROW
|
|
|
|
PRINTX xruta,xtipo,xsec,xcliente,xfecha,xcotiza,znumero,tiempo
|
|
END REPORT
|
|
REPORT rordenes(znumero,estado,estado_prod,xfecha_prod,vendedor,xcliente,xcotiza,xproducto,xfecha,xcantidad_ord,xpendiente,xcosto)
|
|
DEFINE estado CHAR(20),
|
|
estado_prod VARCHAR(50),
|
|
znumero, xcotiza INT,
|
|
xfecha CHAR(10),
|
|
xfecha_prod VARCHAR(10),
|
|
xcliente CHAR(60),
|
|
vendedor VARCHAR(60),
|
|
tiempo CHAR(25),
|
|
total_reg SMALLINT,
|
|
xproducto VARCHAR(100),
|
|
xcantidad_ord DEC(12,5),
|
|
xpendiente DEC(12,5),
|
|
xcosto, tmonto NUMERIC(12,2)
|
|
ORDER BY znumero
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET tiempo = CURRENT
|
|
LET total_reg =0
|
|
ON EVERY ROW
|
|
LET tmonto = tmonto + xcosto
|
|
PRINTX znumero,estado,estado_prod,xfecha_prod,vendedor,xcliente,xfecha,xcotiza,tiempo,xproducto,
|
|
xcantidad_ord,xpendiente,xcosto
|
|
AFTER GROUP OF znumero
|
|
LET total_reg=total_reg+1
|
|
|
|
ON LAST ROW
|
|
PRINTX total_reg, tmonto
|
|
END REPORT
|
|
FUNCTION verificaordenNoAutorizada(pnum_oc)
|
|
DEFINE pnum_oc INT,
|
|
existe BOOLEAN
|
|
|
|
SELECT DISTINCT a.num_oc FROM cctb00026 a,cctb00025 b
|
|
WHERE a.num_oc = pnum_oc AND
|
|
a.num_req=b.num_req AND b.estado = 'NO AUTORIZADA' AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
LET existe = FALSE
|
|
ELSE
|
|
LET existe = TRUE
|
|
END IF
|
|
RETURN existe
|
|
END FUNCTION
|
|
|
|
|
|
FUNCTION verificaordenAutorizada(pnum_oc)
|
|
DEFINE pnum_oc INT,
|
|
existe BOOLEAN
|
|
|
|
SELECT DISTINCT a.num_oc FROM cctb00026 a,cctb00025 b
|
|
WHERE a.num_oc = pnum_oc AND
|
|
a.num_req=b.num_req AND b.estado = 'AUTORIZADA' AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
LET existe = FALSE
|
|
ELSE
|
|
LET existe = TRUE
|
|
END IF
|
|
RETURN existe
|
|
END FUNCTION
|
|
|
|
|
|
FUNCTION verificaordenNoReq(pnum_oc)
|
|
DEFINE pnum_oc INT,
|
|
existe BOOLEAN
|
|
|
|
SELECT DISTINCT a.num_oc FROM cctb00026 a,cctb00025 b
|
|
WHERE a.num_oc = pnum_oc AND
|
|
a.num_req=b.num_req AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
LET existe = TRUE
|
|
ELSE
|
|
LET existe = FALSE
|
|
END IF
|
|
RETURN existe
|
|
END FUNCTION
|
|
|
|
FUNCTION vepcmf008(num_cotizacion)
|
|
DEFINE chanula CHAR(3), salida STRING
|
|
DEFINE num_cotizacion INT, comprobante VARCHAR(100), psincroniza BOOLEAN, tbodega STRING
|
|
|
|
|
|
LET SELEC = " SELECT DISTINCT a.cod_cia,a.ventas,a.cotizacion_no,a.tipo_cliente,a.sec_cliente,a.nombre_cliente, " ||
|
|
" a.rnc,a.nombre_proyecto,a.direccion_cliente,a.cod_provincia,a.direccion_proyecto, " ||
|
|
" a.telefono_r,a.telefono_o,a.email,a.tipo_precio,a.beeper,a.celular,a.prima,a.fax1,a.celular1, " ||
|
|
" a.fax, CONVERT(CHAR(10),a.fecha,103),CONVERT(CHAR(10),a.fecha_entrega,103), " ||
|
|
" a.plazo_entrega,a.comentario,a.contacto, a.cond_pago,a.sec_Vend,a.porc_itbi," ||
|
|
" a.total_bruto,a.sub_total,a.monto_Desc,a.monto_itbi,a.total_neto,a.monto_dolar,a.num_emp_inst, " ||
|
|
" a.codigo_dgii,a.tipo_ncf,a.cliente_generico,a.sec_vend_aux,a.codigo,a.cod_zona,a.sincronizado, "||
|
|
" a.us_crea,a.fech_crea, a.us_mod,a.fech_mod,a.bodega,a.titulo_bodega "||
|
|
" FROM vetb00050 a " ||
|
|
" WHERE a.cotizacion_no = " || num_cotizacion CLIPPED || " AND a.status_t is null ",
|
|
" ORDER BY a.cotizacion_no"
|
|
|
|
PREPARE busca2 FROM selec
|
|
EXECUTE busca2 INTO p_vetb50.cod_cia,p_vetb50.ventas,p_vetb50.cotizacion_no,p_vetb50.tipo_cliente,p_vetb50.sec_cliente,p_vetb50.nombre_cliente,
|
|
p_vetb50.rnc,p_vetb50.nombre_proyecto,p_vetb50.direccion_cliente,p_vetb50.cod_provincia,p_vetb50.direccion_proyecto,
|
|
p_vetb50.telefono_r,p_vetb50.telefono_o,p_vetb50.email,p_vetb50.tipo_precio,p_vetb50.beeper,p_vetb50.celular,p_vetb50.prima,p_vetb50.fax1,p_vetb50.celular1,
|
|
p_vetb50.fax, p_vetb50.fecha,p_vetb50.fecha_entrega,
|
|
p_vetb50.plazo_entrega,p_vetb50.comentario,p_vetb50.contacto, p_vetb50.cond_pago,p_vetb50.sec_Vend,p_vetb50.porc_itbi,
|
|
p_vetb50.total_bruto,p_vetb50.sub_total,p_vetb50.monto_Desc,p_vetb50.monto_itbi,p_vetb50.total_neto,p_vetb50.monto_dolar,
|
|
p_vetb50.num_emp_inst,p_vetb50.codigo_dgii,comprobante,
|
|
p_vetb50.cliente_generico,p_vetb50.sec_vend_aux,p_vetb50.codigo,p_vetb50.cod_zona,
|
|
psincroniza,
|
|
p_vetb50.us_crea,p_vetb50.fech_crea,p_vetb50.us_mod,p_vetb50.fech_mod,p_vetb50.bodega,tbodega
|
|
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
RETURN
|
|
END IF
|
|
|
|
CALL asignavalores()
|
|
|
|
LET data_imp.bodega = p_Vetb50.bodega
|
|
LET data_imp.tbodega = tbodega
|
|
|
|
CALL impresion(data_imp.*,'veprmt049.4rp','PDF',container.cuenta_item,container.etiqueta_cotiza) RETURNING salida
|
|
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION asignavalores()
|
|
LET data_imp.cotizacion_no = p_vetb50.cotizacion_no
|
|
LET data_imp.tipo_cliente = p_vetb50.tipo_cliente
|
|
LET data_imp.sec_cliente = p_vetb50.sec_cliente
|
|
LET data_imp.direccion_cliente = p_vetb50.direccion_cliente
|
|
LET data_imp.nombre = p_vetb50.nombre_cliente
|
|
LET data_imp.contacto = p_vetb50.contacto
|
|
LET data_imp.nombre_proyecto = p_vetb50.nombre_proyecto
|
|
LET data_imp.direccion_proyecto = p_vetb50.direccion_proyecto
|
|
LET data_imp.cond_pago = p_vetb50.cond_pago
|
|
LET data_imp.fecha = p_vetb50.fecha
|
|
LET data_imp.sec_vend = p_Vetb50.sec_vend
|
|
LET data_imp.nombre_cliente = p_vetb50.nombre_cliente
|
|
LET data_imp.total_neto = p_vetb50.total_neto
|
|
LET data_imp.comentario = p_vetb50.comentario
|
|
|
|
LET data_imp.nombre_vend = container.vendedor
|
|
LET data_imp.rnc = p_vetb50.rnc
|
|
LET data_imp.telefono_o =p_vetb50.telefono_o
|
|
LET data_imp.telefono_r = p_vetb50.telefono_r
|
|
LET data_imp.celular = p_vetb50.celular
|
|
LET data_imp.celular1 = p_vetb50.celular1
|
|
LET data_imp.email = p_vetb50.email
|
|
LET data_imp.orden =container.orden
|
|
LET data_imp.plazo_entrega = p_vetb50.plazo_entrega
|
|
LET data_imp.num_emp_int = p_vetb50.num_emp_inst
|
|
|
|
LET data_imp.sub_total = p_vetb50.sub_total
|
|
LET data_imp.monto_desc = p_vetb50.monto_desc
|
|
LET data_imp.porc_itbis = p_vetb50.porc_itbi
|
|
LET data_imp.neto = p_vetb50.total_neto
|
|
LET data_imp.total_bruto = p_vetb50.total_bruto
|
|
LET data_imp.vendedor_aux = p_vetb50.sec_vend_aux
|
|
LET data_imp.monto_itbis = p_vetb50.monto_itbi
|
|
END FUNCTION |