Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lparameters m.empresa
- wait window "Generando Remesa..." nowait
- local m.canal, m.archivo, m.año, m.numero, m.concepto, m.totimporte, m.linea, m.ancorder, m.recibos, m.fechacargo, ;
- m.remesa, m.datos, m.omitidos, m.fecha, m.curso, m.referencia, m.refint
- =seek(m.empresa, "empresas", "codigo")
- m.remesa = sys(2015)
- m.fecha = app.date
- m.archivo = "remesas\" + dtos(m.fecha) + "_" + padl(alltrim(str(m.empresa)), 1, "0") + m.remesa + ".txt"
- m.fechacargo = m.fecha + 1
- do form pidefecha with m.fechacargo, "Fecha de Cargo" to m.fechacargo
- if empty(m.fechacargo)
- return ""
- endif
- if empty(m.archivo)
- return ""
- endif
- select all ;
- alltrim(alltrim(alumnas.nombre) + " " + alltrim(alumnas.apellido1) + " " + alltrim(alumnas.apellido2)) as nombre, ;
- recibos.* ;
- from recibos ;
- inner join alumnas on recibos.alumna = alumnas.codigo ;
- where recibos.empresa = ?m.empresa ;
- and recibos.remesa = "" ;
- and recibos.pagado = .f. ;
- and recibos.formapago = 1 ;
- order by 1 ;
- into cursor lisrecrem nofilter
- if _tally = 0
- =messagebox("Ningun registro seleccionado.", 0 + 16, "A.G.P.")
- return ""
- endif
- set safety off
- m.canal = fcreate(m.archivo)
- set safety on
- if m.canal = -1
- =messagebox("No se puede crear el archivo.", 0 + 16, "A.G.P.")
- return ""
- endif
- termo = createobject("termo2",0, reccount("lisrecrem"), 1)
- termo.intervalo = 1
- termo.show()
- begin transaction
- *********************************************
- *** CABECERA DE PRESENTADOR ***
- *********************************************
- *--- CODIGO REGISTRO ---*
- m.linea = "51"
- *--- CODIGO DATO ---*
- m.linea = m.linea + "80"
- *--- N.I.F. ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- FECHA CONFECCION SOPORTE ---*
- m.linea = m.linea + padl(day(m.fecha), 2, "0")
- m.linea = m.linea + padl(month(m.fecha), 2, "0")
- m.linea = m.linea + right(allt(str(year(m.fecha))), 2)
- *--- LIBRE 6 ---*
- m.linea = m.linea + space(6)
- *--- NOMBRE CLIENTE PRESENTADOR ---*
- m.linea = m.linea + padr(allt(empresas.nombre), 40, " ")
- *--- LIBRE 20 ---*
- m.linea = m.linea + space(20)
- *--- ENTIDAD RECEPTORA ---*
- m.linea = m.linea + padl(empresas.ccc1, 4, "0")
- *--- OFICINA RECEPTORA ---*
- m.linea = m.linea + padl(empresas.ccc2, 4, "0")
- *--- LIBRE 12 ---*
- m.linea = m.linea + space(12)
- *--- LIBRE 40 ---*
- m.linea = m.linea + space(40)
- *--- LIBRE 14 ---*
- m.linea = m.linea + space(14)
- this.escribe(m.canal, m.linea, 162)
- *********************************************
- *** CABECERA DE ORDENANTE ***
- *********************************************
- *--- CODIGO REGISTRO ---*
- m.linea = "53"
- *--- CODIGO DATO ---*
- m.linea = m.linea + "80"
- *--- CIF ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- FECHA CONFECCION SOPORTE ---*
- m.linea = m.linea + padl(day(m.fecha), 2, "0")
- m.linea = m.linea + padl(month(m.fecha), 2, "0")
- m.linea = m.linea + right(allt(str(year(m.fecha))), 2)
- *--- FECHA CARGO ---*
- m.linea = m.linea + padl(day(m.fechacargo), 2, "0")
- m.linea = m.linea + padl(month(m.fechacargo), 2, "0")
- m.linea = m.linea + right(allt(str(year(m.fechacargo))), 2)
- *--- NOMBRE CLIENTE ORDENANTE ---*
- **** vamos a probar si cambiando este nombre de ordenante, les va siempre como DANCO
- *m.linea = m.linea + padr(allt(empresas.nombre), 40, " ")
- m.linea = m.linea + padr("Estudio DANCO, Danza y Coreografía", 40, " ")
- *--- ENTIDAD RECEPTORA ---*
- m.linea = m.linea + padl(allt(empresas.ccc1), 4, "0")
- *--- OFICINA RECEPTORA ---*
- m.linea = m.linea + padl(allt(empresas.ccc2), 4, "0")
- *--- DIGITOS CONTROL ---*
- m.linea = m.linea + padl(allt(empresas.ccc3), 2, "0")
- *--- NUMERO DE CUENTA ---*
- m.linea = m.linea + padl(allt(empresas.ccc4), 10, "0")
- *--- LIBRE 8 ---*
- m.linea = m.linea + space(8)
- *--- TIPO PROCEDIMIENTO ---*
- m.linea = m.linea + "01"
- *--- LIBRE 10 ---*
- m.linea = m.linea + space(10)
- *--- LIBRE 40 ---*
- m.linea = m.linea + space(40)
- *--- LIBRE 14 ---*
- m.linea = m.linea + space(14)
- this.escribe(m.canal, m.linea, 162)
- ******************************
- *** REGISTROS INDIVIDUALES ***
- ******************************
- m.totimporte = $0
- store 0 to m.recibos, m.omitidos
- go top in lisrecrem
- do while !eof("lisrecrem")
- termo.ponval(recno("lisrecrem"))
- set near off
- =seek(lisrecrem.alumna, "alumnas", "codigo")
- =seek(lisrecrem.codigo, "recibos", "codigo")
- set near on
- *
- if empty(alumnas.ccc1) or empty(alumnas.ccc2) or empty(alumnas.ccc3) or empty(alumnas.ccc4)
- app.mess("La alumna " + alltrim(lisrecrem.nombre) + chr(13) + " no tiene datos de cuenta bancaria.")
- =fclose(m.canal)
- rollback
- return ""
- endif
- *
- m.año = recibos.año
- m.mes = recibos.mes
- m.curso = recibos.curso
- *
- m.refint = alumnas.codigo
- m.referencia = this.referencia()
- replace alumnas.referencia with m.referencia in alumnas && así podré buscarla por la referencia
- *
- ***************************************
- *** REGISTRO INDIVIDUAL OBLIGATORIO ***
- ***************************************
- *--- CODIGO DE REGISTRO ---*
- m.linea = "56"
- *--- CODIGO DE DATO ---*
- m.linea = m.linea + "80"
- *--- N.I.F. ORDENANTE ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- CODIGO DE REFERENCIA ---*
- m.linea = m.linea + padr(m.referencia, 12, " ")
- *--- NOMBRE TITULAR DOMICILIACION ---*
- do case
- case alumnas.titular = 1 && padre
- m.titular = alltrim(alumnas.nombrepadre) + " " + alltrim(alumnas.apellido1)
- case alumnas.titular = 2 && madre
- m.titular = alltrim(alumnas.nombremadre) + " " + alltrim(alumnas.apellido2)
- case alumnas.titular = 3 && alumna
- m.titular = alltrim(lisrecrem.nombre)
- case alumnas.titular = 4 && Otro
- m.titular = alltrim(alumnas.nombretitular)
- endcase
- m.linea = m.linea + padr(m.titular, 40, " ")
- *--- ENTIDAD PAGADORA ---*
- m.linea = m.linea + padl(allt(alumnas.ccc1), 4, "0")
- *--- oficina pagadora ---*
- m.linea = m.linea + padl(allt(alumnas.ccc2), 4, "0")
- *--- digitos control ---*
- m.linea = m.linea + padl(allt(alumnas.ccc3), 2, "0")
- *--- cuenta ---*
- m.linea = m.linea + padl(allt(alumnas.ccc4), 10, "0")
- *--- importe ---*
- * si son euros el importe se multiplica por 100 y no se incluyen decimales
- m.linea = m.linea + padl(allt(str(lisrecrem.importe * 100)), 10, "0")
- *--- codigo devoluciones ---*
- m.linea = m.linea + space(6)
- *--- codigo referencia interna ---*
- m.linea = m.linea + padr(m.refint, 10, " ")
- *--- primer campo de concepto ---*
- m.concepto = "Estudio DANCO, Danza y Coreografía"
- m.linea = m.linea + padr(m.concepto, 40, " ")
- *--- LIBRE 8 ---*
- m.linea = m.linea + space(8)
- this.escribe(m.canal, m.linea, 162)
- ***************************************
- *** REGISTRO PRIMERO OPCIONAL ***
- ***************************************
- *--- CODIGO REGISTRO ---*
- m.linea = "56"
- *--- codigo dato ---*
- m.linea = m.linea + "81"
- *--- N.I.F. ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- sufijo ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- CODIGO DE REFERENCIA ---*
- m.linea = m.linea + padr(m.referencia, 12, " ")
- *--- segundo campo de concepto ---*
- m.concepto = alltrim(recibos.concepto)
- m.linea = m.linea + padr(m.concepto, 40, " ")
- *-%- tercer campo de concepto ---*
- do case
- case m.mes = 13 && matricula
- m.concepto = "Matrícula curso " + trans(m.curso, "9999") + "-" + trans(m.curso + 1, "9999")
- case m.mes = 14 && vestuario
- m.concepto = "Vestuario curso " + trans(m.curso, "9999") + "-" + trans(m.curso + 1, "9999")
- otherwise
- m.concepto = "Cuota " + cmonth(date(m.año, m.mes, 1)) + " / " + trans(m.año, "9999")
- endcase
- m.linea = m.linea + padr(m.concepto, 40, " ")
- *--- CUARTO CAMPO DE CONCEPTO ---*
- m.concepto = alltrim(lisrecrem.nombre)
- m.linea = m.linea + padr(m.concepto, 40, " ")
- *--- LIBRE 14 ---*
- m.linea = m.linea + space(14)
- this.escribe(m.canal, m.linea, 162)
- *************************************
- *** REGISTRO SEXTO OPCIONAL ***
- *************************************
- *--- CODIGO REGISTRO ---*
- m.linea = "56"
- *--- CODIGO DATO ---*
- m.linea = m.linea + "86"
- *--- N.I.F. ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- CODIGO DE REFERENCIA ---*
- m.linea = m.linea + padr(m.referencia, 12, " ")
- *--- NOMBRE TITULAR CUENTA ---*
- m.linea = m.linea + padr(m.titular, 40, " ")
- *--- DOMICILIO TITULAR CUENTA ---*
- m.linea = m.linea + padr(alumnas.direccion, 40, " ")
- *--- PLAZA TITULAR CUENTA ---*
- m.linea = m.linea + padr(alumnas.poblacion, 35, " ")
- *--- CODIGO POSTAL ---*
- m.linea = m.linea + padl(alumnas.postal, 5, "0")
- *--- LIBRE 14 ---*
- m.linea = m.linea + space(14)
- this.escribe(m.canal, m.linea, 162)
- ***********************
- replace ;
- recibos.remesa with m.remesa ;
- in recibos
- m.totimporte = m.totimporte + lisrecrem.importe
- m.recibos = m.recibos + 1
- skip 1 in lisrecrem
- enddo
- release termo
- *********************************************
- *** TOTAL DE ORDENANTE ***
- *********************************************
- *--- CODIGO DE REGISTRO ---*
- m.linea = "58"
- *--- CODIGO DE DATO ---*
- m.linea = m.linea + "80"
- *--- N.I.F. ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- LIBRE 12 ---*
- m.linea = m.linea + space(12)
- *--- LIBRE 40 ---*
- m.linea = m.linea + space(40)
- *--- LIBRE 20 ---*
- m.linea = m.linea + space(20)
- *--- SUMA DE IMPORTES ---*
- * si son euros el importe se multiplica por 100 y no se incluyen decimales
- m.linea = m.linea + padl(allt(str(m.totimporte * 100)), 10, "0")
- *--- LIBRE 6 ---*
- m.linea = m.linea + space(6)
- *--- NUMERO DOMICILIACIONES ---*
- m.linea = m.linea + padl(m.recibos, 10, "0")
- *--- NUMERO REGISTROS ORDENANTE ---*
- m.linea = m.linea + padl((m.recibos * 3) + 2, 10, "0")
- *--- LIBRE 20 ---*
- m.linea = m.linea + space(20)
- *--- LIBRE 18 ---*
- m.linea = m.linea + space(18)
- this.escribe(m.canal, m.linea, 162)
- *********************************************
- *** TOTAL GENERAL ***
- *********************************************
- *--- CODIGO DE REGISTRO ---*
- m.linea = "59"
- *--- CODIGO DE DATO ---*
- m.linea = m.linea + "80"
- *--- NIF ---*
- m.linea = m.linea + padl(allt(empresas.nif), 9, " ")
- *--- SUFIJO ---*
- m.linea = m.linea + padl(alltrim(empresas.sufijo), 3, "0")
- *--- LIBRE 12 ---*
- m.linea = m.linea + space(12)
- *--- LIBRE 40 ---*
- m.linea = m.linea + space(40)
- *--- NUMERO DE ORDENANTES ---*
- m.linea = m.linea + "0001"
- *--- LIBRE 16 ---*
- m.linea = m.linea + space(16)
- *--- SUMA TOTAL DE IMPORTES ---*
- * si son euros el importe se multiplica por 100 y no se incluyen decimales
- m.linea = m.linea + padl(allt(str(m.totimporte * 100)), 10, "0")
- *--- LINRE 6 ---*
- m.linea = m.linea + space(6)
- *--- NUMERO TOTAL DE DOMICILIACIONES ---*
- m.linea = m.linea + padl(m.recibos, 10, "0")
- *--- NUMERO TOTAL DE REGISTROS ---*
- m.linea = m.linea + padl((m.recibos * 3) + 4, 10, "0")
- *--- LIBRE 20 ---*
- m.linea = m.linea + space(20)
- *--- LIBRE 18 ---*
- m.linea = m.linea + space(18)
- this.escribe(m.canal, m.linea, 162)
- =fclose(m.canal)
- m.datos = filetostr(m.archivo)
- insert into remesas ;
- (codigo, fecha, fechacargo, recibos, importe, datos, fichero, empresa) ;
- values ;
- (m.remesa, m.fecha, m.fechacargo, m.recibos, m.totimporte, m.datos, justfname(m.archivo), m.empresa)
- end transaction
- m.mensaje = alltrim(str(m.recibos)) + " recibos enviados" + chr(13) + transform(m.totimporte, "999,999,999.99") + " €"
- if m.omitidos > 0
- m.mensaje = m.mensaje + alltrim(str(m.omitidos)) + " recibos omitidos por estar ya en remesa o pagados o efectivo."
- endif
- app.mess(m.mensaje)
- wait clear
- return m.remesa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement