Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
{
|
||||
-------------------------------------------------------------------------------
|
||||
PROGRAMA : COPRCS007
|
||||
OBJETIVO : Consulta Ordenes Organizadas Por Tipo
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto.
|
||||
FECHA REALIZACION : Octubre 7, 1992
|
||||
-------------------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "coprgb000.4gl"
|
||||
|
||||
FUNCTION coprcs007()
|
||||
DEFINE sale CHAR (1)
|
||||
DEFINE busca_orden RECORD
|
||||
num_oc integer,
|
||||
tipo char(2),
|
||||
fecha date,
|
||||
cod_sp smallint,
|
||||
cod_sp_sec smallint,
|
||||
nombre char(45),
|
||||
monto decimal(12,2)
|
||||
END RECORD
|
||||
|
||||
DEFINE desp_orden ARRAY[500] OF RECORD
|
||||
num_oc1 integer,
|
||||
tipo1 char(2),
|
||||
fecha1 date,
|
||||
codigo_s char(7),
|
||||
nombre1 char(45),
|
||||
monto1 decimal(12,2)
|
||||
END RECORD
|
||||
DEFINE encontrado integer
|
||||
DEFINE total_d,total_g DECIMAL(12,2)
|
||||
DEFINE primera char(1)
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
CLEAR SCREEN
|
||||
OPTIONS
|
||||
FORM LINE 8,
|
||||
ERROR LINE 23,
|
||||
COMMENT LINE 21
|
||||
LET formulario = formulario CLIPPED,"cofmcs007"
|
||||
OPEN FORM cofmcs007 FROM formulario
|
||||
DISPLAY FORM cofmcs007
|
||||
CALL PANTALLA()
|
||||
DISPLAY "<Esc> Continua Consulta" AT 2,3
|
||||
DISPLAY "<Delete> Cancela Operacion" AT 2,50
|
||||
DISPLAY "coprcs007" AT 4,3
|
||||
DISPLAY "Consulta Ordenes Organizadas Por Tipo " AT 6,23
|
||||
|
||||
LABEL volver:
|
||||
|
||||
INPUT BY NAME rango.* ATTRIBUTE (YELLOW)
|
||||
AFTER FIELD fech_in
|
||||
IF rango.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_in
|
||||
END IF
|
||||
AFTER FIELD fech_fi
|
||||
IF rango.fech_in IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fech_fi
|
||||
END IF
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
## Se seleccionan los campos que el usuario debe ver en la pantalla
|
||||
DISPLAY "Buscando Informacion... Espere Por Favor" AT 21,1 ATTRIBUTE(YELLOW)
|
||||
SELECT COUNT(*) INTO encontrado FROM cotb00014 WHERE
|
||||
fech_oc between rango.fech_in and rango.fech_fi
|
||||
|
||||
DECLARE accion CURSOR FOR
|
||||
|
||||
SELECT a.num_oc ,a.tipo,a.fech_oc,b.cod_sp,b.cod_sp_sec,b.nom_sp,
|
||||
sum(c.precio)
|
||||
FROM cotb00014 a, cotb00001 b,cotb00015 c
|
||||
WHERE a.num_oc = c.num_oc and
|
||||
a.tipo = c.tipo and
|
||||
a.cod_sp = b.cod_sp and
|
||||
a.cod_sp_sec = b.cod_sp_sec and
|
||||
a.fech_oc between rango.fech_in and rango.fech_fi AND
|
||||
a.status_t IS NULL
|
||||
GROUP BY 1,2,3,4,5,6
|
||||
ORDER BY 2,1
|
||||
|
||||
## Busca los registros que cumplan con la condicion dada y verifica si el
|
||||
## suplidor existe en el catalogo de suplidores
|
||||
OPEN accion
|
||||
LET idx = 1
|
||||
LET primera = "S"
|
||||
LET total_g = 0
|
||||
LET total_d = 0
|
||||
WHILE STATUS != NOTFOUND
|
||||
FETCH accion INTO busca_orden.*
|
||||
IF status = notfound AND sale is null THEN
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET idx = idx + 1
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET desp_orden[idx].nombre1 = "Total Tipo Orden ==> "
|
||||
LET desp_orden[idx].monto1 = total_d using "##,###,###.##"
|
||||
LET total_g = total_g + total_d
|
||||
LET sale = "S"
|
||||
END IF
|
||||
|
||||
IF primera = "S" THEN
|
||||
LET desp_orden[idx].tipo1 = busca_orden.tipo
|
||||
LET primera = "N"
|
||||
END IF
|
||||
|
||||
IF desp_orden[idx].tipo1 = busca_orden.tipo THEN
|
||||
LET desp_orden[idx].codigo_s = busca_orden.cod_sp using "&&","-",
|
||||
busca_orden.cod_sp_sec using "&&&&"
|
||||
LET desp_orden[idx].nombre1 = busca_orden.nombre
|
||||
LET desp_orden[idx].num_oc1 = busca_orden.num_oc
|
||||
LET desp_orden[idx].tipo1 = busca_orden.tipo
|
||||
LET desp_orden[idx].monto1 = busca_orden.monto
|
||||
LET desp_orden[idx].fecha1 = busca_orden.fecha using "dd/mm/yy"
|
||||
LET total_d = total_d + desp_orden[idx].monto1
|
||||
END IF
|
||||
|
||||
IF desp_orden[idx].tipo1 != busca_orden.tipo THEN
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET idx = idx + 1
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET desp_orden[idx].nombre1 = "Total Tipo Orden ==> "
|
||||
LET desp_orden[idx].monto1 = total_d using "##,###,###.##"
|
||||
LET total_g = total_g + total_d
|
||||
LET total_d = 0
|
||||
LET primera = "S"
|
||||
LET idx = idx + 1
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET idx = idx + 1
|
||||
LET desp_orden[idx].codigo_s = null
|
||||
LET desp_orden[idx].nombre1 = null
|
||||
LET desp_orden[idx].num_oc1 = null
|
||||
LET desp_orden[idx].tipo1 = null
|
||||
LET desp_orden[idx].fecha1 = null
|
||||
LET desp_orden[idx].codigo_s = busca_orden.cod_sp using "&&","-",
|
||||
busca_orden.cod_sp_sec using "&&&&"
|
||||
LET desp_orden[idx].nombre1 = busca_orden.nombre
|
||||
LET desp_orden[idx].num_oc1 = busca_orden.num_oc
|
||||
LET desp_orden[idx].tipo1 = busca_orden.tipo
|
||||
LET desp_orden[idx].monto1 = busca_orden.monto using "##,###,###.##"
|
||||
LET desp_orden[idx].fecha1 = busca_orden.fecha using "dd/mm/yy"
|
||||
LET total_d = total_d + desp_orden[idx].monto1
|
||||
END IF
|
||||
LET idx = idx + 1
|
||||
IF sale = "S" THEN
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
LET desp_orden[idx].tipo1 = busca_orden.tipo
|
||||
END WHILE
|
||||
DISPLAY " " AT 21,1
|
||||
DISPLAY BY NAME encontrado
|
||||
|
||||
DISPLAY BY NAME total_g
|
||||
CALL set_count (idx-1)
|
||||
DISPLAY ARRAY desp_orden TO orden.*
|
||||
## Verifica si el usuario presiono la tecla <Delete>
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
ELSE
|
||||
CLEAR FORM
|
||||
GOTO volver
|
||||
END IF
|
||||
|
||||
END FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user