From b6ecb3037beedaaafb67ba8bc130e043c8260b4a Mon Sep 17 00:00:00 2001 From: david Date: Tue, 4 Dec 2007 11:41:54 +0000 Subject: [PATCH] =?UTF-8?q?-=20Incluir=20la=20generaci=C3=B3n=20de=20fiche?= =?UTF-8?q?ros=20de=20norma=2032=20en=20las=20remesas=20de=20cliente=20(2?= =?UTF-8?q?=C2=BA=20intento)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@186 c93665c3-c93d-084d-9b98-7d5f4a9c3376 --- .../BancaElectronica_Group.bdsgroup | 25 + .../View/uIEditorExportacionNorma32.pas | 40 + .../Model/BancaElectronica_model.res | Bin 0 -> 5056 bytes .../Utiles/CVBNorma32CSB.pas | 716 ++++++++++++++++++ .../Views/uEditorExportacionNorma32.dfm | 335 ++++++++ .../Views/uEditorExportacionNorma32.pas | 229 ++++++ .../RemesasCliente_Group.bdsgroup | 26 + 7 files changed, 1371 insertions(+) create mode 100644 Source/Modulos/Banca electronica/BancaElectronica_Group.bdsgroup create mode 100644 Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma32.pas create mode 100644 Source/Modulos/Banca electronica/Model/BancaElectronica_model.res create mode 100644 Source/Modulos/Banca electronica/Utiles/CVBNorma32CSB.pas create mode 100644 Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.dfm create mode 100644 Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.pas create mode 100644 Source/Modulos/Remesas de cliente/RemesasCliente_Group.bdsgroup diff --git a/Source/Modulos/Banca electronica/BancaElectronica_Group.bdsgroup b/Source/Modulos/Banca electronica/BancaElectronica_Group.bdsgroup new file mode 100644 index 00000000..75ac0723 --- /dev/null +++ b/Source/Modulos/Banca electronica/BancaElectronica_Group.bdsgroup @@ -0,0 +1,25 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Controller\BancaElectronica_controller.bdsproj + Views\BancaElectronica_view.bdsproj + Plugin\BancaElectronica_plugin.bdsproj + ..\..\Cliente\FactuGES.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Usuarios.bpl BancaElectronica_controller.bpl BancaElectronica_view.bpl BancaElectronica_plugin.bpl FactuGES.exe + + + + diff --git a/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma32.pas b/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma32.pas new file mode 100644 index 00000000..c56c01dd --- /dev/null +++ b/Source/Modulos/Banca electronica/Controller/View/uIEditorExportacionNorma32.pas @@ -0,0 +1,40 @@ +unit uIEditorExportacionNorma32; + +interface + +type + IEditorExportacionNorma32 = interface + ['{84B46A6B-5791-4E30-9ED0-2DDBCC84F353}'] + + procedure SetCodigoEntidad(const AValue: String); + function GetCodigoEntidad : String; + property CodigoEntidad : String read GetCodigoEntidad write SetCodigoEntidad; + + procedure SetCodigoAgencia(const AValue: String); + function GetCodigoAgencia : String; + property CodigoAgencia : String read GetCodigoAgencia write SetCodigoAgencia; + + procedure SetFechaCargo(const AValue: TDateTime); + function GetFechaCargo : TDateTime; + property FechaCargo : TDateTime read GetFechaCargo write SetFechaCargo; + + procedure SetFichero(const AValue: String); + function GetFichero : String; + property Fichero : String read GetFichero write SetFichero; + + function GetCodigoINE: String; + procedure SetCodigoINE(const Value: String); + property CodigoINE : String read GetCodigoINE write SetCodigoINE; + + procedure SetCodigoIdentif(const Value: String); + function GetCodigoIdentif: String; + property CodigoIdentif : String read GetCodigoIdentif write SetCodigoIdentif; + + function ShowModal : Integer; + procedure Release; + end; + + +implementation + +end. diff --git a/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res b/Source/Modulos/Banca electronica/Model/BancaElectronica_model.res new file mode 100644 index 0000000000000000000000000000000000000000..86c94e6ada7b3c85f6761b1ee234a9f34ef3c861 GIT binary patch literal 5056 zcmbW5&x;&Y5XWnifD(f4!IPI+L`3!=E9BmaF%VEA#@TDLXpF&R6XJUC)cc=I4kFSA z{{!hg%bp}hVRP_qjvmDJ`>A@>-7}euyEfF+`%$mH-*3IwZ-y~5+miKtn3_w^Pn$V^ zQ861nx4C)wN(Q~H#+K|o*@m~&(3=1I%Llk7>S*pvE7;Yjz^+ljNYba;|&8!P>=GYp<9J^QiRC`-*du(Wb zBJI+RemE@Tm2dSSKL$269_p-ia&WJ{$B|EYy#Bt1`fm?B(CB-l8nlXqgY!6fUOzP@ zr|Te|e4cZxgJWuLF8<`}dughP69?9a%ha4}r`jtX-7UCl^he&nV;_S<)Ya!2FlEJu zrr{t12%dXkNqpywX{@?Eb_MKs@29XRNI;2D%DxW zo|xv^jnf#kFIDZr^e=W==PW{#^6Ao{deqzuxId;ujOZ~3;otiwSzBXu3^t3 z&$C~D3=Umz@OQRR9+}nP>x>=u115dAI{rd2#Mbgv81-@e%IA6)a8SDwHm3Di`~F1x z)jhG~04Fd5o4f^Iah!WFIS0|E#)aohzS6onIG_;>-~Ytz3J0A}=DenTZ*cIo-Ves9 zp>qHmo5lV+rntk2He9_1!t%2yZsF;l)>iGc4jkU$0bBWEPmBKKP>uSjxhXIDsSodT z@EG|gFZa>|hHF!PaN};FzIxxlpPKT;87{i(!eu7T%H?}r^yeP=K2c}If`cyKd-3DW z_4ib`jDt-MZ?C~;z1O=EKN(!YbpFJR_c`u>(C=ph9O_Y*Jz5Z>`Zs7T9Mn$y@ay$^ z{gulxYxXwGq@TIGbG$~Hi*qk8?9|WMkNweF@MU18F;AQKZ>jcWAL86`f59r^Yh;+XfGU10gV*5=*FT)q#qz2B_Ik28(#vUlW{{>1m(1wXK3zHQ3+RoHfz^$cuqg(^F;eqz6WUMUE^m$ z9R1u2H_t9ue%}<_JcD5KB$svgjBysd-ql#|toxF$&>h1Qc)Vw6j~u{SeHg>my$i{SJtD^MnJV!{AK!ZgN9Q4bN2bs7?m1Qo zsLwc-c&GZ4_%7jWppm+9C(?(bpCye?f6Mv)ml~{r9)<=EoH5SYSxm8xsWZv%2MjL$ zd)R%{gxqI&lEaJ6!*jggJMcIz?<5?~hn@VA1Kzcrp$;C`m0CzQdy{!G?|FT$$5W3N zaydTsdE#>2dGSt*&wOX~r{!54?~lxS4gM|rOZH6mRCZMCP#!z)bEv-^up_gJ*i*BY zl>1d-%!E}5v+s{C_OF@Qj;!xrv5)P2yJ4TmKCqke`Aq-U;NJ}WpRu*&|7!3r$c7zU zF#m_6?>Cia!E%D)b;IaF{ zzPG~QEyw>z^LKm}whzS>Dx3Ct`1w98?Y5 0 then + error(0); + + fSumaImpRecibos := 0.0; + fSumaImpRemesas := 0.0; + + iNumRecibos := 0; + iNumRemesas := 0; + + iTotalLineas := 0; + iTotalRecibos := 0; + + IniCabeceraFichero; + IniCabeceraRemesa; + IniRegistro; + + if CRLF = '' then + CRLF := #13 + #10; +end; + +procedure TCVBNorma32CSB.IniCabeceraFichero; +begin + FechaFichero := 0; + EntReceptora := ''; + SucReceptora := ''; +end; + +procedure TCVBNorma32CSB.IniCabeceraRemesa; +begin + NumRemesa := '0001'; // <-------------------------------------------- + + AboEnt := ''; + AboOfi := ''; + AboDC := ''; + AboCC := ''; + + AdeEnt := ''; + AdeOfi := ''; + AdeDC := ''; + AdeCC := ''; + + ImpEnt := ''; + ImpSuc := ''; + ImpDC := ''; + ImpCC := ''; +end; + +procedure TCVBNorma32CSB.IniRegistro; +begin + // (I) + RegNumRecibo := ''; + RegCodigoINE := ''; + RegPlazaLibr := ''; + RegImpEfecto := 0.0; + RegVtoEfecto := 0; + // (II) + RegCodEnt := ''; + RegCodOfi := ''; + RegDC := ''; + RegCC := ''; + RegLibrador := ''; + RegLibrado := ''; + RegInfoAdic := ''; + // (III) + RegDomicilio := ''; + RegCodPostal := ''; + RegPoblacion := ''; + RegNIF := ''; +end; + +procedure TCVBNorma32CSB.CompCabeceraFichero; +begin + HayError := False; + sReg := ''; + ChequearDatos(CABECERA_GENERAL); + + // A + sReg := '02' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('1', 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); //15 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta(EntReceptora, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(SucReceptora, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // D + sReg := sReg + Ajusta('', 'I', 61, _SPCE_); //61 + + // E + sReg := sReg + Ajusta('', 'I', 24, _SPCE_); //24 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompCabeceraRemesa; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(CABECERA_REMESA); + Inc(iNumRemesas); + + // A + sReg := '11' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(IntToStr(iNumRemesas), 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta(IdCedente, 'D', 15, _SPCE_); //15 + sReg := sReg + '1'; + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 5, _SPCE_); //5 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // D + sReg := sReg + Ajusta(AboEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AboOfi, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AboDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(AboCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta(AdeEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AdeOfi, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(AdeDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(AdeCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta(ImpEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(ImpSuc, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(ImpDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(ImpCC, 'I', 10, _CERO_); //10 + + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); //1 + + // E + sReg := sReg + Ajusta('', 'I', 24, _SPCE_); //24 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompFinRemesa; +var + sTotImp, cIT : string; + iP : integer; +begin + HayError := False; + sReg := ''; + ChequearDatos(FIN_REMESA); + + // A + sReg := '71' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); //2 + + // B + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta(NumRemesa, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // C + sReg := sReg + Ajusta('', 'I', 37, _SPCE_); //37 + + // D + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); //10 + + sTotImp := FormatFloat(_MSK_EU_, fSumaImpRecibos); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 10, _CERO_); // 10 + + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); //10 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); //7 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + // E + sReg := sReg + Ajusta('', 'I', 5, _SPCE_); //5 + { Nº de registros de la remesa incluidos la cabecera y éste mismo: + Num.registros = 1 (cabecera) + (3 registros * Num.recibos) + 1 (este pie) + } + sReg := sReg + Ajusta(IntToStr(1 + (3*iNumRecibos) + 1), 'I', 7, _CERO_); //7 + sReg := sReg + Ajusta(IntToStr(iNumRecibos), 'I', 6, _CERO_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); //6 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); + + // Acumular la suma de los importes de las remesas en el fichero + fSumaImpRemesas := fSumaImpRemesas + fSumaImpRecibos; + + // Poner a cero la suma de los recibos y el número de recibos + fSumaImpRecibos := 0.0; + iNumRecibos := 0; +end; + +procedure TCVBNorma32CSB.CompRegistro; +begin + CompRegistro1; + CompRegistro2; + CompRegistro3; + + // Acumular la suma de los recibos en la remesa + fSumaImpRecibos := fSumaImpRecibos + RegImpEfecto; + + // Acumular el nº de recibos en la remesa + Inc(iNumRecibos); + Inc(iTotalRecibos); +end; + +procedure TCVBNorma32CSB.CompRegistro1; +var + sTotImp, cIT : string; + iP: integer; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO1); + + // A + sReg := '25' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + // Convertir referencia EL/0001 - 1 => EL00001-1 + RegNumRecibo := StringReplace(RegNumRecibo, '/', '0', []); + RegNumRecibo := StringReplace(RegNumRecibo, ' - ', '-', []); + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', FechaFichero), 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta(NumRemesa, 'I', 4, _CERO_); // 4 + + // C + sReg := sReg + Ajusta(RegCodigoINE, 'I', 9, _SPCE_); // 9 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // D + sReg := sReg + Ajusta(RegPlazaLibr, 'D', 20, _SPCE_); // 20 + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); // 1 + + // E + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 9, _SPCE_); // 9 + + sTotImp := FormatFloat(_MSK_EU_, RegImpEfecto); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 9, _CERO_); // 9 + + sReg := sReg + Ajusta('', 'I', 15, _SPCE_); // 15 + sReg := sReg + Ajusta(FormatDateTime('ddmmyy', RegVtoEfecto), 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('', 'I', 4, _SPCE_); // 4 + + // F + sReg := sReg + Ajusta('', 'I', 16, _SPCE_); // 16 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompRegistro2; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO2); + + // A + sReg := '26' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta('2', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('000000', 'I', 6, _CERO_); // 6 + sReg := sReg + Ajusta('2', 'I', 1, _SPCE_); // 1 + sReg := sReg + Ajusta('0', 'I', 1, _SPCE_); // 1 + + // C + sReg := sReg + Ajusta(RegCodEnt, 'I', 4, _CERO_); //4 + sReg := sReg + Ajusta(RegCodOfi, 'I', 4, _CERO_); //4 + if Length(RegDC) = 0 then + RegDC := '**'; + sReg := sReg + Ajusta(RegDC, 'I', 2, _CERO_); //2 + sReg := sReg + Ajusta(RegCC, 'I', 10, _CERO_); //10 + + // D + sReg := sReg + Ajusta(RegLibrador, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegLibrado, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegInfoAdic, 'D', 30, _SPCE_); // 30 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.CompRegistro3; +begin + HayError := False; + + sReg := ''; + + ChequearDatos(REGISTRO3); + + // A + sReg := '27' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta(RegNumRecibo, 'D', 15, _SPCE_); // 15 + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta(RegDomicilio, 'D', 34, _SPCE_); // 34 + sReg := sReg + Ajusta(RegCodPostal, 'I', 5, _SPCE_); // 5 + sReg := sReg + Ajusta(RegPoblacion, 'D', 20, _SPCE_); // 20 + sReg := sReg + Ajusta(RegCodigoINE, 'I', 2, _SPCE_); // 2 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); // 7 + sReg := sReg + Ajusta(RegNIF, 'I', 9, _SPCE_); // 9 + sReg := sReg + Ajusta('', 'I', 50, _SPCE_); // 50 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + Inc(iTotalLineas); +end; + +procedure TCVBNorma32CSB.Cerrar; +var + sTotImp, cIT : string; + iP: integer; +begin + HayError := False; + sReg := ''; + + Inc(iTotalLineas); + + // A + sReg := '98' + '65'; + sReg := sReg + Ajusta('', 'I', 2, _SPCE_); // 2 + + // B + sReg := sReg + Ajusta('', 'I', 22, _SPCE_); // 22 + + // C + sReg := sReg + Ajusta('', 'I', 37, _SPCE_); // 37 + + // D + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + + sTotImp := FormatFloat(_MSK_EU_, fSumaImpRemesas); + iP := pos(',', sTotImp); + if iP < 1 then + iP := pos('.', sTotImp); + cIT := copy(sTotImp, 1, iP - 1); + sTotImp := cIT + copy(sTotImp, iP + 1, 2); + sReg := sReg + Ajusta(sTotImp, 'I', 10, _CERO_); // 10 + + sReg := sReg + Ajusta('', 'I', 10, _SPCE_); // 10 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 7, _SPCE_); // 7 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + + // E + sReg := sReg + Ajusta(IntToStr(iNumRemesas), 'I', 5, _CERO_); //5 + sReg := sReg + Ajusta(IntToStr(iTotalLineas), 'I', 7, _CERO_); //7 + sReg := sReg + Ajusta(IntToStr(iTotalRecibos), 'I', 6, _CERO_); //6 + sReg := sReg + Ajusta('', 'I', 6, _SPCE_); // 6 + + sReg := sReg + CRLF; //2 + + if not (length(sReg) = _LL_) then + Error(_LL_); + + StrPCopy(@pReg, sReg); + Blockwrite(NFic, pReg, 1); + + CloseFile(NFic); +end; + + +procedure TCVBNorma32CSB.ChequearDatos(Parte: TCVBParte); +var + bError: boolean; +begin +{ bError := False; + + if Parte = CABECERA_GENERAL then + begin + if ((Presentador = '') or (NomCliPres = '') or + (EntRecepPres = '') or (OfiRecepPres = '')) then + begin + if Presentador = '' then + Presentador := _INDICA_; + if NomCliPres = '' then + NomCliPres := _INDICA_; + if EntRecepPres = '' then + EntRecepPres := _INDICA_; + if OfiRecepPres = '' then + OfiRecepPres := _INDICA_; + bError := True; + end; + end + else + if iParte = 2 then + begin + if ((Ordenante = '') or (NomCliOrd = '') or + (EntOrde = '') or (OfiOrde = '') or + (CcOrde = '')) then + begin + if Ordenante = '' then + Ordenante := _INDICA_; + if NomCliOrd = '' then + NomCliOrd := _INDICA_; + if EntOrde = '' then + EntOrde := _INDICA_; + if OfiOrde = '' then + OfiOrde := _INDICA_; + if CcOrde = '' then + CcOrde := _INDICA_; + bError := True; + end; + end + else + if (iParte = 3) or (iParte = 4) then + begin + if ((Referencia = '') or (NomTitDom = '') or + (EntTitDom = '') or (OfiTitDom = '') or + (ccTitDom = '')) then + begin + if Referencia = '' then + Referencia := _INDICA_; + if NomTitDom = '' then + NomTitDom := _INDICA_; + if EntTitDom = '' then + EntTitDom := _INDICA_; + if OfiTitDom = '' then + OfiTitDom := _INDICA_; + if ccTitDom = '' then + ccTitDom := _INDICA_; + bError := True; + end; + end; + + if bError then + ShowMessage('' + CRLF + + 'Faltan datos al procesar el siguiente registro: ' + CRLF + CRLF + + 'Código Cli/Pro: ' + Referencia + CRLF + + 'Nombre Titular: ' + NomTitDom + CRLF + + 'Entidad Domiciliar: ' + EntTitDom + CRLF + + 'Oficina Domiciliar: ' + OfiTitDom + CRLF + + 'Cuenta Domiciliar: ' + ccTitDom + CRLF + + 'Presentador: ' + Presentador + CRLF + + 'Nombre Cliente Pres:' + NomCliPres + CRLF + + 'Entidad Receptora P:' + EntRecepPres + CRLF + + 'Oficina Receptora P:' + OfiRecepPres + CRLF + + 'Ordenante: ' + Ordenante + CRLF + + 'Nombre Cliente Ord.:' + NomCliOrd + CRLF + + 'Entidad Ordenante: ' + EntOrde + CRLF + + 'Oficina Ordenante: ' + OfiOrde + CRLF + + 'Cuenta Ordenante: ' + CcOrde + ); + + if iParte = 3 then + begin + if bError then + begin + if ((fImportePts = 0) and (FEuro = False)) or + ((fImporteEu = 0) and (FEuro = True)) then + begin + ShowMessage('¡¡¡ El importe no puede ser cero !!!'); + Error(27); + end; + end; + end;} +end; + +procedure TCVBNorma32CSB.Error(iErr: integer); +begin + NrError := iErr; + HayError := True; + if Assigned(FEnCasoError) then + FEnCasoError(Self) + else + if FDepura = False then + begin + CloseFile(NFic); + if NrError = _LL_ then + raise Exception.Create('Error en la longitud de la línea') + else + raise Exception.Create('Error en la generación del fichero'); + end; +end; + + +end. diff --git a/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.dfm b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.dfm new file mode 100644 index 00000000..c7585d1a --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.dfm @@ -0,0 +1,335 @@ +object fEditorExportacionNorma32: TfEditorExportacionNorma32 + Left = 0 + Top = 0 + ActiveControl = edtCodEntidad + BorderStyle = bsDialog + Caption = 'Volcado de remesas a disco (Norma 32)' + ClientHeight = 366 + ClientWidth = 389 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poMainFormCenter + OnCreate = FormCreate + DesignSize = ( + 389 + 366) + PixelsPerInch = 96 + TextHeight = 13 + object Label2: TLabel + Left = 24 + Top = 144 + Width = 90 + Height = 13 + Margins.Bottom = 0 + Caption = 'Entidad receptora:' + end + object Label3: TLabel + Left = 24 + Top = 171 + Width = 42 + Height = 13 + Margins.Bottom = 0 + Caption = 'Agencia:' + end + object JvgWizardHeader1: TJvgWizardHeader + Left = 0 + Top = 0 + Width = 389 + Height = 60 + CaptionFont.Charset = DEFAULT_CHARSET + CaptionFont.Color = clWindowText + CaptionFont.Height = -11 + CaptionFont.Name = 'Tahoma' + CaptionFont.Style = [fsBold] + CommentFont.Charset = DEFAULT_CHARSET + CommentFont.Color = clWindowText + CommentFont.Height = -11 + CommentFont.Name = 'Tahoma' + CommentFont.Style = [] + SymbolFont.Charset = DEFAULT_CHARSET + SymbolFont.Color = clHighlightText + SymbolFont.Height = -35 + SymbolFont.Name = 'Wingdings' + SymbolFont.Style = [fsBold] + Captions.Strings = ( + 'Volcado de remesas a disco') + Comments.Strings = ( + 'Introduzca los siguientes datos para realizar el volcado') + Gradient.FromColor = clHighlight + Gradient.ToColor = clWindow + Gradient.Active = False + Gradient.Orientation = fgdVertical + BufferedDraw = False + ExplicitLeft = -8 + ExplicitTop = 76 + end + object Image1: TImage + Left = 345 + Top = 15 + Width = 28 + Height = 28 + AutoSize = True + Picture.Data = { + 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00 + 00001C0806000000720DDF940000000970485973000017120000171201679FD2 + 520000000467414D410000B18E7CFB5193000002CA4944415478DAADD55F4853 + 511C07F0DF25C49012DA8B1085A14581E46EAD19A3D05885CA8CA251D04325BD + D89342BEF5B087E8CD0C7AA90916E5F0A558C8989935872C866C63EE4F5BB9A8 + 508CB27AB01552F3EE4F3BBFED1E76B7BBED8E7B7F2078CFBDDCCF39BF73EE77 + 8CF575280312CA785ACD4879AE5A31043C7FAABDE243CF1D61B87DC70C81D907 + B2D1AA603A9D86296704548D0D70C3745780AAAFD833A189BE9A265111241897 + 4CC3B4EB1DE8D816887D5EA32862E12F00C1EBCA80630C03FD090E382E05AF16 + 62D8523A91260318BB59308DD89501138718A81FBE07639787E0E2AF8DEC2A53 + F0F4851BEF8D3B5288C5FFFC8551F35CAEB5EDBB406A6B4B401E4B8C0EE1F5E3 + 2040DFDA3AB6F6DCCD058A91499031D201DFDB1590DA5E01588CF14550FDF20F + B860F2E27557C75E8AE5E014FEFFCCB65815A520D9B3014B295688721333D852 + 52DA83CD303EE9A6F7CFF6AA21B199849773D18A2882674EB4E10C2D0DF5D0CF + 8A631DD15570FB23F068D286878694A08DAC39A3EFDC8FE8269704DFC35EA62C + D873EC00DD13AB6A9B00E53172DF1B7A8F60D9CF228B6A35CDE0F3AF945D2582 + 278FEECBED497E3F6676AA102DC4C85F20FA8182783A8B3EFC9EE137996F3FE3 + 150F10829D9A56FAD2647EA5F32D4D028C8C45621F05A0580EDFB2AC22681DD1 + D1B1C21C4650A7DE23C004A72F3F464A0C2CFE86D9ABD308660203785D9CC308 + 1E69DB0D368707A4542DA0580E2358185B52AA1A187C62289BC3B27E6E447338 + BE08E9ED2CDD9AE21C5616CC62B034082EA71B0E0FFEA36780CF61B21DCA829E + E3008DB997C7B2B9BEE3D26F7AE8EC4EAFC2607E753CE89A0268BDB64EBFEF59 + 975F3990BCB0CEDF4531BEC82AC1F01DF772DE13520624395CB71112AC8E2FB2 + 4A95F12B4E88CF61D920C9E186B0BE042B44B71A96690ECB6FA93609AEFB9A8A + CF6DE9FE447358362896C362D1C8C7A26CB0D61C960DD69AC3B2C15A73F83F42 + 0A9D9B19DC72610000000049454E44AE426082} + end + object Bevel1: TBevel + Left = 8 + Top = 321 + Width = 373 + Height = 3 + Anchors = [akLeft, akRight, akBottom] + Shape = bsBottomLine + ExplicitTop = 328 + end + object Label1: TLabel + Left = 24 + Top = 264 + Width = 71 + Height = 13 + Margins.Bottom = 0 + Caption = 'Guardar como:' + end + object Bevel2: TBevel + Left = 24 + Top = 245 + Width = 349 + Height = 3 + Anchors = [akLeft, akTop, akRight] + Shape = bsBottomLine + end + object Label5: TLabel + Left = 202 + Top = 144 + Width = 48 + Height = 13 + Margins.Bottom = 0 + Caption = '(4 d'#237'gitos)' + end + object Label6: TLabel + Left = 202 + Top = 171 + Width = 48 + Height = 13 + Margins.Bottom = 0 + Caption = '(4 d'#237'gitos)' + end + object Label7: TLabel + Left = 24 + Top = 90 + Width = 65 + Height = 13 + Margins.Bottom = 0 + Caption = 'Identificador:' + end + object Label8: TLabel + Left = 301 + Top = 90 + Width = 54 + Height = 13 + Margins.Bottom = 0 + Caption = '(15 d'#237'gitos)' + end + object Label9: TLabel + Left = 24 + Top = 117 + Width = 69 + Height = 13 + Margins.Bottom = 0 + Caption = 'C'#243'digo I.N.E.:' + end + object Label10: TLabel + Left = 301 + Top = 117 + Width = 48 + Height = 13 + Margins.Bottom = 0 + Caption = '(9 d'#237'gitos)' + end + object Label4: TLabel + Left = 24 + Top = 201 + Width = 78 + Height = 13 + Margins.Bottom = 0 + Caption = 'Fecha de cargo:' + end + object edtCodEntidad: TcxMaskEdit + Left = 120 + Top = 141 + Properties.BeepOnError = True + Properties.MaxLength = 4 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 2 + Text = ' ' + Width = 73 + end + object edtCodAgencia: TcxMaskEdit + Left = 120 + Top = 168 + Properties.BeepOnError = True + Properties.MaxLength = 4 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 3 + Text = ' ' + Width = 73 + end + object CancelBtn: TButton + Left = 301 + Top = 330 + Width = 75 + Height = 25 + Anchors = [akLeft, akRight, akBottom] + Cancel = True + Caption = '&Cancelar' + ModalResult = 2 + TabOrder = 7 + OnClick = CancelBtnClick + end + object OKBtn: TButton + Left = 202 + Top = 330 + Width = 85 + Height = 25 + Action = actVolcar + Anchors = [akLeft, akRight, akBottom] + TabOrder = 6 + end + object JvFilenameEdit1: TJvFilenameEdit + Left = 24 + Top = 283 + Width = 349 + Height = 21 + Flat = False + ParentFlat = False + Filter = 'Ficheros de norma 32 (*.C32)|*.C32' + DialogOptions = [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist] + DialogTitle = 'Volcar a disco la remesa' + TabOrder = 5 + end + object edtCodigoIdentif: TcxMaskEdit + Left = 120 + Top = 87 + Properties.BeepOnError = True + Properties.MaxLength = 15 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 0 + Text = ' ' + Width = 167 + end + object edtINE: TcxMaskEdit + Left = 120 + Top = 114 + Properties.BeepOnError = True + Properties.MaxLength = 9 + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Text = ' ' + Width = 167 + end + object edtFechaCargo: TcxDateEdit + Left = 120 + Top = 198 + Properties.DateButtons = [btnToday] + Properties.ImmediatePost = True + Properties.SaveTime = False + Properties.ShowTime = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 167 + end + object JvFormStorage: TJvFormStorage + AppStorage = JvAppRegistryStorage + AppStoragePath = 'fEditorBase\' + VersionCheck = fpvcNocheck + StoredProps.Strings = ( + 'edtCodAgencia.Text' + 'edtCodEntidad.Text' + 'edtCodigoIdentif.Text' + 'edtINE.Text') + StoredValues = <> + Left = 80 + Top = 32 + end + object JvAppRegistryStorage: TJvAppRegistryStorage + StorageOptions.BooleanStringTrueValues = 'TRUE, YES, Y' + StorageOptions.BooleanStringFalseValues = 'FALSE, NO, N' + Root = 'Software\%APPL_NAME%' + SubStorages = <> + Left = 112 + Top = 32 + end + object ActionList1: TActionList + Left = 144 + Top = 32 + object actVolcar: TAction + Caption = 'Volcar a disco' + OnExecute = actVolcarExecute + OnUpdate = actVolcarUpdate + end + end +end diff --git a/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.pas b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.pas new file mode 100644 index 00000000..d5d89f28 --- /dev/null +++ b/Source/Modulos/Banca electronica/Views/uEditorExportacionNorma32.pas @@ -0,0 +1,229 @@ +unit uEditorExportacionNorma32; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ExtCtrls, StdCtrls, pngimage, cxControls, cxContainer, cxEdit, + cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, + uIEditorExportacionNorma32, JvExControls, JvComponent, JvgWizardHeader, + JvAppStorage, JvAppRegistryStorage, JvComponentBase, JvFormPlacement, + JvDialogs, Mask, JvExMask, JvToolEdit, ActnList; + +type + TfEditorExportacionNorma32 = class(TForm, IEditorExportacionNorma32) + OKBtn: TButton; + CancelBtn: TButton; + Image1: TImage; + Label2: TLabel; + Label3: TLabel; + edtCodEntidad: TcxMaskEdit; + edtCodAgencia: TcxMaskEdit; + JvgWizardHeader1: TJvgWizardHeader; + Bevel1: TBevel; + JvFormStorage: TJvFormStorage; + JvAppRegistryStorage: TJvAppRegistryStorage; + Label1: TLabel; + Bevel2: TBevel; + JvFilenameEdit1: TJvFilenameEdit; + ActionList1: TActionList; + actVolcar: TAction; + Label5: TLabel; + Label6: TLabel; + Label7: TLabel; + edtCodigoIdentif: TcxMaskEdit; + Label8: TLabel; + Label9: TLabel; + edtINE: TcxMaskEdit; + Label10: TLabel; + Label4: TLabel; + edtFechaCargo: TcxDateEdit; + procedure OKBtnClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure CancelBtnClick(Sender: TObject); + procedure actVolcarUpdate(Sender: TObject); + procedure actVolcarExecute(Sender: TObject); + private + FFichero : String; + protected + procedure SetCodigoEntidad(const AValue: String); + function GetCodigoEntidad : String; + + procedure SetCodigoAgencia(const AValue: String); + function GetCodigoAgencia : String; + + function GetCodigoINE: String; + procedure SetCodigoINE(const Value: String); + + procedure SetCodigoIdentif(const Value: String); + function GetCodigoIdentif: String; + + procedure SetFechaCargo(const AValue: TDateTime); + function GetFechaCargo : TDateTime; + + procedure SetFichero(const AValue: String); + function GetFichero : String; + public + property CodigoEntidad : String read GetCodigoEntidad write SetCodigoEntidad; + property CodigoAgencia : String read GetCodigoAgencia write SetCodigoAgencia; + property CodigoIdentif : String read GetCodigoIdentif write SetCodigoIdentif; + property CodigoINE : String read GetCodigoINE write SetCodigoINE; + property FechaCargo : TDateTime read GetFechaCargo write SetFechaCargo; + property Fichero : String read GetFichero write SetFichero; + end; + + +implementation + +{$R *.dfm} + +uses + uDialogUtils; + +{ TfEditorExportacionNorma32 } + +procedure TfEditorExportacionNorma32.actVolcarExecute(Sender: TObject); +begin + FFichero := JvFilenameEdit1.FileName; + ModalResult := mrOk; +end; + +procedure TfEditorExportacionNorma32.actVolcarUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := + (Length(edtCodEntidad.Text) = 4) and + (Length(edtCodAgencia.Text) = 4) and + (Length(JvFilenameEdit1.Text) > 0) +end; + +procedure TfEditorExportacionNorma32.CancelBtnClick(Sender: TObject); +begin + Close; +end; + +procedure TfEditorExportacionNorma32.FormCreate(Sender: TObject); +var + APath : String; +begin + inherited; + with JvFormStorage do + begin + if Pos('_', Self.Name) = 0 then + APath := Self.Name + else + APath := Copy(Self.Name, 0, (Pos('_', Self.Name)-1)); + AppStoragePath := APath; + end; + edtFechaCargo.Date := Now; +end; + +function TfEditorExportacionNorma32.GetCodigoAgencia: String; +begin + Result := edtCodAgencia.Text; +end; + +function TfEditorExportacionNorma32.GetCodigoEntidad: String; +begin + Result := edtCodEntidad.Text; +end; + +function TfEditorExportacionNorma32.GetCodigoINE: String; +begin + Result := edtINE.Text; +end; + +function TfEditorExportacionNorma32.GetFechaCargo: TDateTime; +begin + Result := edtFechaCargo.Date; +end; + +function TfEditorExportacionNorma32.GetFichero: String; +begin + Result := FFichero; +end; + +function TfEditorExportacionNorma32.GetCodigoIdentif: String; +begin + Result := edtCodigoIdentif.Text; +end; + +procedure TfEditorExportacionNorma32.OKBtnClick(Sender: TObject); +var + ASaveDialog : TSaveDialog; // Save dialog variable + AArchivo : string; + ARuta : String; +begin + AArchivo := FFichero; + ARuta := ExtractFilePath(Application.ExeName); + +// ASaveDialog := TSaveDialog.Create(nil); +// try +// ASaveDialog.Title := 'Volcar a disco la remesa'; +// ASaveDialog.FileName := FFichero; +// +// ASaveDialog.InitialDir := GetCurrentDir; +// +// ASaveDialog.Filter := 'Ficheros de norma 19 (*.C19)|*.C19'; +// ASaveDialog.DefaultExt := 'C19'; +// ASaveDialog.FilterIndex := 1; +// +// try +// if ASaveDialog.Execute then +// begin +// FFichero := ASaveDialog.FileName; +// ModalResult := mrOk +// end +// else begin +// ModalResult := mrCancel; +// end; +// except +// on e: exception do +// ShowErrorMessage('error', 'error', e); +// end; +// finally +// FreeAndNIL(ASaveDialog); +// end; + +{ if SaveFileDialog(Application.Handle, 'C19', 'Ficheros de norma 19 (*.C19)|*.C19', + 'c:\', 'Volcar a disco la remesa', FFichero) then} + if SaveFileDialog(Application.Handle, 'C19', 'Ficheros de norma 19 (*.C19)|*.C19', + ARuta, 'Volcar a disco la remesa', AArchivo) then + ModalResult := mrOk + else + ModalResult := mrCancel; + +end; + +procedure TfEditorExportacionNorma32.SetCodigoAgencia(const AValue: String); +begin + edtCodAgencia.Text := AValue; +end; + +procedure TfEditorExportacionNorma32.SetCodigoEntidad(const AValue: String); +begin + edtCodEntidad.Text := AValue; +end; + +procedure TfEditorExportacionNorma32.SetCodigoINE(const Value: String); +begin + edtINE.Text := Value; +end; + +procedure TfEditorExportacionNorma32.SetFechaCargo(const AValue: TDateTime); +begin + edtFechaCargo.Date := AValue; +end; + +procedure TfEditorExportacionNorma32.SetFichero(const AValue: String); +begin + FFichero := AValue; + JvFilenameEdit1.InitialDir := ExtractFilePath(Application.ExeName); + JvFilenameEdit1.FileName := JvFilenameEdit1.InitialDir + PathDelim + FFichero; +end; + +procedure TfEditorExportacionNorma32.SetCodigoIdentif(const Value: String); +begin + edtCodigoIdentif.Text := Value; +end; + +end. diff --git a/Source/Modulos/Remesas de cliente/RemesasCliente_Group.bdsgroup b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.bdsgroup new file mode 100644 index 00000000..e1b69085 --- /dev/null +++ b/Source/Modulos/Remesas de cliente/RemesasCliente_Group.bdsgroup @@ -0,0 +1,26 @@ + + + + + + + + + + + ..\..\DataAbstract_D10\DataAbstract_D10.bdsproj + ..\..\Base\Base.bdsproj + ..\..\Base\ControllerBase\ControllerBase.bdsproj + ..\..\Base\GUIBase\GUIBase.bdsproj + ..\..\Base\Usuarios\Usuarios.bdsproj + Model\RemesasCliente_model.bdsproj + Data\RemesasCliente_data.bdsproj + Controller\RemesasCliente_controller.bdsproj + Views\RemesasCliente_view.bdsproj + Plugin\RemesasCliente_plugin.bdsproj + DataAbstract_D10.bpl Base.bpl ControllerBase.bpl GUIBase.bpl Usuarios.bpl RemesasCliente_model.bpl RemesasCliente_data.bpl RemesasCliente_controller.bpl RemesasCliente_view.bpl RemesasCliente_plugin.bpl + + + +