Mueve ipdir (Productos Terminados) de PROYECTOS a PROYECTO
Instruccion de Johnny: todos los directorios de fuentes de inventario deben migrarse de la carpeta temporal PROYECTOS a la carpeta real PROYECTO, ya que PROYECTOS sera eliminada. Se elimino tambien un archivo suelto sin relacion llamado "ipdir" que existia en PROYECTO (del commit inicial) y bloqueaba el nombre de la carpeta. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,218 @@
|
||||
{
|
||||
===============================================================
|
||||
PROGRAMA : IPPRRP053
|
||||
OBJETIVO : INFORME TRANSACCIONES INVENTARIOS
|
||||
DESARROLLADOR : Ing. Elvis Garcia
|
||||
===============================================================
|
||||
}
|
||||
|
||||
GLOBALS "ipprgb000.4gl"
|
||||
|
||||
DEFINE
|
||||
fecha1 DATE,
|
||||
fecha2 DATE,
|
||||
inv DYNAMIC ARRAY OF RECORD
|
||||
fecha DATE,
|
||||
numero_doc STRING,
|
||||
almacen STRING,
|
||||
producto STRING,
|
||||
cantidad DECIMAL(18, 5),
|
||||
costo_standard DECIMAL(18, 5),
|
||||
codigo_mov INT,
|
||||
descripcion_mov STRING
|
||||
END RECORD,
|
||||
idx INT,
|
||||
query STRING
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT TO "smarmotech" USER usuarios USING clave
|
||||
|
||||
CALL ipprrp053()
|
||||
END MAIN
|
||||
|
||||
FUNCTION ipprrp053()
|
||||
|
||||
OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
OPEN FORM ipfmrp053 FROM "ipfmrp053"
|
||||
DISPLAY FORM ipfmrp053
|
||||
|
||||
INPUT BY NAME fecha1, fecha2
|
||||
|
||||
BEFORE INPUT
|
||||
INITIALIZE fecha1, fecha2 TO NULL
|
||||
|
||||
AFTER FIELD fecha1
|
||||
IF fecha1 IS NULL OR fecha1 > TODAY THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD fecha1
|
||||
END IF
|
||||
LET fecha2 = TODAY
|
||||
DISPLAY BY NAME fecha2
|
||||
|
||||
AFTER FIELD fecha2
|
||||
IF fecha2 IS NULL OR fecha2 < fecha1 THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD fecha1
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
LET idx = 1
|
||||
|
||||
LET query =
|
||||
"SELECT",
|
||||
" DATEFROMPARTS(a.ano, a.mes_orden, 1),",
|
||||
" a.numero_doc,",
|
||||
" ISNULL(a.origen, ''),",
|
||||
" CAST(a.cod_n AS VARCHAR(10)) + '-' +",
|
||||
" CAST(a.cod_grupo AS VARCHAR(10)) + '-' +",
|
||||
" CAST(a.cod_tipo AS VARCHAR(10)) + '-' +",
|
||||
" CAST(a.cod_sec AS VARCHAR(10)) + ' ' +",
|
||||
" RTRIM(ISNULL(a.descripcion, '')) + ' ' +",
|
||||
" RTRIM(ISNULL(a.unidad_med, '')),",
|
||||
" ISNULL(a.cantidad2, 0),",
|
||||
" ISNULL(a.costo_standard, 0),",
|
||||
" CASE",
|
||||
" WHEN a.codigo_mov IN (30,31,55,56) THEN 30",
|
||||
" ELSE a.codigo_mov",
|
||||
" END AS grupo_mov,",
|
||||
" CASE",
|
||||
" WHEN a.codigo_mov IN (30,31,55,56) THEN 'MOVIMIENTOS VARIOS (30,31,55,56)'",
|
||||
" ELSE ISNULL(a.descripcion_mov, '')",
|
||||
" END AS desc_grupo_mov",
|
||||
" FROM vwipprodterm a",
|
||||
" WHERE a.codigo_mov IN (44,12,13,30,31,55,56)",
|
||||
" AND a.ano BETWEEN YEAR('",
|
||||
fecha1 USING 'yyyy-mm-dd',
|
||||
"') AND YEAR('",
|
||||
fecha2 USING 'yyyy-mm-dd',
|
||||
"')",
|
||||
" AND a.mes_orden BETWEEN MONTH('",
|
||||
fecha1 USING 'yyyy-mm-dd',
|
||||
"') AND MONTH('",
|
||||
fecha2 USING 'yyyy-mm-dd',
|
||||
"')",
|
||||
" ORDER BY grupo_mov, a.ano, a.mes_orden, a.numero_doc"
|
||||
|
||||
DECLARE buscar CURSOR FROM query
|
||||
FOREACH buscar INTO inv[idx].*
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
IF idx > 1 THEN
|
||||
|
||||
LET r_filename = "ipprrp053.4rp"
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN
|
||||
LET preview = 1
|
||||
CALL selectoutput() RETURNING r_output
|
||||
CALL fgl_report_selectDevice(r_output)
|
||||
CALL fgl_report_selectPreview(preview)
|
||||
LET handler = fgl_report_commitCurrentSettings()
|
||||
END IF
|
||||
|
||||
START REPORT rpt_ipprrp053 TO XML HANDLER handler
|
||||
|
||||
FOR idx = 1 TO inv.getlength()
|
||||
OUTPUT TO REPORT rpt_ipprrp053(inv[idx].*, fecha1, fecha2)
|
||||
END FOR
|
||||
|
||||
FINISH REPORT rpt_ipprrp053
|
||||
|
||||
ELSE
|
||||
CALL fgl_winmessage("INFO", "NO EXISTEN REGISTROS", "INFO")
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
|
||||
END FUNCTION
|
||||
|
||||
REPORT rpt_ipprrp053(x, fecha1, fecha2)
|
||||
|
||||
DEFINE x RECORD
|
||||
fecha DATE,
|
||||
numero_doc STRING,
|
||||
almacen STRING,
|
||||
producto STRING,
|
||||
cantidad DECIMAL(18, 5),
|
||||
costo_standard DECIMAL(18, 5),
|
||||
codigo_mov INT,
|
||||
descripcion_mov STRING
|
||||
END RECORD
|
||||
DEFINE fecha1, fecha2, fecha_actual DATE,
|
||||
total_registros INT,
|
||||
total_cantidad DECIMAL(18, 5),
|
||||
total_costos DECIMAL(18, 5),
|
||||
grupo_registros INT,
|
||||
grupo_cantidad DECIMAL(18, 5),
|
||||
grupo_costos DECIMAL(18, 5),
|
||||
prev_fecha DATE,
|
||||
prev_doc STRING,
|
||||
prev_almacen STRING,
|
||||
print_fecha DATE,
|
||||
print_doc STRING,
|
||||
print_almacen STRING
|
||||
|
||||
ORDER EXTERNAL BY x.codigo_mov
|
||||
|
||||
FORMAT
|
||||
|
||||
FIRST PAGE HEADER
|
||||
LET fecha_actual = CURRENT
|
||||
LET prev_fecha = NULL
|
||||
LET prev_doc = ""
|
||||
LET prev_almacen = ""
|
||||
PRINTX fecha1, fecha2, fecha_actual
|
||||
|
||||
ON EVERY ROW
|
||||
IF x.fecha = prev_fecha THEN
|
||||
LET print_fecha = NULL
|
||||
ELSE
|
||||
LET print_fecha = x.fecha
|
||||
LET prev_fecha = x.fecha
|
||||
END IF
|
||||
|
||||
IF x.numero_doc = prev_doc THEN
|
||||
LET print_doc = ""
|
||||
ELSE
|
||||
LET print_doc = x.numero_doc
|
||||
LET prev_doc = x.numero_doc
|
||||
END IF
|
||||
|
||||
IF x.almacen = prev_almacen THEN
|
||||
LET print_almacen = ""
|
||||
ELSE
|
||||
LET print_almacen = x.almacen
|
||||
LET prev_almacen = x.almacen
|
||||
END IF
|
||||
|
||||
PRINTX print_fecha, print_doc, print_almacen, x.producto,
|
||||
x.cantidad, x.costo_standard
|
||||
|
||||
AFTER GROUP OF x.codigo_mov
|
||||
LET prev_fecha = NULL
|
||||
LET prev_doc = ""
|
||||
LET prev_almacen = ""
|
||||
LET grupo_cantidad = GROUP SUM(x.cantidad)
|
||||
LET grupo_costos = GROUP SUM(x.costo_standard)
|
||||
LET grupo_registros = GROUP COUNT(*)
|
||||
PRINTX grupo_cantidad,
|
||||
grupo_costos,
|
||||
grupo_registros,
|
||||
x.codigo_mov,
|
||||
x.descripcion_mov
|
||||
|
||||
ON LAST ROW
|
||||
LET total_cantidad = SUM(x.cantidad)
|
||||
LET total_costos = SUM(x.costo_standard)
|
||||
LET total_registros = COUNT(*)
|
||||
PRINTX total_cantidad,total_costos, total_registros
|
||||
|
||||
END REPORT
|
||||
Reference in New Issue
Block a user