Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,279 @@
|
||||
{=====================================================
|
||||
FUNCION : REPORTE DESPACHO TRANSPORTE
|
||||
OBJETIVO : ***************************
|
||||
PROGRAMADOR : Valentin Rodriguez
|
||||
FECHA :
|
||||
=====================================================}
|
||||
SCHEMA "smarmotech"
|
||||
GLOBALS "prprgb000.4gl"
|
||||
|
||||
DEFINE datos RECORD
|
||||
fecha_inicial DATE,
|
||||
fecha_final DATE,
|
||||
tiporeporte VARCHAR(50)
|
||||
END RECORD,
|
||||
pcompanias RECORD LIKE companias.*,
|
||||
valorOrden FLOAT
|
||||
|
||||
DEFINE despachos RECORD
|
||||
orden LIKE iptb00006.num_oc,
|
||||
cotizacion LIKE vetb00050.cotizacion_no,
|
||||
conduce LIKE iptb00006.num_doc,
|
||||
movimiento LIKE iptb00006.cod_mov,
|
||||
bodega LIKE intb00009.descripcion,
|
||||
cliente LIKE vetb00050.nombre_cliente,
|
||||
direccion LIKE vetb00050.direccion_cliente,
|
||||
provincia LIKE vetb00020.nombre_provincia,
|
||||
conductor LIKE vetb00015.nombre,
|
||||
placa LIKE iptb00006.placa,
|
||||
precio LIKE vetb00051.precio,
|
||||
cantidad LIKE vetb00051.cantidad,
|
||||
tasa LIKE cgtb00084.tasa,
|
||||
descuento LIKE vetb00051.porc_desc,
|
||||
moneda CHAR(4),
|
||||
desc_tranporte LIKE vetb00051.descripcion,
|
||||
factura INT
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CONNECT TO "smarmotech" USER usuarios USING clave
|
||||
SELECT * INTO pcompanias.* FROM companias
|
||||
CALL despachoTransporte()
|
||||
END MAIN
|
||||
|
||||
FUNCTION despachoTransporte()
|
||||
|
||||
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
|
||||
criterio STRING
|
||||
|
||||
OPEN WINDOW HOME_FRM WITH FORM 'prfmrp019'
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
INPUT BY NAME datos .*
|
||||
|
||||
--AFTER FIELD fecha_inicial
|
||||
--IF datos.fecha_inicial IS NULL THEN
|
||||
--CALL fgl_winmessage("INFO", "DEBE INDICAR UNA FECHA INICIAL DE BUSQUEDA", "INFO")
|
||||
--NEXT FIELD fecha_inicial
|
||||
--END IF
|
||||
|
||||
AFTER FIELD fecha_final
|
||||
--IF datos.fecha_final IS NULL THEN
|
||||
--CALL fgl_winmessage("INFO", "DEBE INDICAR UNA FECHA FINAL DE BUSQUEDA", "INFO")
|
||||
--NEXT FIELD fecha_final
|
||||
--END IF
|
||||
IF datos.fecha_inicial IS NULL AND DATOS.fecha_final IS NOT NULL THEN
|
||||
CALL fgl_winmessage("INFO", "SI ESPECIFICA UN RANGO DE FECHA DEBE INDICAR FECHA INICIAL", "INFO")
|
||||
NEXT FIELD fecha_inicial
|
||||
END IF
|
||||
|
||||
IF datos.fecha_final < datos.fecha_inicial THEN
|
||||
CALL fgl_winmessage("INFO", "LA FECHA FINAL DEBE SER MAS RECIENTE A LA INICIAL", "INFO")
|
||||
NEXT FIELD fecha_final
|
||||
END IF
|
||||
END INPUT
|
||||
CONSTRUCT BY NAME criterio ON
|
||||
a.cod_n, a.cod_grupo, a.cod_tipo, a.cod_sec, x.tipo_cliente,x.sec_cliente,a.num_oc, a.num_doc
|
||||
ON ACTION mostrar
|
||||
LET selec =
|
||||
" select a.num_oc, g.cotizacion_no, a.num_doc, a.cod_mov, b.descripcion, x.nombre, RTRIM(x1.calle)+' '+x1.urbanizacion, h.descrip,
|
||||
cast(e.cod_transp as char(4))+'-'+cast(e.sec_transp as char(10))+' '+e.nombre, isnull(a.placa, 'NO PLACA'), sum(f.precio*f.cantidad),sum(f.cantidad), k.tasa,
|
||||
sum((f.precio*f.cantidad)*(f.cantidad_2/100)),m.simbolo,x2.descrip_esp
|
||||
from iptb00006 a
|
||||
inner join intb00009 b ON b.cod_bodega = a.bodega
|
||||
inner join iptb00002 x2 ON x2.cod_n = a.cod_n and x2.cod_grupo = a.cod_grupo and x2.cod_tipo = a.cod_tipo and x2.cod_sec = a.cod_sec
|
||||
inner join vetb00004 x ON x.tipo_cliente = a.cod_sp AND x.sec_cliente = a.cod_sp_sec
|
||||
inner join vetb00005 x1 ON x.tipo_cliente = x1.tipo_cliente and x.sec_cliente = x1.sec_cliente
|
||||
inner join vetb00002 g ON g.orden = a.num_oc and g.status_t is null
|
||||
inner join vetb00003 f on a.cod_n = f.cod_n and a.cod_grupo = f.cod_grupo and a.cod_tipo = f.cod_tipo and a.cod_sec = f.cod_sec and
|
||||
f.factura = g.factura and f.factura = a.factura AND f.status_t is null
|
||||
|
||||
inner join vetb00061 m on g.ventas = m.ventas
|
||||
LEFT OUTER JOIN vetb00015 e on a.cod_transp = e.cod_transp and a.sec_transp = e.sec_transp and e.status_t is null
|
||||
LEFT OUTER JOIN vetb00008 h on h.cod_zona = x.cod_zona and h.status_t is null
|
||||
LEFT OUTER join cgtb00084 k on x.tipo_cliente = k.tipo_cliente and g.ventas = k.ventas and k.ano = ",YEAR(datos.fecha_final),
|
||||
" and k.mes = ",MONTH(datos.fecha_final),
|
||||
|
||||
" where
|
||||
a.fecha BETWEEN '",datos.fecha_inicial USING "MM/DD/YYYY","' and '",datos.fecha_final USING "MM/DD/YYYY",
|
||||
"' and ",
|
||||
" a.cod_n in (25) and a.cod_mov in (30,31,55) and ", criterio CLIPPED,
|
||||
|
||||
" group by a.num_oc, g.cotizacion_no, a.num_doc, a.cod_mov, b.descripcion, x.nombre, RTRIM(x1.calle)+' '+x1.urbanizacion, h.descrip, e.nombre,
|
||||
a.placa, k.tasa, m.simbolo,x2.descrip_esp
|
||||
order by a.num_oc "
|
||||
|
||||
PREPARE comando FROM selec
|
||||
DECLARE reservas CURSOR FOR comando
|
||||
|
||||
LET idx = 1
|
||||
FOREACH reservas INTO despachos.*
|
||||
|
||||
LET valorOrden = (despachos.precio - despachos.descuento)*despachos.tasa
|
||||
|
||||
IF idx = 1 THEN
|
||||
|
||||
IF datos.tiporeporte = 'DE' THEN
|
||||
|
||||
LET r_filename ="prprrp019.4rp"
|
||||
|
||||
ELSE
|
||||
|
||||
LET r_filename ="prprrp019a.4rp"
|
||||
|
||||
END IF
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
|
||||
--LET r_output='SVG'
|
||||
LET preview=1
|
||||
CALL seleccionarsalida() RETURNING r_output
|
||||
CALL fgl_report_selectDevice(r_output) -- changing default
|
||||
CALL fgl_report_selectPreview(preview) -- changing default
|
||||
LET handler = fgl_report_commitCurrentSettings() -- commit changes
|
||||
IF datos.tiporeporte = "DE" THEN
|
||||
START REPORT reserva_rpt TO XML HANDLER HANDLER
|
||||
ELSE
|
||||
START REPORT resumen TO XML HANDLER HANDLER
|
||||
END IF
|
||||
END IF
|
||||
LET idx = 2
|
||||
END IF
|
||||
IF datos.tiporeporte = 'DE' THEN
|
||||
OUTPUT TO REPORT reserva_rpt(despachos.*, datos.*, valorOrden)
|
||||
ELSE
|
||||
|
||||
OUTPUT TO REPORT resumen(despachos.*)
|
||||
END IF
|
||||
END FOREACH
|
||||
|
||||
IF idx > 1 THEN
|
||||
IF datos.tiporeporte = "DE" THEN
|
||||
FINISH REPORT reserva_rpt
|
||||
ELSE
|
||||
FINISH REPORT resumen
|
||||
END IF
|
||||
ELSE
|
||||
CALL fgl_winmessage("INFO", "NO HAY REGISTROS EN ESTE RANGO DE FECHA Y CON LOS PARAMETROS INDICADOS", "INFO")
|
||||
NEXT FIELD fecha_final
|
||||
END IF
|
||||
END CONSTRUCT
|
||||
#"file:///e:/marmotechc/imagenes/genero_logo.png"
|
||||
ON ACTION CANCEL
|
||||
CALL msg(2)
|
||||
LET INT_FLAG = FALSE
|
||||
EXIT PROGRAM
|
||||
END DIALOG
|
||||
CLOSE WINDOW HOME_FRM
|
||||
END FUNCTION
|
||||
|
||||
REPORT reserva_rpt(x, y, vOrden)
|
||||
|
||||
DEFINE x RECORD
|
||||
orden LIKE iptb00006.num_oc,
|
||||
cotizacion LIKE vetb00050.cotizacion_no,
|
||||
conduce LIKE iptb00006.num_doc,
|
||||
movimiento LIKE iptb00006.cod_mov,
|
||||
bodega LIKE intb00009.descripcion,
|
||||
cliente LIKE vetb00050.nombre_cliente,
|
||||
direccion LIKE vetb00050.direccion_cliente,
|
||||
provincia LIKE vetb00020.nombre_provincia,
|
||||
conductor LIKE vetb00015.nombre,
|
||||
placa LIKE iptb00006.placa,
|
||||
precio LIKE vetb00051.precio,
|
||||
cantidad LIKE vetb00051.cantidad,
|
||||
tasa LIKE cgtb00084.tasa,
|
||||
descuento LIKE vetb00051.porc_desc,
|
||||
moneda CHAR(4),
|
||||
desc_tranporte LIKE vetb00051.descripcion,
|
||||
factura INT
|
||||
END RECORD
|
||||
|
||||
DEFINE y RECORD
|
||||
fecha_inicial DATE,
|
||||
fecha_final DATE,
|
||||
tiporeporte VARCHAR(50)
|
||||
END RECORD,
|
||||
fecha_reporte, rango_fecha CHAR(30),
|
||||
total_orden, vOrden FLOAT,
|
||||
dir_cliente VARCHAR(100),
|
||||
cond_mov CHAR(35),
|
||||
Scosto VARCHAR(20),
|
||||
ScostoT VARCHAR(20)
|
||||
|
||||
ORDER BY x.orden,x.desc_tranporte
|
||||
FORMAT
|
||||
|
||||
BEFORE GROUP OF x.desc_tranporte
|
||||
PRINTX x.desc_tranporte
|
||||
|
||||
BEFORE GROUP OF x.orden
|
||||
LET total_orden = 0
|
||||
LET ScostoT = ""
|
||||
PRINTX x.orden, x.movimiento
|
||||
|
||||
ON EVERY ROW
|
||||
LET fecha_reporte = CURRENT
|
||||
LET dir_cliente = x.direccion CLIPPED,',','(',x.provincia CLIPPED,')'
|
||||
LET rango_fecha = y.fecha_inicial,'--',y.fecha_final
|
||||
LET cond_mov = x.bodega,'-',x.conduce USING "<<<<<<",'-',x.factura USING "<<<<<<<",
|
||||
x.movimiento USING "<<<<<" CLIPPED,"-Tasa:",x.tasa USING "<<.##"
|
||||
LET Scosto = 'RD$',vOrden USING "<<<,<<<.##" CLIPPED
|
||||
|
||||
PRINTX cond_mov, x.cliente, dir_cliente, x.conductor, x.placa,
|
||||
Scosto, x.moneda, vOrden, pcompanias.nombre, fecha_reporte, rango_fecha
|
||||
|
||||
AFTER GROUP OF x.orden
|
||||
LET total_orden = GROUP SUM(vOrden)
|
||||
LET ScostoT = x.moneda,total_orden USING "<<<,<<<.##" CLIPPED
|
||||
PRINTX ScostoT
|
||||
END REPORT
|
||||
|
||||
REPORT resumen(x)
|
||||
|
||||
DEFINE x RECORD
|
||||
orden LIKE iptb00006.num_oc,
|
||||
cotizacion LIKE vetb00050.cotizacion_no,
|
||||
conduce LIKE iptb00006.num_doc,
|
||||
movimiento LIKE iptb00006.cod_mov,
|
||||
bodega LIKE intb00009.descripcion,
|
||||
cliente LIKE vetb00050.nombre_cliente,
|
||||
direccion LIKE vetb00050.direccion_cliente,
|
||||
provincia LIKE vetb00020.nombre_provincia,
|
||||
conductor LIKE vetb00015.nombre,
|
||||
placa LIKE iptb00006.placa,
|
||||
precio LIKE vetb00051.precio,
|
||||
cantidad LIKE vetb00051.cantidad,
|
||||
tasa LIKE cgtb00084.tasa,
|
||||
descuento LIKE vetb00051.porc_desc,
|
||||
moneda CHAR(4),
|
||||
desc_tranporte LIKE vetb00051.descripcion,
|
||||
factura INT
|
||||
END RECORD,
|
||||
mvalor,tvalor,bvalor,ttvalor FLOAT,
|
||||
fecha_reporte,rango_fecha STRING
|
||||
|
||||
|
||||
ORDER BY x.bodega,x.desc_tranporte
|
||||
FORMAT
|
||||
FIRST PAGE HEADER
|
||||
LET fecha_reporte = CURRENT
|
||||
PRINTX fecha_reporte,pcompanias.nombre,rango_Fecha
|
||||
AFTER GROUP OF x.bodega
|
||||
LET rango_fecha = datos.fecha_inicial,'--',datos.fecha_final
|
||||
LET bvalor = GROUP SUM(x.precio*x.cantidad)
|
||||
PRINTX bvalor,x.bodega
|
||||
|
||||
AFTER GROUP OF x.desc_tranporte
|
||||
LET tvalor = GROUP SUM(x.precio*x.cantidad)
|
||||
PRINTX x.desc_tranporte,tvalor
|
||||
|
||||
|
||||
ON LAST ROW
|
||||
LET ttvalor = SUM(x.precio*x.cantidad)
|
||||
PRINTX ttvalor
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user