Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,368 @@
|
||||
{
|
||||
==============================================================================
|
||||
PROGRAMA : PRPRRP116
|
||||
SISTEMA : PRODUCCION
|
||||
OBJETIVO : LISTAR ORDENES DE PRODUCCION
|
||||
AUTOR : JUAN F. SOTO
|
||||
FECHA : SEPTIEMBRE 9, 2010
|
||||
==============================================================================
|
||||
}
|
||||
|
||||
GLOBALS
|
||||
"prprgb000.4gl"
|
||||
DEFINE rango RECORD
|
||||
fecha_inicial DATE,
|
||||
fecha_final DATE
|
||||
END RECORD,
|
||||
porpantalla CHAR(1)
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
CALL ARG_VAL(4) RETURNING copia
|
||||
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
SELECT a.* INTO p_compania.* FROM companias a
|
||||
CALL prprrp016()
|
||||
END MAIN
|
||||
|
||||
|
||||
FUNCTION prprrp016()
|
||||
DEFINE opcion CHAR(1),
|
||||
cantidad_f,cantidad_o DECIMAL(12,2),cant_orden INTEGER
|
||||
|
||||
DEFINE 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 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(40),
|
||||
unidad_med CHAR(4),
|
||||
cantidad DEC(12,3),
|
||||
precio DEC(12,2),
|
||||
cantidad_2 DEC(12,3),
|
||||
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(25),
|
||||
telefono VARCHAR(15),
|
||||
celular VARCHAR(15),
|
||||
email VARCHAR(80) ,
|
||||
contacto LIKE vetb00050.contacto
|
||||
END RECORD,
|
||||
salida,visualiza CHAR(20)
|
||||
|
||||
OPTIONS
|
||||
PROMPT LINE 23,
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23
|
||||
|
||||
OPEN FORM prfmrp016 FROM "prfmrp116"
|
||||
DISPLAY FORM prfmrp016
|
||||
|
||||
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
|
||||
|
||||
CONSTRUCT BY NAME criterio ON a.cotizacion_no,c.num_oc,c.cerrada,a.sec_vend,a.fecha,a.tipo_cliente,a.sec_cliente,
|
||||
a.nombre_cliente,a.telefono_r,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec
|
||||
|
||||
END CONSTRUCT
|
||||
|
||||
INPUT BY NAME salida,visualiza,historico
|
||||
|
||||
END INPUT
|
||||
ON ACTION ejecutar
|
||||
|
||||
IF historico = 'N' THEN
|
||||
LET selec =
|
||||
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),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),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
|
||||
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad_2,g.descrip_mov + '('+ cast(g.cod_mov as char(3))+')', ",
|
||||
" CONVERT(CHAR(10),f.fecha,103),f.num_doc,g.status_mov,i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
|
||||
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
|
||||
"FROM vetb00050 a inner join ",
|
||||
" seg0007 l on l.usuario = SUSER_SNAME() AND a.sec_vend = l.sec_vend inner join ",
|
||||
"vetb00012 k on a.cond_pago = k.cond_pago inner join ",
|
||||
"vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
|
||||
"vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
|
||||
" inner join vetb00061 i on a.ventas = i.ventas ",
|
||||
"inner join adtb00003 j on a.sec_vend = j.num_emp ",
|
||||
"left outer join ",
|
||||
"prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
|
||||
"a.cotizacion_no = c.cotizacion_no and c.status_t is null left outer join ",
|
||||
"iptb00006 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
|
||||
"cast(c.num_oc as char(6)) = f.conduce_no and f.cod_mov in (30,31,55,12,13) inner join ",
|
||||
"iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
|
||||
"left outer join ",
|
||||
"iptb00005 g on f.cod_mov = g.cod_mov ",
|
||||
"WHERE ",criterio clipped,
|
||||
" and a.status_t is null and f.status_t is null ",
|
||||
# "ORDER BY a.cotizacion_no,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec,f.fecha,f.cod_mov,f.num_doc",
|
||||
" UNION ",
|
||||
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),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),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
|
||||
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad,'FACTURA VENTA', ",
|
||||
" CONVERT(CHAR(10),g.fecha_factura,103),f.factura,'3',i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
|
||||
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
|
||||
"FROM vetb00050 a inner join ",
|
||||
" seg0007 l on l.usuario = SUSER_SNAME() AND a.sec_vend = l.sec_vend inner join ",
|
||||
"vetb00012 k on a.cond_pago = k.cond_pago inner join ",
|
||||
"vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
|
||||
"vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
|
||||
" inner join vetb00061 i on a.ventas = i.ventas ",
|
||||
"inner join adtb00003 j on a.sec_vend = j.num_emp ",
|
||||
"left outer join ",
|
||||
"prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
|
||||
"a.cotizacion_no = c.cotizacion_no left outer join ",
|
||||
"vetb00002 g on ",
|
||||
" g.orden = c.num_oc inner join ",
|
||||
"vetb00003 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
|
||||
" f.factura = g.factura inner join ",
|
||||
"iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
|
||||
"WHERE ",criterio clipped,
|
||||
" and a.status_t is null and f.status_t is null "
|
||||
# "ORDER BY a.cotizacion_no,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec,f.fecha,f.cod_mov,f.num_doc"
|
||||
|
||||
ELSE
|
||||
|
||||
LET selec =
|
||||
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),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),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
|
||||
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad_2,g.descrip_mov + '('+ cast(g.cod_mov as char(3))+')', ",
|
||||
" CONVERT(CHAR(10),f.fecha,103),f.num_doc,g.status_mov,i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
|
||||
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
|
||||
"FROM historicoMTECH.dbo.vetb00050 a inner join ",
|
||||
" historicoMTECH.dbo.vetb00012 k on a.cond_pago = k.cond_pago inner join ",
|
||||
"historicoMTECH.dbo.vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
|
||||
"historicoMTECH.dbo.vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
|
||||
" inner join historicoMTECH.dbo.vetb00061 i on a.ventas = i.ventas ",
|
||||
"inner join historicoMTECH.dbo.adtb00003 j on a.sec_vend = j.num_emp ",
|
||||
"left outer join ",
|
||||
"historicoMTECH.dbo.prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
|
||||
"a.cotizacion_no = c.cotizacion_no and c.status_t is null left outer join ",
|
||||
"historicoMTECH.dbo.iptb00006 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
|
||||
"cast(c.num_oc as char(6)) = f.conduce_no and f.cod_mov in (30,31,55,12,13) inner join ",
|
||||
"historicoMTECH.dbo.iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
|
||||
"left outer join ",
|
||||
"historicoMTECH.dbo.iptb00005 g on f.cod_mov = g.cod_mov ",
|
||||
"WHERE ",criterio clipped,
|
||||
" and a.status_t is null and f.status_t is null ",
|
||||
|
||||
" UNION ",
|
||||
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),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),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
|
||||
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad,'FACTURA VENTA', ",
|
||||
" CONVERT(CHAR(10),g.fecha_factura,103),f.factura,'3',i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
|
||||
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
|
||||
"FROM historicoMTECH.dbo.vetb00050 a inner join ",
|
||||
"historicoMTECH.dbo.vetb00012 k on a.cond_pago = k.cond_pago inner join ",
|
||||
"historicoMTECH.dbo.vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
|
||||
"historicoMTECH.dbo.vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
|
||||
" inner join historicoMTECH.dbo.vetb00061 i on a.ventas = i.ventas ",
|
||||
"inner join historicoMTECH.dbo.adtb00003 j on a.sec_vend = j.num_emp ",
|
||||
"left outer join ",
|
||||
"historicoMTECH.dbo.prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
|
||||
"a.cotizacion_no = c.cotizacion_no left outer join ",
|
||||
"historicoMTECH.dbo.vetb00002 g on ",
|
||||
" g.orden = c.num_oc inner join ",
|
||||
"historicoMTECH.dbo.vetb00003 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
|
||||
" f.factura = g.factura inner join ",
|
||||
"historicoMTECH.dbo.iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
|
||||
"WHERE ",criterio clipped,
|
||||
" and a.status_t is null and f.status_t is null "
|
||||
|
||||
END IF
|
||||
PREPARE comando FROM selec
|
||||
DECLARE busca CURSOR FOR comando
|
||||
|
||||
LET r_filename = salida CLIPPED
|
||||
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
||||
LET r_output=visualiza 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_16 TO XML HANDLER handler
|
||||
|
||||
|
||||
|
||||
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.cantidad_2,busqueda.cod_mov,
|
||||
busqueda.fecha_doc,busqueda.documento,busqueda.status_mov,
|
||||
busqueda.simbolo,busqueda.vendedor,busqueda.monto_cotizacion,
|
||||
busqueda.condicion,busqueda.estado_orden,busqueda.telefono,
|
||||
busqueda.celular,busqueda.email,busqueda.contacto
|
||||
|
||||
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL fgl_winmessage("WARNING","NO EXISTEN REGISTROS CON ESA CONDICION","SOP")
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
IF busqueda.cantidad_2 IS NULL THEN
|
||||
LET busqueda.cantidad_2 = 0
|
||||
END IF
|
||||
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 "&&&&"
|
||||
IF busqueda.estado_orden = "N" THEN
|
||||
LET busqueda.estado_orden = "ABIERTA"
|
||||
END IF
|
||||
IF busqueda.estado_orden = "S" THEN
|
||||
LET busqueda.estado_orden = "CERRADA"
|
||||
END IF
|
||||
|
||||
OUTPUT TO REPORT reporte_16(busqueda.*)
|
||||
END FOREACH
|
||||
FINISH REPORT reporte_16
|
||||
END IF
|
||||
|
||||
|
||||
AFTER DIALOG
|
||||
IF int_flag THEN
|
||||
CALL msg(2)
|
||||
LET int_flag = false
|
||||
RETURN
|
||||
END IF
|
||||
IF salida IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD salida
|
||||
END IF
|
||||
|
||||
IF visualiza IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD visualiza
|
||||
END IF
|
||||
|
||||
ON ACTION CANCEL
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT DIALOG
|
||||
|
||||
END DIALOG
|
||||
|
||||
END FUNCTION
|
||||
|
||||
REPORT reporte_16(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(40),
|
||||
unidad_med CHAR(4),
|
||||
cantidad DEC(12,3),
|
||||
precio DEC(12,2),
|
||||
cantidad_2 DEC(12,3),
|
||||
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(25),
|
||||
telefono VARCHAR(15),
|
||||
celular VARCHAR(15),
|
||||
email VARCHAR(80),
|
||||
contacto LIKE vetb00050.contacto
|
||||
END RECORD,
|
||||
|
||||
balance DEC(12,3),
|
||||
v CHAR(1)
|
||||
|
||||
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_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
|
||||
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.nombre,x.cantidad,x.cantidad_2,x.cod_mov,x.fecha_Doc,p_compania.nombre,
|
||||
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.telefono,x.celular,x.email,x.contacto
|
||||
LET x.cantidad = 0
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user