git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@206 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
681 lines
20 KiB
ObjectPascal
681 lines
20 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
Copyright (©) 2007. Rodax Software.
|
|
===============================================================================
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
|
|
bajo el que se suministra.
|
|
-----------------------------------------------------------------------------
|
|
Web: www.rodax-software.com
|
|
===============================================================================
|
|
Fecha primera versión:
|
|
Versión actual: 1.0.0
|
|
Fecha versión actual:
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
===============================================================================
|
|
}
|
|
|
|
unit uBancaElectronicaController;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, uDADataTable, uBizEmpresas,
|
|
uBizRemesasCliente;
|
|
|
|
type
|
|
IBancaElectronicaController = interface
|
|
['{8C646A34-AFDF-4F09-A8BA-D6D40B5A91B8}']
|
|
procedure GenerarFicheroNorma19 (const IDRemesa : Integer);
|
|
procedure GenerarFicheroNorma19SEPA (const IDRemesa : Integer);
|
|
procedure GenerarFicheroNorma32 (const IDRemesa : Integer);
|
|
end;
|
|
|
|
TBancaElectronicaController = class(TInterfacedObject, IBancaElectronicaController)
|
|
private
|
|
function VerEditorNorma19(var Entidad : String; var Oficina : String;
|
|
var AFechaCargo : TDateTime; var AFileName : String): Boolean;
|
|
function VerEditorNorma19SEPA(var Entidad : String; var Oficina : String;
|
|
var AFechaCargo : TDateTime; var AFileName : String): Boolean;
|
|
function VerEditorNorma32(var Identificador : String;
|
|
var ACodigoINE : String; var Entidad : String; var Oficina : String;
|
|
var AFileName : String): Boolean;
|
|
function ValidarRemesaParaSEPA(ARemesa : IBizRemesaCliente): Boolean;
|
|
function ValidarEmpresaParaSEPA(AEmpresa : IBizEmpresa) : Boolean;
|
|
public
|
|
procedure GenerarFicheroNorma19 (const IDRemesa : Integer);
|
|
procedure GenerarFicheroNorma19SEPA (const IDRemesa : Integer);
|
|
procedure GenerarFicheroNorma32 (const IDRemesa : Integer);
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Forms, cxControls, Controls, Windows,
|
|
CVBNorma1958CSB, CVBNorma32CSB,
|
|
uEditorRegistryUtils, uStringsUtils,
|
|
|
|
uEmpresasController, schRemesasClienteClient_Intf,
|
|
uBizContactos, uClientesController,
|
|
uRemesasClienteController,
|
|
schRecibosClienteClient_Intf, Dialogs,
|
|
uIEditorExportacionNorma19, uIEditorExportacionNorma32, uBizRecibosCliente,
|
|
schContactosClient_Intf, schEmpresasClient_Intf,
|
|
uIEditorExportacionNorma19SEPA, CVBNorma19SEPA;
|
|
|
|
|
|
{ TBancaElectronicaController }
|
|
|
|
procedure TBancaElectronicaController.GenerarFicheroNorma19(
|
|
const IDRemesa: Integer);
|
|
var
|
|
ARemesasController : IRemesasClienteController;
|
|
AEmpresasController : IEmpresasController;
|
|
AClientesController : IClientesController;
|
|
|
|
ARemesa : IBizRemesaCliente;
|
|
AEmpresa : IBizEmpresa;
|
|
ACliente : IBizCliente;
|
|
|
|
ANorma19 : TCVBNorma1958CSB;
|
|
I: integer;
|
|
AEntidad : String;
|
|
AOficina : String;
|
|
begin
|
|
ARemesasController := TRemesasClienteController.Create;
|
|
AEmpresasController := TEmpresasController.Create;
|
|
AClientesController := TClientesController.Create;
|
|
|
|
ANorma19 := TCVBNorma1958CSB.Create(NIL);
|
|
ShowHourglassCursor;
|
|
try
|
|
ARemesa := ARemesasController.Buscar(IDRemesa);
|
|
ARemesa.DataTable.Active := True;
|
|
ARemesasController.RecuperarRecibos(ARemesa);
|
|
|
|
if ARemesa.ID <> IDRemesa then
|
|
raise Exception.CreateFmt('No existe la remesa con ID %d', [IDRemesa]);
|
|
|
|
AEmpresa := AEmpresasController.Buscar(ARemesa.ID_EMPRESA);
|
|
AEmpresa.DataTable.Active := True;
|
|
|
|
if AEmpresa.ID <> ARemesa.ID_EMPRESA then
|
|
raise Exception.CreateFmt('No existe la empresa con ID %d', [ARemesa.ID_EMPRESA]);
|
|
|
|
ANorma19.FNomFic := 'REM' + ARemesa.REFERENCIA + '.C19';
|
|
ANorma19.FecAbono := ARemesa.FECHA_REMESA;
|
|
|
|
// Buscar los datos bancarios
|
|
with AEmpresa.DatosBancarios do
|
|
begin
|
|
First;
|
|
if Locate('ID', ARemesa.ID_DATOS_BANCO, []) then
|
|
begin
|
|
AEntidad := ENTIDAD;
|
|
AOficina := SUCURSAL;
|
|
end;
|
|
end;
|
|
|
|
if not VerEditorNorma19(AEntidad, AOficina, ANorma19.FecAbono, ANorma19.FNomFic) then
|
|
Exit;
|
|
|
|
ANorma19.EntRecepPres := AEntidad;
|
|
ANorma19.OfiRecepPres := AOficina;
|
|
|
|
with ANorma19 do
|
|
begin
|
|
_NORMA_ := 19;
|
|
//ANorma19.Procedimiento := prPrimero; // <= ????????????????????????????????????
|
|
Euros := True;
|
|
Depura := True;
|
|
|
|
Abrir;
|
|
|
|
FecCargo := Now; // <= Fecha de generación del fichero
|
|
//FecVcto := ARemesa.FECHA_REMESA; // <= sólo para norma 58
|
|
|
|
// PRESENTADOR
|
|
Presentador := AEmpresa.NIF_CIF;
|
|
SufijoPres := ARemesa.SUFIJO_N19;
|
|
NomCliPres := AEmpresa.NOMBRE;
|
|
|
|
CompCabecera;
|
|
|
|
// el que cobra
|
|
Ordenante := AEmpresa.NIF_CIF;
|
|
SufijoOrd:= ARemesa.SUFIJO_N19;
|
|
NomCliOrd:= AEmpresa.NOMBRE;
|
|
EntOrde:= ARemesa.ENTIDAD;
|
|
OfiOrde:= ARemesa.SUCURSAL;
|
|
DcOrde:= ARemesa.DC;
|
|
CcOrde:= ARemesa.CUENTA;
|
|
LocalidadOrd:= '';
|
|
CodLocalOrd:= '';
|
|
//FecOrigFormCred:= <= Sólo para norma 58
|
|
|
|
CompOrdenante;
|
|
|
|
ARemesa.Recibos.DataTable.First;
|
|
for I := 0 to (ARemesa.Recibos.DataTable.RecordCount - 1) do
|
|
begin
|
|
ACliente := (AClientesController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente);
|
|
ACliente.DataTable.Active := True;
|
|
|
|
// el que paga
|
|
Referencia := ACliente.REFERENCIA;
|
|
NomTitDom := ARemesa.Recibos.NOMBRE_CLIENTE;
|
|
EntTitDom := ARemesa.Recibos.ENTIDAD_CLIENTE;
|
|
OfiTitDom := ARemesa.Recibos.SUCURSAL_CLIENTE;
|
|
DcTitDom := ARemesa.Recibos.DC_CLIENTE;
|
|
CcTitDom := ARemesa.Recibos.CUENTA_CLIENTE;
|
|
NomTitCta := ARemesa.Recibos.NOMBRE_CLIENTE;
|
|
DomTitCta := '';
|
|
PlzTitCta := '';
|
|
CPtTitCta := '';
|
|
CampConc1 := 'Recibo ' + ARemesa.Recibos.REFERENCIA;
|
|
fImporteEu := ARemesa.Recibos.IMPORTE_TOTAL;
|
|
|
|
CompRegistro;
|
|
|
|
ARemesa.Recibos.DataTable.Next;
|
|
end;
|
|
|
|
FinOrdenan;
|
|
Cerrar;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
ARemesasController := NIL;
|
|
AEmpresasController := NIL;
|
|
AClientesController := NIL;
|
|
|
|
AEmpresa := NIL;
|
|
|
|
FreeAndNil(ANorma19);
|
|
end;
|
|
end;
|
|
|
|
procedure TBancaElectronicaController.GenerarFicheroNorma19SEPA(
|
|
const IDRemesa: Integer);
|
|
var
|
|
ARemesasController : IRemesasClienteController;
|
|
AEmpresasController : IEmpresasController;
|
|
AClientesController : IClientesController;
|
|
|
|
ARemesa : IBizRemesaCliente;
|
|
AEmpresa : IBizEmpresa;
|
|
ACliente : IBizCliente;
|
|
|
|
ANorma19 : TCVBNorma19SEPA;
|
|
I: integer;
|
|
AEntidad : String;
|
|
AOficina : String;
|
|
begin
|
|
ARemesasController := TRemesasClienteController.Create;
|
|
AEmpresasController := TEmpresasController.Create;
|
|
AClientesController := TClientesController.Create;
|
|
|
|
try
|
|
ARemesa := ARemesasController.Buscar(IDRemesa);
|
|
ARemesa.DataTable.Active := True;
|
|
ARemesasController.RecuperarRecibos(ARemesa);
|
|
|
|
if ARemesa.ID <> IDRemesa then
|
|
raise Exception.CreateFmt('No existe la remesa con ID %d', [IDRemesa]);
|
|
|
|
AEmpresa := AEmpresasController.Buscar(ARemesa.ID_EMPRESA);
|
|
AEmpresa.DataTable.Active := True;
|
|
|
|
if AEmpresa.ID <> ARemesa.ID_EMPRESA then
|
|
raise Exception.CreateFmt('No existe la empresa con ID %d', [ARemesa.ID_EMPRESA]);
|
|
|
|
ANorma19 := TCVBNorma19SEPA.Create(NIL);
|
|
|
|
ANorma19.FNomFic := 'REM' + ARemesa.REFERENCIA + '.C19';
|
|
ANorma19.Fichero.Fecha := Date;
|
|
ANorma19.Fichero.Identificador := AEmpresa.NIF_CIF + ARemesa.REFERENCIA;
|
|
ANorma19.FechaCobro := Date;
|
|
|
|
// Buscar los datos bancarios
|
|
with AEmpresa.DatosBancarios do
|
|
begin
|
|
First;
|
|
if Locate('ID', ARemesa.ID_DATOS_BANCO, []) then
|
|
begin
|
|
AEntidad := ENTIDAD;
|
|
AOficina := SUCURSAL;
|
|
end;
|
|
end;
|
|
|
|
ValidarEmpresaParaSEPA(AEmpresa);
|
|
|
|
ValidarRemesaParaSEPA(ARemesa);
|
|
|
|
if not VerEditorNorma19(AEntidad, AOficina, ANorma19.FechaCobro, ANorma19.FNomFic) then
|
|
Exit;
|
|
|
|
ShowHourglassCursor;
|
|
|
|
ANorma19.Receptor.Entidad := AEntidad;
|
|
ANorma19.Receptor.Oficina := AOficina;
|
|
|
|
with ANorma19 do
|
|
begin
|
|
Depura := True;
|
|
|
|
Abrir;
|
|
|
|
// PRESENTADOR
|
|
if AEmpresa.DatosBancarios.NIF_CIF_PRESENTADORIsNull then
|
|
Presentador.NIFCIF := AEmpresa.NIF_CIF
|
|
else
|
|
Presentador.NIFCIF := AEmpresa.DatosBancarios.NIF_CIF_PRESENTADOR;
|
|
|
|
if AEmpresa.DatosBancarios.SUFIJO_PRESENTADORIsNull then
|
|
Presentador.Sufijo := AEmpresa.DatosBancarios.SUFIJO_ACREEDOR
|
|
else
|
|
Presentador.Sufijo := AEmpresa.DatosBancarios.SUFIJO_PRESENTADOR;
|
|
|
|
if AEmpresa.DatosBancarios.NOMBRE_PRESENTADORIsNull then
|
|
Presentador.Nombre := AEmpresa.NOMBRE
|
|
else
|
|
Presentador.Nombre := AEmpresa.DatosBancarios.NOMBRE_PRESENTADOR;
|
|
|
|
GenerarCabeceraPresentador;
|
|
|
|
|
|
// ACREEDOR
|
|
Acreedor.NIFCIF := AEmpresa.NIF_CIF;
|
|
Acreedor.Nombre := AEmpresa.NOMBRE;
|
|
Acreedor.Direccion1 := AEmpresa.CALLE;
|
|
|
|
if not AEmpresa.CODIGO_POSTALIsNull then
|
|
Acreedor.Direccion2 := AEmpresa.CODIGO_POSTAL + ' ';
|
|
|
|
Acreedor.Direccion2 := Acreedor.Direccion2 + AEmpresa.POBLACION;
|
|
Acreedor.Direccion3 := AEmpresa.PROVINCIA;
|
|
Acreedor.Pais := 'ES';
|
|
Acreedor.Sufijo := AEmpresa.DatosBancarios.SUFIJO_ACREEDOR;
|
|
Acreedor.CuentaIBAN := AEmpresa.DatosBancarios.IBAN;
|
|
|
|
GenerarCabeceraAcreedor;
|
|
|
|
ARemesa.Recibos.DataTable.First;
|
|
for I := 0 to (ARemesa.Recibos.DataTable.RecordCount - 1) do
|
|
begin
|
|
//ACliente := (AClientesController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente);
|
|
//ACliente.Open;
|
|
|
|
// DEUDOR
|
|
Deudor.Nombre := ARemesa.Recibos.NOMBRE_CLIENTE;
|
|
Deudor.Direccion1 := ARemesa.Recibos.CALLE_CLIENTE;
|
|
|
|
if not ARemesa.Recibos.CODIGO_POSTAL_CLIENTEIsNull then
|
|
Deudor.Direccion2 := ARemesa.Recibos.CODIGO_POSTAL_CLIENTE + ' ';
|
|
|
|
Deudor.Direccion2 := Deudor.Direccion2 + ARemesa.Recibos.POBLACION_CLIENTE;
|
|
Deudor.Direccion3 := ARemesa.Recibos.PROVINCIA_CLIENTE;
|
|
Deudor.Pais := 'ES';
|
|
Deudor.CuentaIBAN := ARemesa.Recibos.IBAN_CLIENTE;
|
|
Deudor.CodigoBIC := ARemesa.Recibos.SWIFT_CLIENTE;
|
|
|
|
Adeudo.Referencia := ARemesa.Recibos.REFERENCIA;
|
|
Adeudo.Importe := ARemesa.Recibos.IMPORTE_TOTAL;
|
|
|
|
GenerarRegistroAdeudo;
|
|
|
|
ARemesa.Recibos.DataTable.Next;
|
|
end;
|
|
|
|
GenerarTotalAcreedor;
|
|
Cerrar;
|
|
|
|
ShowMessage('Se ha generado el fichero');
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
ARemesasController := NIL;
|
|
AEmpresasController := NIL;
|
|
AClientesController := NIL;
|
|
|
|
AEmpresa := NIL;
|
|
|
|
FreeAndNil(ANorma19);
|
|
end;
|
|
end;
|
|
|
|
procedure TBancaElectronicaController.GenerarFicheroNorma32(
|
|
const IDRemesa: Integer);
|
|
var
|
|
ARemesasController : IRemesasClienteController;
|
|
AEmpresasController : IEmpresasController;
|
|
AClientesController : IClientesController;
|
|
|
|
ARemesa : IBizRemesaCliente;
|
|
AEmpresa : IBizEmpresa;
|
|
ACliente : IBizCliente;
|
|
|
|
ANorma32 : TCVBNorma32CSB;
|
|
I: integer;
|
|
AEntidad : String;
|
|
AOficina : String;
|
|
ACodINE : String;
|
|
begin
|
|
ARemesasController := TRemesasClienteController.Create;
|
|
AEmpresasController := TEmpresasController.Create;
|
|
AClientesController := TClientesController.Create;
|
|
|
|
ANorma32 := TCVBNorma32CSB.Create(NIL);
|
|
ShowHourglassCursor;
|
|
Application.ProcessMessages;
|
|
try
|
|
ARemesa := ARemesasController.Buscar(IDRemesa);
|
|
ARemesa.DataTable.Active := True;
|
|
ARemesasController.RecuperarRecibos(ARemesa);
|
|
|
|
if ARemesa.ID <> IDRemesa then
|
|
raise Exception.CreateFmt('No existe la remesa con ID %d', [IDRemesa]);
|
|
|
|
AEmpresa := AEmpresasController.Buscar(ARemesa.ID_EMPRESA);
|
|
AEmpresa.DataTable.Active := True;
|
|
|
|
if AEmpresa.ID <> ARemesa.ID_EMPRESA then
|
|
raise Exception.CreateFmt('No existe la empresa con ID %d', [ARemesa.ID_EMPRESA]);
|
|
|
|
ANorma32.FNomFic := 'REM' + ARemesa.REFERENCIA + '.C32';
|
|
ANorma32.FechaFichero := Date;
|
|
|
|
// Buscar los datos bancarios
|
|
with AEmpresa.DatosBancarios do
|
|
begin
|
|
First;
|
|
if Locate('ID', ARemesa.ID_DATOS_BANCO, []) then
|
|
begin
|
|
AEntidad := ENTIDAD;
|
|
AOficina := SUCURSAL;
|
|
end;
|
|
end;
|
|
|
|
if not VerEditorNorma32(ANorma32.IdCedente, ACodINE, AEntidad,
|
|
AOficina, ANorma32.FNomFic) then
|
|
Exit;
|
|
|
|
with ANorma32 do
|
|
begin
|
|
_NORMA_ := 32;
|
|
Euros := True;
|
|
Depura := True;
|
|
|
|
Abrir;
|
|
|
|
// Cabecera del fichero
|
|
FechaFichero := NOW;
|
|
EntReceptora := AEntidad;
|
|
SucReceptora := AOficina;
|
|
CompCabeceraFichero;
|
|
|
|
// Cabecera de la remesa
|
|
NumRemesa := '0001'; //<-------------------------------------------------
|
|
|
|
AboEnt := ARemesa.ENTIDAD;
|
|
AboOfi := ARemesa.SUCURSAL;
|
|
AboDC := ARemesa.DC;
|
|
AboCC := ARemesa.CUENTA;
|
|
|
|
AdeEnt := ARemesa.ENTIDAD;
|
|
AdeOfi := ARemesa.SUCURSAL;
|
|
AdeDC := ARemesa.DC;
|
|
AdeCC := ARemesa.CUENTA;
|
|
|
|
ImpEnt := ARemesa.ENTIDAD;
|
|
ImpSuc := ARemesa.SUCURSAL;
|
|
ImpDC := ARemesa.DC;
|
|
ImpCC := ARemesa.CUENTA;
|
|
|
|
CompCabeceraRemesa;
|
|
|
|
ARemesa.Recibos.First;
|
|
for i := 0 to ARemesa.Recibos.RecordCount - 1 do
|
|
begin
|
|
RegNumRecibo := ARemesa.Recibos.REFERENCIA;
|
|
RegCodigoINE := ACodINE;
|
|
RegPlazaLibr := AEmpresa.POBLACION;
|
|
RegImpEfecto := ARemesa.Recibos.IMPORTE_TOTAL;
|
|
RegVtoEfecto := ARemesa.Recibos.FECHA_VENCIMIENTO;
|
|
// (II)
|
|
RegCodEnt := ARemesa.Recibos.ENTIDAD_CLIENTE;
|
|
RegCodOfi := ARemesa.Recibos.SUCURSAL_CLIENTE;
|
|
RegDC := ARemesa.Recibos.DC_CLIENTE;
|
|
RegCC := ARemesa.Recibos.CUENTA_CLIENTE;
|
|
RegLibrador := AEmpresa.NOMBRE;
|
|
RegLibrado := ARemesa.Recibos.NOMBRE_CLIENTE;
|
|
RegInfoAdic := '';
|
|
// (III)
|
|
ACliente := (AClientesController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente);
|
|
try
|
|
ACliente.DataTable.Active := True;
|
|
RegDomicilio := ACliente.CALLE;
|
|
RegCodPostal := ACliente.CODIGO_POSTAL;
|
|
RegPoblacion := ACliente.POBLACION;
|
|
RegNIF := ARemesa.Recibos.NIF_CIF_CLIENTE;
|
|
finally
|
|
ACliente := NIL;
|
|
end;
|
|
CompRegistro;
|
|
|
|
ARemesa.Recibos.Next;
|
|
end;
|
|
CompFinRemesa;
|
|
Cerrar;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
ARemesasController := NIL;
|
|
AEmpresasController := NIL;
|
|
AClientesController := NIL;
|
|
|
|
AEmpresa := NIL;
|
|
|
|
FreeAndNil(ANorma32);
|
|
end;
|
|
end;
|
|
|
|
function TBancaElectronicaController.ValidarEmpresaParaSEPA(
|
|
AEmpresa: IBizEmpresa): Boolean;
|
|
var
|
|
AMensaje : string;
|
|
begin
|
|
Result := False;
|
|
|
|
AMensaje := '';
|
|
|
|
if AEmpresa.DatosBancarios.IBANIsNull then
|
|
AMensaje := AMensaje + '- Falta el código IBAN' + #13 + #10;
|
|
|
|
// No obligar a tener código BIC/SWIFT
|
|
{if AEmpresa.DatosBancarios.SWIFTIsNull then
|
|
AMensaje := AMensaje + '- Falta el código BIC/SWIFT' + #13 + #10;}
|
|
|
|
if AEmpresa.DatosBancarios.SUFIJO_ACREEDORIsNull then
|
|
AMensaje := AMensaje + '- Falta el sufijo del acreedor' + #13 + #10;
|
|
|
|
if not EsCadenaVacia(AMensaje) then
|
|
begin
|
|
AMensaje := 'No se puede generar el fichero SEPA. Se han encontrado los siguientes problemas ' + #13 + #10 +
|
|
'en los datos bancarios (' + AEmpresa.DatosBancarios.NOMBRE + ')' + #13 + #10 +
|
|
'de la empresa (' + AEmpresa.NOMBRE + '):' + #13 + #10 + #13 + #10 + AMensaje;
|
|
raise Exception.Create (AMensaje)
|
|
end
|
|
else
|
|
Result := True;
|
|
|
|
end;
|
|
|
|
function TBancaElectronicaController.ValidarRemesaParaSEPA(
|
|
ARemesa: IBizRemesaCliente): Boolean;
|
|
var
|
|
AClienteController : TClientesController;
|
|
ACliente : IBizCliente;
|
|
ARecibo : IBizRecibosCliente;
|
|
i : integer;
|
|
AMensaje : string;
|
|
begin
|
|
Result := False;
|
|
AMensaje := '';
|
|
AClienteController := TClientesController.Create;
|
|
|
|
try
|
|
ARemesa.Recibos.First;
|
|
for i := 0 to ARemesa.Recibos.RecordCount - 1 do
|
|
begin
|
|
ACliente := (AClienteController.Buscar(ARemesa.Recibos.ID_CLIENTE) as IBizCliente);
|
|
ACliente.Open;
|
|
|
|
if ACliente.DatosBancarios.IBANIsNull then
|
|
AMensaje := AMensaje + '- Cliente ' + ACliente.NOMBRE + ': falta el código IBAN' + #13 + #10;
|
|
|
|
// No obligar a tener código BIC/SWIFT
|
|
{if ACliente.DatosBancarios.SWIFTIsNull then
|
|
AMensaje := AMensaje + '- Cliente ' + ACliente.NOMBRE + ': falta el código BIC/SWIFT' + #13 + #10;}
|
|
|
|
ACliente := NIL;
|
|
ARemesa.Recibos.Next;
|
|
end;
|
|
finally
|
|
FreeAndNil(AClienteController);
|
|
end;
|
|
|
|
if not EsCadenaVacia(AMensaje) then
|
|
begin
|
|
AMensaje := 'No se puede generar el fichero SEPA. Se han encontrado los siguientes problemas en los recibos de la remesa:' +
|
|
#13 + #10 + #13 + #10 + AMensaje;
|
|
raise Exception.Create (AMensaje)
|
|
end
|
|
else
|
|
Result := True;
|
|
end;
|
|
|
|
function TBancaElectronicaController.VerEditorNorma19 (
|
|
var Entidad : String; var Oficina : String; var AFechaCargo : TDateTime;
|
|
var AFileName : String): Boolean;
|
|
var
|
|
AEditor : IEditorExportacionNorma19;
|
|
begin
|
|
Result := False;
|
|
AEditor := NIL;
|
|
ShowHourglassCursor;
|
|
try
|
|
CreateEditor('EditorExportacionNorma19', IEditorExportacionNorma19, AEditor);
|
|
with AEditor do
|
|
begin
|
|
CodigoEntidad := Entidad;
|
|
CodigoAgencia := Oficina;
|
|
FechaCargo := AFechaCargo;
|
|
Fichero := AFileName;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
if Assigned(AEditor) then
|
|
try
|
|
if (AEditor.ShowModal = mrOk) then
|
|
begin
|
|
Entidad := AEditor.CodigoEntidad;
|
|
Oficina := AEditor.CodigoAgencia;
|
|
AFechaCargo := AEditor.FechaCargo;
|
|
AFileName := AEditor.Fichero;
|
|
Result := True;
|
|
end;
|
|
AEditor.Release;
|
|
finally
|
|
AEditor := NIL;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TBancaElectronicaController.VerEditorNorma19SEPA(var Entidad,
|
|
Oficina: String; var AFechaCargo: TDateTime; var AFileName: String): Boolean;
|
|
var
|
|
AEditor : IEditorExportacionNorma19SEPA;
|
|
begin
|
|
Result := False;
|
|
AEditor := NIL;
|
|
ShowHourglassCursor;
|
|
try
|
|
CreateEditor('EditorExportacionNorma19SEPA', IEditorExportacionNorma19SEPA, AEditor);
|
|
with AEditor do
|
|
begin
|
|
CodigoEntidad := Entidad;
|
|
CodigoAgencia := Oficina;
|
|
FechaCargo := AFechaCargo;
|
|
Fichero := AFileName;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
if Assigned(AEditor) then
|
|
try
|
|
if (AEditor.ShowModal = mrOk) then
|
|
begin
|
|
Entidad := AEditor.CodigoEntidad;
|
|
Oficina := AEditor.CodigoAgencia;
|
|
AFechaCargo := AEditor.FechaCargo;
|
|
AFileName := AEditor.Fichero;
|
|
Result := True;
|
|
end;
|
|
AEditor.Release;
|
|
finally
|
|
AEditor := NIL;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TBancaElectronicaController.VerEditorNorma32(var Identificador,
|
|
ACodigoINE: String; var Entidad, Oficina: String;
|
|
var AFileName: String): Boolean;
|
|
var
|
|
AEditor : IEditorExportacionNorma32;
|
|
begin
|
|
Result := False;
|
|
AEditor := NIL;
|
|
ShowHourglassCursor;
|
|
try
|
|
CreateEditor('EditorExportacionNorma32', IEditorExportacionNorma32, AEditor);
|
|
with AEditor do
|
|
begin
|
|
CodigoIdentif := Identificador;
|
|
CodigoINE := ACodigoINE;
|
|
CodigoEntidad := Entidad;
|
|
CodigoAgencia := Oficina;
|
|
Fichero := AFileName;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
if Assigned(AEditor) then
|
|
try
|
|
if (AEditor.ShowModal = mrOk) then
|
|
begin
|
|
Identificador := AEditor.CodigoIdentif;
|
|
ACodigoINE := AEditor.CodigoINE;
|
|
Entidad := AEditor.CodigoEntidad;
|
|
Oficina := AEditor.CodigoAgencia;
|
|
AFileName := AEditor.Fichero;
|
|
Result := True;
|
|
end;
|
|
AEditor.Release;
|
|
finally
|
|
AEditor := NIL;
|
|
end;
|
|
end;
|
|
end.
|