Files
MBS/PROYECTO/ccdir/ccprrp044.4gl
T

348 lines
14 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP044
OBJETIVO : Comisiones RESUMIDAS
REALIZADO POR : JUAN F. SOTO
FECHA : Septiembre 7, 1998.
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE segunda,primera CHAR(1)
FUNCTION ccprrp044()
DEFINE resumen_prt RECORD LIKE cctb00010.*
OPTIONS
FORM LINE 10,
PROMPT LINE 9
CLEAR SCREEN
CALL pantalla()
OPEN FORM ccfmrp044 FROM "ccfmrp044"
DISPLAY FORM ccfmrp044
INPUT BY NAME p_ano,p_mes WITHOUT DEFAULTS
AFTER FIELD p_ano
IF p_ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD p_ano
END IF
AFTER FIELD p_mes
IF p_mes IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD p_mes
END IF
SELECT a.fecha_inicio,a.fecha_corte INTO fecha1,fecha2
FROM prdtable a
WHERE a.ano = p_ano
AND a.mes = p_mes
END INPUT
LET parametro = "D"
CALL elijeimpresion(parametro) RETURNING orden,destino,letras.*
START REPORT reporte44 TO "C:\\ccrp44"
DECLARE c_vende CURSOR FOR
SELECT a.* FROM cctb00010 a
ORDER BY a.cod_cia,a.sec_vend
# Loop para darle salida al Query hasta que la variable global status = 100
LET primera = "S"
LET segunda = "S"
FOREACH c_vende INTO resumen_prt.*
SELECT UNIQUE a.sec_vend
FROM cctb00008 a
WHERE a.sec_vend = resumen_prt.sec_vend
AND a.status_t IS NULL
IF STATUS != NOTFOUND THEN
OUTPUT TO REPORT reporte44 (resumen_prt.*)
END IF
END FOREACH
FINISH REPORT reporte44
RUN "TYPE c:\\ccrp44 > %USPRINT%"
CLEAR SCREEN
END FUNCTION
# Rutina de reporte
REPORT reporte44(x)
# Variable que Toma el valor de la funcion que llamo a esta rutina
DEFINE x RECORD LIKE cctb00010.*
DEFINE nombre_mes CHAR(10)
DEFINE porc_ventas DECIMAL(10,4),
t_comision_v,t_cantidad_n,cantidad_n DECIMAL(12,2)
#------------------------------------------------------------------
# Estas variables son constantes en todos los reportes de RAYOVAC
# para no estar definiendolas en cada momento.
# Estas variables son los caracteres ASCII para ser interpretados por
# el printer.
DEFINE valor_devuelto DECIMAL(12,2)
DEFINE dias1,dias2,j,k INTEGER,
nombre_vend CHAR(8),apellido_vend CHAR(10),
tt_valor DECIMAL(12,2)
DEFINE normal CHAR(3),
vcantidad_dev,tt_comision,t_comision_ventas DECIMAL(12,2),
descuento,und_netas DECIMAL(12,2),
und_desc INTEGER
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 4
#------------------------------------------------------------------------
FORMAT
PAGE HEADER
# Asignaciones de los valores ASCII para la impresion
LET hora = time
# Funcion que busca los meses del ano
#--------------------------------------------------------------------------
PRINT COLUMN 1, letras.comp_on
PRINT COLUMN 1, "ccprrp044",
COLUMN 46, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 121, "Pag. ",pageno using "###"
PRINT COLUMN 46, " Sistema de Cuentas por Cobrar",
COLUMN 121, today using "dd/mm/yyyy"
PRINT COLUMN 46, " RESUMEN COMISIONES ",
COLUMN 122, hora
PRINT COLUMN 40, " "
PRINT COLUMN 1, "DESDE: ",fecha1 using "dd/mm/yyyy",
" HASTA: ",fecha2 using "dd/mm/yyyy"
BEFORE GROUP OF x.cod_cia
IF primera = "S" THEN
LET primera = "N"
PRINT letras.negrillas_on
PRINT "PRODUCTOS LOCALES"
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"-------------------------"
PRINT COLUMN 37, "MONTO",
COLUMN 48, "MONTO",
COLUMN 60, "MONTO",
COLUMN 74, "MONTO",
COLUMN 87, "COMISION" ,
COLUMN 102, "MONTO",
COLUMN 126, "CHEQUES",
COLUMN 138, "COBROS",
COLUMN 148, "COMISION A",
COLUMN 167, "TOTAL A"
PRINT COLUMN 2, "VENDEDORES",
COLUMN 37, "VENDIDO",
COLUMN 48, "DESCUENTO",
COLUMN 60, "DEVUELTO",
COLUMN 78, "NETO",
COLUMN 87, "VENTAS",
COLUMN 102, "COBRADO",
COLUMN 111, " ITBI",
COLUMN 126, "DEVUELTOS",
COLUMN 138, "NETOS",
COLUMN 152, "COBRAR",
COLUMN 167, "COBRAR"
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"-------------------------"
PRINT letras.negrillas_off
END IF
AFTER GROUP OF x.cod_cia
IF tt_valor IS NULL THEN
LET tt_valor = 0
END IF
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"-------------------------"
PRINT "SUB-TOTAL ",
COLUMN 30,GROUP SUM(x.cantidad_ven) USING "##,###,###,###.##",
COLUMN 48, GROUP SUM(x.unidad_desc) USING "##,###,###.##",
COLUMN 58,GROUP SUM(x.cantidad_dev) USING "###,###.##",
COLUMN 68,GROUP SUM(x.cantidad_ven) -
GROUP SUM(x.unidad_desc)
USING "###,###,###.##",
COLUMN 84, GROUP SUM(x.comision_ventas) USING "###,###.##",
COLUMN 93,GROUP SUM(x.cobros) USING "###,###,###.##",
COLUMN 110,GROUP SUM(x.monto_devuelto) USING "#,###,###.##",
COLUMN 122, GROUP SUM(x.ck_devuelto) USING "###,###.##",
COLUMN 136, GROUP SUM(x.cobros) -GROUP SUM(x.ck_devuelto) -
GROUP SUM(x.monto_devuelto) USING "##,###,###.##",
COLUMN 150, GROUP SUM(x.comision_cobros)
USING "##,###.##",
COLUMN 165, GROUP SUM(x.comision_cobros) +
GROUP SUM(x.comision_ventas)
USING "#,###,###.##"
IF segunda = "S" THEN
PRINT letras.negrillas_on
PRINT "PRODUCTOS IMPORTADOS"
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"-------------------------"
PRINT COLUMN 37, "MONTO",
#COLUMN 51, "MONTO",
COLUMN 60, "MONTO",
COLUMN 76, "MONTO",
COLUMN 87, "COMISION" ,
COLUMN 125, "CHEQUES",
COLUMN 140, "COBROS",
COLUMN 150, "COMISION",
COLUMN 167, "TOTAL A"
PRINT COLUMN 2, "VENDEDORES",
COLUMN 37, "BRUTO",
#COLUMN 51, "EVUELTO",
COLUMN 60, "DESCUENTO",
COLUMN 76, "NETO",
COLUMN 87, "VENTAS",
COLUMN 100, "COBROS",
COLUMN 114, " ITBI",
COLUMN 125, "DEVUELTO",
COLUMN 140, "NETO",
COLUMN 150, "COBROS",
COLUMN 167, "COBRAR"
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"-------------------------"
LET segunda = "N"
PRINT letras.negrillas_off
END IF
AFTER GROUP OF x.sec_vend
# Impresion del nombre del vendedor
SELECT nom1_emp,apell1_emp INTO nombre_vend,apellido_vend
FROM adtb00003 WHERE num_emp = x.sec_vend
PRINT COLUMN 1,x.sec_vend," ", nombre_vend clipped," ",
apellido_vend clipped,
COLUMN 31,GROUP SUM(x.cantidad_ven) USING "###,###,###.##",
COLUMN 48,GROUP SUM(x.unidad_desc) USING "###,###.##",
COLUMN 58,GROUP SUM(x.cantidad_dev) USING "###,###.##",
COLUMN 68,GROUP SUM(x.cantidad_ven) -
GROUP SUM(x.unidad_desc) - GROUP SUM(x.cantidad_dev)
USING "###,###,###.##",
COLUMN 84, GROUP SUM(x.comision_ventas) USING "###,###.##",
COLUMN 93,GROUP SUM(x.cobros) USING "###,###,###.##",
COLUMN 110,GROUP SUM(x.monto_devuelto) USING "#,###,###.##",
COLUMN 122, GROUP SUM(x.ck_devuelto) USING "###,###.##",
COLUMN 136, GROUP SUM(x.cobros) -GROUP SUM(x.ck_devuelto) -
GROUP SUM(x.monto_devuelto)
USING "##,###,###.##",
COLUMN 150, GROUP SUM(x.comision_cobros) USING "##,###.##",
COLUMN 167, GROUP SUM(x.comision_cobros) +
GROUP SUM(x.comision_ventas)
USING "###,###.##"
ON LAST ROW
LET tt_valor = 0
DECLARE busca CURSOR FOR
SELECT a.sec_vend,a.sec_vend,SUM(a.cantidad_ven),
SUM(a.cantidad_dev),SUM(a.unidad_desc),SUM(a.comision_ventas),
SUM(a.cobros),SUM(a.monto_devuelto),SUM(a.ck_devuelto),
SUM(a.comision_cobros)
FROM cctb00010 a
GROUP BY 1,2
ORDER BY 1
PRINT letras.negrillas_on
PRINT COLUMN 40, " CONSOLIDACION COMISIONES POR VENDEDOR ",
COLUMN 160, "COMISION"
PRINT COLUMN 160, "ADICIONAL"
PRINT COLUMN 1,
"---------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"------------------------"
PRINT letras.negrillas_off
FOREACH busca INTO x.*
LET t_valor = 0
IF x.sec_vend = 550 OR
x.sec_vend = 367 THEN
DISPLAY "BUSCANDO COMISION ADICIONAL...",x.sec_vend AT 18,1
CALL teprrp005(x.sec_vend)
END IF
IF t_valor IS NULL THEN
LET t_valor = 0
END IF
SELECT nom1_emp,apell1_emp INTO nombre_vend,apellido_vend
FROM adtb00003 WHERE num_emp = x.sec_vend
PRINT COLUMN 1,x.sec_vend," ",nombre_vend CLIPPED," ",
apellido_vend,
#COLUMN 30, x.cantidad_ven USING "###,###,###.##",
#COLUMN 46, x.unidad_Desc USING "#,###,###",
#COLUMN 58, x.cantidad_dev USING "###,###.##",
#COLUMN 68, x.cantidad_ven - x.cantidad_Dev
#USING "###,###,###.##",
COLUMN 84, x.comision_ventas USING "###,###.##",
#COLUMN 93, x.cobros USING "###,###,###.##",
#COLUMN 110, x.monto_devuelto USING "#,###,###.##",
#COLUMN 122, x.ck_devuelto USING "#,###,###.##",
#COLUMN 135, x.cobros-x.monto_devuelto-x.ck_devuelto
#USING "##,###,###.##",
COLUMN 150, x.comision_cobros USING "###,###.##",
COLUMN 160, t_valor USING "##,###.##",
COLUMN 170, x.comision_cobros + x.comision_ventas +
t_valor
USING "#,###,###.##"
LET tt_valor = tt_valor + t_valor
END FOREACH
PRINT #COLUMN 30,"--------------",
#COLUMN 46, "---------",
#COLUMN 58,"----------",
#COLUMN 68, "--------------",
COLUMN 84, "----------",
#COLUMN 93,"--------------",
#COLUMN 110,"----------",
#COLUMN 124,"----------",
#COLUMN 134, "------------",
COLUMN 149, "-----------",
COLUMN 167, "------------"
PRINT COLUMN 2, "Total General ",
#COLUMN 30,SUM(x.cantidad_ven) USING "###,###,###.##",
#COLUMN 46, SUM(x.unidad_desc) USING "###,###",
#COLUMN 58,SUM(x.cantidad_dev) USING "###,###.##",
#COLUMN 68,SUM(x.cantidad_ven) -
#SUM(x.cantidad_dev)
#USING "###,###,###.##",
COLUMN 84, SUM(x.comision_ventas) USING "###,###.##",
#COLUMN 93,SUM(x.cobros) USING "###,###,###.##",
#COLUMN 110,SUM(x.monto_devuelto) USING "#,###,###.##",
#COLUMN 124,SUM(x.ck_devuelto) USING "###,###.##",
#COLUMN 135,SUM(x.cobros)-SUM(x.ck_devuelto) -
#SUM(x.monto_devuelto) USING "##,###,###.##",
COLUMN 150,SUM(x.comision_cobros) USING "###,###.##",
COLUMN 160,tt_valor USING "##,###.##",
COLUMN 166,SUM(x.comision_cobros) +
SUM(x.comision_ventas) + tt_valor
USING "##,###,###.##"
PRINT letras.comp_off
END REPORT