{ =============================================================================== 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; type IBancaElectronicaController = interface ['{9E37DF46-D02C-47C4-BCBE-414FB97A7751}'] procedure GenerarFicheroNorma19 (const IDRemesa : Integer); end; TBancaElectronicaController = class(TInterfacedObject, IBancaElectronicaController) private function DarParametrosParaExportar(var Entidad : Integer; var Oficina : Integer; var AFechaCargo : TDateTime; var AFileName : String): Boolean; public procedure GenerarFicheroNorma19 (const IDRemesa : Integer); end; implementation uses cxControls, Controls, Windows, CVBNorma1958CSB, uEditorRegistryUtils, uBizEmpresas, uEmpresasController, uBizContactos, uClientesController, uBizRemesasCliente, uRemesasClienteController, schRemesasClienteClient_Intf, schRecibosClienteClient_Intf, Dialogs, uIEditorExportacionNorma19; { 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 : Integer; AOficina : Integer; begin ARemesasController := TRemesasClienteController.Create; AEmpresasController := TEmpresasController.Create; AClientesController := TClientesController.Create; ANorma19 := TCVBNorma1958CSB.Create(NIL); 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; if not DarParametrosParaExportar(AEntidad, AOficina, ANorma19.FecAbono, ANorma19.FNomFic) then Exit; ANorma19.EntRecepPres := IntToStr(AEntidad); ANorma19.OfiRecepPres := IntToStr(AOficina); with ANorma19 do begin _NORMA_ := 19; 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; CompRegistro; ARemesa.Recibos.DataTable.Next; end; FinOrdenan; Cerrar; end; finally ARemesasController := NIL; AEmpresasController := NIL; AClientesController := NIL; AEmpresa := NIL; FreeAndNil(ANorma19); end; end; function TBancaElectronicaController.DarParametrosParaExportar ( var Entidad : Integer; var Oficina : Integer; 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; end.