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

866 lines
28 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : CCPRRP018
OBJETIVO : Listar los Estados De Cuentas de los clientes
(Partidas pendientes de cobros)
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Julio 28, 1993
-------------------------------------------------------------------------------
}
GLOBALS "ccprgb000.4gl"
DEFINE prima DECIMAL(10,2) ### Varible que equivale a la prima de otra moneda
DEFINE destino,mov CHAR(1)
DEFINE idx_1, idx_2, idx_3 SMALLINT ## Variables usadas para formar arreglos
DEFINE fecha_final DATE ## Varible usada para busqueda por fecha de corte
DEFINE salir, salir1, salir3, tipo_venta CHAR(1) ## Bandera para control loop
DEFINE selec5, selec6 CHAR(1500) ## Variables para almacenar busquedas
DEFINE valor_de DECIMAL(12,2)
DEFINE dias2 INTEGER,
command CHAR(120),
tipo CHAR(2)
DEFINE dias SMALLINT ## Variable que almacena la diferencia de dias
DEFINE p_tel LIKE vetb00004.telefono
DEFINE archivo,filename,sysos CHAR(120),
cels CHAR(20),
cnt SMALLINT,
nombre_zona,nombre_p CHAR(30)
DEFINE credito, debito, tcredito, tdebito, tbalance,
limite, b_balance, no_v,v1_30, v31_45, v46_60, vm_60,p_valor DECIMAL(12,2)
DEFINE p_prov LIKE vetb00020.cod_provincia,
nom_prov LIKE vetb00020.nombre_provincia
DEFINE p_calle,p_descrip,pbarrio CHAR(30)
DEFINE p_casa,p_zona,p_numero CHAR(10),
balance DECIMAL(12,2),
ptelefono LIKE vetb00004.telefono,
pzona LIKE vetb00004.cod_zona,
pprovincia LIKE vetb00004.cod_provincia
#DEFINE no_v LIKE cctb00001.aplica_a
DEFINE fecha1,fecha2 DATE,
p_nombre CHAR(30),
p_limite_credito DECIMAL(10,2)
####### Variables para desplegar resultados por pantalla ante de la impresion
DEFINE tot_gen1 RECORD
totald DECIMAL(10,2),
totalc DECIMAL(10,2),
totalg DECIMAL(10,2)
END RECORD,
##### Registro que almacena la infoprmacion a imprimir ####
m_tipo_doc LIKE cctb00001.tipo_doc
DEFINE movtos RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
aplica_a LIKE cctb00001.aplica_a,
valor DECIMAL(12,2)
END RECORD
DEFINE fecha3 DATE
FUNCTION ccprrp018()
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
####### Abriendo y desplegando formulario de captura de datos
OPEN FORM ccfmrp018 FROM "ccfmrp018"
DISPLAY FORM ccfmrp018
CALL pantalla()
DISPLAY "ccprrp018" AT 4,3 ATTRIBUTE(RED)
DISPLAY "Estado Cuentas Pendiente De Cobros" AT 6,21 ATTRIBUTE(BLACK)
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
##### Creando el criterio de busqueda
CONSTRUCT criterio ON a.tipo_cliente,a.sec_cliente FROM
tipo_cliente, sec_cliente
##### Aceptando la fecha de corte para busqueda de informacion
INITIALIZE fecha_final to null
INPUT BY NAME prima,fecha_final,dias2
BEFORE FIELD fecha_final
LET fecha_final = today
AFTER FIELD fecha_final
IF fecha_final is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
AFTER FIELD dias2
IF dias2 is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD dias2
END IF
END INPUT
###### Creando facilidad para cancelar operacion mediante la tecla DELETE
###### o SUPR
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
# Busca los documentos que esten en el rango de fechas especificado
LET selec5 =
"SELECT a.tipo_cliente,a.sec_cliente,a.aplica_a,sum(a.valor+a.monto_desc) ",
"FROM cctb00001 a,vetb00004 c ",
"WHERE a.status_t IS NULL AND a.fecha_orig <= ? AND ",
" a.num_doc IS NOT NULL AND a.tipo_doc != ('PC') AND ",
" a.tipo_cliente = c.tipo_cliente AND ",
" a.sec_cliente = c.sec_cliente AND ",
#" a.sec_cliente = b.sec_cliente AND a.tipo_doc in ('FE','FT','NC') AND ",
criterio CLIPPED," GROUP BY 1,2,3 HAVING SUM(a.valor+a.monto_desc) <> 0 ",
"ORDER BY 3 "
DISPLAY "<< Buscando los Movimientos del Rango >>" AT 20,14
ATTRIBUTE (REVERSE,BOLD)
PREPARE movi FROM selec5
DECLARE movtos_cli CURSOR FOR movi
OPEN movtos_cli USING fecha_final
LET destino = "E"
IF destino = "E" THEN
CALL e_ccrp18()
RETURN
END IF
#START REPORT report18 TO "ccrp18"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
###### Comienza el loop para enviar informacion al reporte
LET salir = "N"
WHILE salir != "S"
FETCH movtos_cli INTO movtos.*
IF status = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF prima IS NOT NULL THEN
LET movtos.valor = movtos.valor * prima
END IF
SELECT UNIQUE a.tipo_doc
INTO m_tipo_doc
FROM cctb00001 a
WHERE a.status_t IS NULL AND
a.num_doc = a.aplica_a AND
a.num_doc=movtos.aplica_a AND
a.tipo_doc not in ("PG","NC","PC","ND") and
a.tipo_cliente=movtos.tipo_cliente AND
a.sec_cliente=movtos.sec_cliente
GROUP BY 1
IF STATUS < 0 THEN
LET m_tipo_doc = "KK"
END IF
IF m_tipo_doc = "DE" THEN
#LET doccli16.fecha_venc = NULL
SELECT SUM(a.valor+a.monto_desc)*-1
INTO movtos.valor
FROM cctb00001 a
WHERE a.fecha_orig<=fecha_final AND a.tipo_cliente=movtos.tipo_cliente
AND a.sec_cliente=movtos.sec_cliente AND a.status_t IS NULL AND
a.tipo_doc = "DE" AND a.num_doc = movtos.aplica_a
END IF
# OUTPUT TO REPORT report18(movtos.*)
END WHILE
# FINISH REPORT report18
RUN "type c:\ccrp18 > %USPRINT%"
#CALL fdestino(destino,archivo,imprime)
CLEAR SCREEN
END FUNCTION
####### Funcion para dar salida a la informacion
{
REPORT report18(x)
DEFINE x RECORD
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
aplica_a LIKE cctb00001.aplica_a,
valor DECIMAL(12,2)
END RECORD
DEFINE hora CHAR(5)
DEFINE imp_cli CHAR(1)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.sec_cliente,x.aplica_a
#### Proceso para sortear la informacion
FORMAT
PAGE HEADER
LET hora = time
PRINT COLUMN 1, letras.comp_on
PRINT COLUMN 1, "ccprrp018",
COLUMN 31, "R A Y - O - V A C D O M I N I C A N A, S. A.",
COLUMN 101, today using "dd/mm/yyyy"
PRINT COLUMN 40,"Estado de Cuenta Al ",fecha_final USING "dd/mm/yyyy",
COLUMN 106, hora
IF x.sec_cliente > 9000 AND prima IS NULL THEN
PRINT COLUMN 53, "US$"
ELSE
PRINT COLUMN 53, "RD$"
END IF
##### Si el cliente es local el valor de la prima de la moneda es nulo
IF x.sec_cliente < 9000 THEN
LET prima = null
END IF
SKIP 1 LINE
BEFORE GROUP OF x.sec_cliente
LET idx = 0
LET no_v = 0
LET v1_30 = 0
LET v31_45 = 0
LET v46_60 = 0
LET vm_60 = 0
IF tdebito IS NULL THEN
LET tdebito = 0
END IF
IF tcredito IS NULL THEN
LET tcredito = 0
END IF
IF tbalance IS NULL THEN
LET tbalance = 0
END IF
#### Seleciona los datos generales de identificacion del cliente
SELECT UNIQUE b.nombre,b.limite_credito,b.zona_postal,b.num_rnc,c.calle,
c.casa_num,c.barrio,b.telefono,b.cod_provincia
INTO p_nombre,p_limite_credito,p_zona,p_numero,p_calle,p_casa,pbarrio,p_tel,p_prov
FROM vetb00004 b ,vetb00005 c
WHERE x.tipo_cliente = b.tipo_cliente and x.sec_cliente = b.sec_cliente and
b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and
b.status_t is null
SELECT a.nombre_provincia INTO nom_prov
FROM vetb00020 a
WHERE a.cod_provincia = p_prov
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
LET b_balance = balance
IF limite IS NULL THEN
LET limite = 0
END IF
LET debito = 0
LET credito = 0
IF prima is not null THEN
PRINT COLUMN 1,"Prima: ", prima using "###.##"
END IF
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"-----------"
, letras.negrillas_on
PRINT COLUMN 1, "Cliente:",
COLUMN 10, x.tipo_cliente using "&&","-",
x.sec_cliente using "&&&&",
COLUMN 18, p_nombre clipped,
COLUMN 64, "RNC : ",p_numero
PRINT COLUMN 10, p_calle clipped," ",p_casa CLIPPED,pbarrio CLIPPED,", ",
nom_prov CLIPPED,
COLUMN 90, "Tel : ",p_tel CLIPPED
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------",
"-----------"
PRINT COLUMN 4, "D O C U M E N T O"
PRINT COLUMN 1, "|----------------------|"
PRINT COLUMN 3, "Numero",
COLUMN 11, "Tipo",
COLUMN 17, "Fecha",
COLUMN 30, "Vencimiento",
COLUMN 63, " Valor ",
COLUMN 99, "B A L A N C E"
PRINT COLUMN 1,
"--------------------------------------------------",
"--------------------------------------------------" ,
"-----------"
# END IF
ON EVERY ROW
display "aplica ",x.aplica_a
SELECT UNIQUE a.tipo_doc,MAX(a.fecha_orig),MAX(a.fecha_ven)
INTO tipo,fecha2,fecha3
FROM cctb00001 a
WHERE a.num_doc = x.aplica_a AND
a.status_t IS NULL AND
a.aplica_a = a.num_doc
GROUP BY 1
IF fecha2 IS NULL THEN
LET fecha2 = fecha_final
END IF
IF fecha3 IS NULL THEN
LET fecha3 = fecha_final
END IF
###### Balanceando la informacion
####### Calculando los dias de vencimiento del documento
# IF (fecha_final - fecha3) >= dias2 THEN
LET dias = (fecha_final - fecha3) - dias2
LET p_valor = x.valor
IF p_valor <> 0 THEN
LET Idx = idx + 1
display "idx ",idx
#IF idx > 0 THEN
IF tipo != "FT" THEN
INITIALIZE fecha3 TO NULL
END IF
LET b_balance = b_balance + x.valor
IF dias <= 0 THEN
LET no_v = p_valor + no_v
END IF
IF dias > 0 and dias < 31 THEN
LET v1_30 = p_valor + v1_30
END IF
IF dias > 30 and dias < 46 THEN
LET v31_45 = p_valor + v31_45
END IF
IF dias > 45 and dias < 61 THEN
LET v46_60 = p_valor + v46_60
END IF
IF dias > 60 THEN
LET vm_60 = vm_60 + p_valor
END IF
#display "dos aplica_a ",x.aplica_a
PRINT COLUMN 3, x.aplica_a using "######",
COLUMN 12, tipo,
COLUMN 16, fecha2 using "dd/mm/yyyy",
COLUMN 29, fecha3 using "dd/mm/yyyy",
COLUMN 59, x.valor using "(((,(((,(((.&&)",
COLUMN 97, b_balance using "(((,(((,(((.&&)"
#END IF
END IF
AFTER GROUP OF x.sec_cliente
IF no_v <> 0 OR v1_30 <> 0 OR v31_45 <> 0 OR v46_60 <> 0 OR vm_60 <> 0 THEN
SKIP 1 LINE
PRINT COLUMN 52," RESUMEN POR VENCIMIENTO "
PRINT #COLUMN 1, "ANALISIS POR ANTIGUEDAD",letras.negrillas_on,
COLUMN 32, "No Vencido",
COLUMN 50, "1 a 30",
COLUMN 60, "31 a 45",
COLUMN 74, "46 a 60",
COLUMN 86, "Mas de 60",letras.negrillas_off
PRINT #COLUMN 1, "DE SU APRECIADA CUENTA: ",
COLUMN 25, no_v using "((,(((,(((.&&)",
COLUMN 41, v1_30 using "((,(((,(((.&&)",
COLUMN 54, v31_45 using "((,(((,(((.&&)",
COLUMN 70, v46_60 using "((,(((,(((.&&)",
COLUMN 82, vm_60 using "((,(((,(((.&&)"
SKIP 1 LINE
IF v1_30 = 0 AND v31_45 = 0 AND v46_60 = 0 AND
vm_60 = 0 THEN
PRINT COLUMN 1,
" NOTA : "
PRINT COLUMN 1,
" CON LA REMISION DE ESTE ESTADO DE CUENTAS SOLO ESTAMOS CONFIRMANDO EL "
PRINT COLUMN 1,
" BALANCE COMPUESTO POR LA(S) FACTURA(S) DETALLADA(S) EN EL MISMO."
PRINT COLUMN 1,
" SI EXISTE ALGUNA DIFERENCIA FAVOR COMUNICARSE CON NUESTRO GERENTE DE TESORERIA "
PRINT COLUMN 1,
" EL LIC. PEDRO ACOSTA AL TEL. 530-5409, O ENVIARNOS SU RESPUESTA, YA SEA POR "
PRINT COLUMN 1,
" LA VIA A NUESTRO FAX No. 530-7966, O POR VIA A NUESTRA DIRECCION ELECTRONICA"
PRINT COLUMN 1,
" pacosta@dom.rov.com "
SKIP 1 LINE
PRINT COLUMN 1,
" SALUDOS CORDIALES. "
END IF
IF v1_30 != 0 OR v31_45 != 0 OR v46_60 != 0 OR
vm_60 != 0 THEN
PRINT COLUMN 1,
"NOTA : "
PRINT COLUMN 1,
"FAVOR OBSERVAR QUE ESTE ESTADO DE CUENTAS PRESENTA UN BALANCE VENCIDO COMPUESTO "
PRINT COLUMN 1,
"POR LA(S) FACTURA(S) QUE LE ESTAMOS SENALANDO."
PRINT COLUMN 1,
"EN CASO DE QUE DESEE LE ENVIAMOS A NUESTRO REPRESENTANTE PARA LOS FINES DE "
PRINT COLUMN 1,
"RIGOR, FAVOR COMUNICARSE CON NUESTRO GERENTE DE TESORERIA EL LIC. PEDRO ACOSTA "
PRINT COLUMN 1,
"AL TELEFONO 530-5409, O ENVIARNOS SU RESPUESTA, YA SEA POR VIA A NUESTRO FAX "
PRINT COLUMN 1,
"EL No. 530-7966, O POR VIA A NUESTRA DIRECCION ELECTRONICA pacosta@dom.rov.com "
SKIP 1 LINE
PRINT COLUMN 1,
"SALUDOS CORDIALES. "
END IF
SKIP 1 LINES
PRINT COLUMN 51,
" LIC. PEDRO ACOSTA "
PRINT COLUMN 51,
"GERENTE DE TESORERIA"
LET b_balance = 0
SKIP TO TOP OF PAGE
END IF
PAGE TRAILER
SKIP 1 LINE
PRINT COLUMN 1, letras.negrillas_on,
"PG-Pago FT-Factura Local FE-Factura Exterior ",
"ND-Nota Debito NC-Nota Credito DE-Devolucion",
letras.negrillas_off
LET no_v = 0
LET v1_30 = 0
LET v31_45 = 0
LET v46_60 = 0
LET vm_60 = 0
END REPORT
}
FUNCTION e_ccrp18()
DEFINE primera,imprime_ana,imprime_cliente CHAR(1),
cliente CHAR(70),
codigo_g,codigo_ant,codigo_act CHAR(6),
ret CHAR(30),
ejecuta,localiza CHAR(80),
documento CHAR(9)
--# CALL fgl_init4js()
--# LET archivo = NULL
--# LET filename = NULL
--# LET filename = FGL_GETENV("USPROGRAM")
--# LET archivo = "G:\\\\ESTADO.XLS"
--# LET sysos = FGL_GETENV("OS")
--# IF sysos = "Windows_NT" THEN
--# LET filename = filename CLIPPED," G:\\\\ESTADO.XLS"
--# LET localiza = "G:\\ESTADOS\\"
--# LET ejecuta = "DEL /S /Q ",localiza CLIPPED,"*.*"
RUN ejecuta
LET ejecuta = NULL
--# ELSE
--# LET filename = "C:\\\\ARCHIV~1\\\\MICROS~1\\\\OFFICE\\\\EXCEL.EXE G:\\\\ESTADO.XLS"
--# LET localiza = "G:\\ESTADOS\\"
--# LET archivo = "G:\\\\ESTADO.XLS"
--# LET ejecuta = "DEL ",localiza CLIPPED,"*.xls"
RUN ejecuta
LET ejecuta = NULL
--# END IF
# CREACION TABLA TEMPORAL
CREATE TABLE estado
(
tipo_cliente SMALLINT,
sec_cliente SMALLINT,
aplica_a INTEGER,
fecha_venc DATE,
valor DECIMAL(12,2)
)
LET primera = "S"
LET salir = "N"
WHILE salir != "S"
FETCH movtos_cli INTO movtos.*
IF status = NOTFOUND THEN
LET salir = "S"
EXIT WHILE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF prima IS NOT NULL THEN
LET movtos.valor = movtos.valor * prima
END IF
SELECT MAX(a.fecha_orig)
INTO fecha3
FROM cctb00001 a
WHERE a.num_doc = movtos.aplica_a AND
a.status_t IS NULL AND
a.aplica_a = a.num_doc
INSERT INTO estado VALUES (movtos.tipo_cliente,movtos.sec_cliente,
movtos.aplica_a,fecha3,movtos.valor)
END WHILE
--# IF winexec(filename) THEN
--# IF DDEconnect("EXCEL",archivo) THEN
--# LET cels = "R",6 USING "<<","C3"
--# IF DDEpoke("EXCEL",archivo,cels,fecha_final) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
DECLARE buscate CURSOR FOR
SELECT a.tipo_cliente,a.sec_cliente,a.aplica_a,SUM(a.valor) FROM estado a
GROUP BY 1,2,3
ORDER BY 1,2
LET primera = "S"
LET cnt = 16
LET balance = 0
LET codigo_ant = "1"
LET codigo_Act = NULL
FOREACH buscate INTO movtos.*
LET codigo_Act = movtos.tipo_cliente USING "##",movtos.sec_cliente USING "&&&&"
LET imprime_ana = "N"
IF primera = "S" THEN
LET codigo_ant = codigo_Act
END IF
IF codigo_ant != codigo_act THEN
LET codigo_ant = codigo_Act
LET primera = "S"
LET imprime_ana = "S"
--# LET cels = "R",38 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,no_v) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C3"
--# IF DDEpoke("EXCEL",archivo,cels,v1_30) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C4"
--# IF DDEpoke("EXCEL",archivo,cels,v31_45) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C5"
--# IF DDEpoke("EXCEL",archivo,cels,v46_60) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C7"
--# IF DDEpoke("EXCEL",archivo,cels,vm_60) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET command = "Run(\\\"ESTADO.XLS!SALVAR\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
--# IF sysos = "Windows_NT" THEN
LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\",
codigo_g,".xls"
--# ELSE
LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\",
codigo_g,".xls"
--# END IF
RUN ejecuta
--# LET command = "Run(\\\"ESTADO.XLS!LIMPIAR\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
LET cnt = 16
--# END IF
--# IF primera = "S" THEN
LET primera = "N"
LET imprime_cliente = "S"
LET no_v = 0
LET v1_30 = 0
LET v31_45 = 0
LET v46_60 = 0
LET vm_60 = 0
#### Seleciona los datos generales de identificacion del cliente
LET codigo_g = movtos.tipo_cliente USING "##",movtos.sec_cliente USING "&&&&"
SELECT UNIQUE b.nombre,b.limite_credito,b.zona_postal,b.num_rnc,c.calle,
c.casa_num,b.telefono,b.cod_zona,b.cod_provincia,c.barrio
INTO p_nombre,p_limite_credito,p_zona,p_numero,p_calle,p_casa,
ptelefono,pzona,pprovincia,pbarrio
FROM vetb00004 b ,vetb00005 c
WHERE b.tipo_cliente = movtos.tipo_cliente and b.sec_cliente = movtos.sec_cliente and
b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and
b.status_t is null
SELECT a.descrip INTO nombre_zona FROM vetb00008 a
WHERE a.cod_zona = pzona
SELECT b.nombre_provincia
INTO nombre_p FROM vetb00009 a, vetb00020 b
WHERE a.cod_zona = pzona AND
a.cod_provincia = pprovincia AND
b.cod_provincia = a.cod_provincia
--# LET cliente = p_nombre CLIPPED," ","(",movtos.tipo_cliente USING "##","-",
movtos.sec_cliente USING "&&&&",")"
--# LET cliente = cliente CLIPPED
--# LET cels = "R",8 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
LET balance = 0
--# LET cliente = null
--# LET cliente = p_calle CLIPPED," #",p_casa CLIPPED,", ",pbarrio CLIPPED," Tel. ",ptelefono CLIPPED
--# LET cels = "R",9 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cliente = null
--# LET cliente = "LIMITE: ",p_limite_credito USING "##,###,###.##"," ",
"RNC: ",p_numero
--# LET cels = "R",10 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cliente = null
--# LET cliente = nombre_zona CLIPPED,", ",nombre_p CLIPPED
--# LET cels = "R",11 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,cliente) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# END IF
SELECT UNIQUE a.tipo_doc,MIN(a.fecha_orig) INTO tipo,fecha2
FROM cctb00001 a
WHERE a.num_doc = movtos.aplica_a AND a.status_t IS NULL AND
a.aplica_a = a.num_doc
GROUP BY 1
--# LET documento = movtos.aplica_a USING "<<<<<<","-",tipo
--# LET cels = "R",cnt USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,documento) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",cnt USING "<<","C3"
--# IF DDEpoke("EXCEL",archivo,cels,fecha2) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET balance = balance + movtos.valor
--# LET cels = "R",cnt USING "<<","C5"
--# IF DDEpoke("EXCEL",archivo,cels,movtos.valor) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET balance = balance + movtos.valor
--# LET cels = "R",cnt USING "<<","C7"
--# IF DDEpoke("EXCEL",archivo,cels,balance) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",35 USING "<<","C7"
--# IF DDEpoke("EXCEL",archivo,cels,balance) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
#LET dias = (fecha_final - fecha2) - dias2
LET dias = (fecha_final - fecha3) - dias2
IF dias > 0 AND dias < 31 THEN
LET v1_30 = movtos.valor + v1_30
END IF
IF dias > 30 and dias < 46 THEN
LET v31_45 = movtos.valor + v31_45
END IF
IF dias > 45 and dias < 61 THEN
LET v46_60 = movtos.valor + v46_60
END IF
IF dias > 60 THEN
LET vm_60 = vm_60 + movtos.valor
END IF
--# LET cnt = cnt + 1
--# END FOREACH
IF imprime_ana = "N" THEN
--# LET cels = "R",38 USING "<<","C2"
--# IF DDEpoke("EXCEL",archivo,cels,no_v) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C3"
--# IF DDEpoke("EXCEL",archivo,cels,v1_30) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C4"
--# IF DDEpoke("EXCEL",archivo,cels,v31_45) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C5"
--# IF DDEpoke("EXCEL",archivo,cels,v46_60) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
--# LET cels = "R",38 USING "<<","C7"
--# IF DDEpoke("EXCEL",archivo,cels,vm_60) THEN
--# ELSE
--# LET numero_msg =391
--# CALL msg(numero_msg)
--# END IF
{--# LET command = "Run(\\\"ESTADO.XLS!PROTEJE\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
}
--# LET command = "Run(\\\"ESTADO.XLS!SALVAR\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
{--# LET command = "Run(\\\"ESTADO.XLS!DESPROTEJER\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
}
--# IF sysos = "Windows_NT" THEN
LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\",
codigo_g,".xls"
--# ELSE
LET ejecuta = "COPY G:\\ESTADO.XLS G:\\ESTADOS\\",
codigo_g,".xls"
--# END IF
RUN ejecuta
--# LET command = "Run(\\\"ESTADO.XLS!LIMPIAR\\\";FALSE)"
--# CALL DDEExecute ("EXCEL",archivo,command) RETURNING ret
END IF
end if
end if
DROP TABLE estado
--# END FUNCTION