Version 2.6.7

git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@111 93f398dd-4eb6-7a46-baf6-13f46f578da2
This commit is contained in:
roberto 2016-04-12 15:48:31 +00:00
parent fc9e51cab4
commit 355542a949
32 changed files with 1789 additions and 221 deletions

Binary file not shown.

Binary file not shown.

View File

@ -105,7 +105,10 @@ contains
uStringsUtils in 'Utiles\uStringsUtils.pas',
uAppInfoUtils in 'Utiles\uAppInfoUtils.pas',
uViewConfiguracionRegistryUtils in 'Utiles\ClassRegistry\uViewConfiguracionRegistryUtils.pas',
uEMailUtils in 'Utiles\uEMailUtils.pas';
uEMailUtils in 'Utiles\uEMailUtils.pas',
IBANMetrics in 'Utiles\TIBAN\IBANMetrics.pas',
IBAN in 'Utiles\TIBAN\IBAN.pas',
uIBANUtils in 'Utiles\uIBANUtils.pas';
end.

View File

@ -44,6 +44,20 @@
<Borland.ProjectType>Package</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">Libreria base de FactuGES</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="$(BDS)\Bin\dclintraweb_90_100.bpl">VCL for the Web Design Package for CodeGear RAD Studio</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclwebsnap100.bpl">CodeGear WebSnap Components</Excluded_Packages>
<Excluded_Packages Name="$(BDS)\bin\dclsoap100.bpl">CodeGear SOAP Components</Excluded_Packages>
@ -59,54 +73,6 @@
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" />
<DCCReference Include="..\Servidor\adortl.dcp" />
<DCCReference Include="..\Servidor\cxDataD11.dcp" />
<DCCReference Include="..\Servidor\cxEditorsD11.dcp" />
<DCCReference Include="..\Servidor\cxExtEditorsD11.dcp" />
<DCCReference Include="..\Servidor\cxGridD11.dcp" />
<DCCReference Include="..\Servidor\cxLibraryD11.dcp" />
<DCCReference Include="..\Servidor\cxPageControlD11.dcp" />
<DCCReference Include="..\Servidor\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\Servidor\dbrtl.dcp" />
<DCCReference Include="..\Servidor\dclIndyCore.dcp" />
<DCCReference Include="..\Servidor\designide.dcp" />
<DCCReference Include="..\Servidor\dsnap.dcp" />
<DCCReference Include="..\Servidor\dxGDIPlusD11.dcp" />
<DCCReference Include="..\Servidor\dxPSCoreD11.dcp" />
<DCCReference Include="..\Servidor\dxThemeD11.dcp" />
<DCCReference Include="..\Servidor\GUISDK_D11R.dcp" />
<DCCReference Include="..\Servidor\IndyCore.dcp" />
<DCCReference Include="..\Servidor\IndyProtocols.dcp" />
<DCCReference Include="..\Servidor\IndySystem.dcp" />
<DCCReference Include="..\Servidor\Jcl.dcp" />
<DCCReference Include="..\Servidor\JclVcl.dcp" />
<DCCReference Include="..\Servidor\JSDialog100.dcp" />
<DCCReference Include="..\Servidor\JvCmpD11R.dcp" />
<DCCReference Include="..\Servidor\JvCoreD11R.dcp" />
<DCCReference Include="..\Servidor\JvCtrlsD11R.dcp" />
<DCCReference Include="..\Servidor\JvDlgsD11R.dcp" />
<DCCReference Include="..\Servidor\JvMMD11R.dcp" />
<DCCReference Include="..\Servidor\JvNetD11R.dcp" />
<DCCReference Include="..\Servidor\JvPageCompsD11R.dcp" />
<DCCReference Include="..\Servidor\JvStdCtrlsD11R.dcp" />
<DCCReference Include="..\Servidor\JvSystemD11R.dcp" />
<DCCReference Include="..\Servidor\pckMD5.dcp" />
<DCCReference Include="..\Servidor\pckUCDataConnector.dcp" />
<DCCReference Include="..\Servidor\pckUserControl_RT.dcp" />
<DCCReference Include="..\Servidor\PluginSDK_D11R.dcp" />
<DCCReference Include="..\Servidor\PngComponentsD10.dcp" />
<DCCReference Include="..\Servidor\PNG_D10.dcp" />
<DCCReference Include="..\Servidor\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\Servidor\rtl.dcp" />
<DCCReference Include="..\Servidor\TB2k_D10.dcp" />
<DCCReference Include="..\Servidor\tbx_d10.dcp" />
<DCCReference Include="..\Servidor\vcl.dcp" />
<DCCReference Include="..\Servidor\vclactnband.dcp" />
<DCCReference Include="..\Servidor\vcldb.dcp" />
<DCCReference Include="..\Servidor\vcljpg.dcp" />
<DCCReference Include="..\Servidor\VclSmp.dcp" />
<DCCReference Include="..\Servidor\vclx.dcp" />
<DCCReference Include="..\Servidor\xmlrtl.dcp" />
<DCCReference Include="Conexion\uConfigurarConexion.pas">
<Form>fConfigurarConexion</Form>
<DesignClass>TForm</DesignClass>
@ -130,11 +96,54 @@
<Form>dmBase</Form>
<DesignClass>TDataModule</DesignClass>
</DCCReference>
<DCCReference Include="Utiles\adortl.dcp" />
<DCCReference Include="Utiles\ClassRegistry\uClassRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uEditorRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uInformeRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uViewConfiguracionRegistryUtils.pas" />
<DCCReference Include="Utiles\ClassRegistry\uViewRegistryUtils.pas" />
<DCCReference Include="Utiles\cxDataD11.dcp" />
<DCCReference Include="Utiles\cxEditorsD11.dcp" />
<DCCReference Include="Utiles\cxExtEditorsD11.dcp" />
<DCCReference Include="Utiles\cxGridD11.dcp" />
<DCCReference Include="Utiles\cxLibraryD11.dcp" />
<DCCReference Include="Utiles\cxPageControlD11.dcp" />
<DCCReference Include="Utiles\DataAbstract_Core_D11.dcp" />
<DCCReference Include="Utiles\dbrtl.dcp" />
<DCCReference Include="Utiles\dclIndyCore.dcp" />
<DCCReference Include="Utiles\designide.dcp" />
<DCCReference Include="Utiles\dsnap.dcp" />
<DCCReference Include="Utiles\dxGDIPlusD11.dcp" />
<DCCReference Include="Utiles\dxPSCoreD11.dcp" />
<DCCReference Include="Utiles\dxThemeD11.dcp" />
<DCCReference Include="Utiles\GUISDK_D11R.dcp" />
<DCCReference Include="Utiles\IndyCore.dcp" />
<DCCReference Include="Utiles\IndyProtocols.dcp" />
<DCCReference Include="Utiles\IndySystem.dcp" />
<DCCReference Include="Utiles\Jcl.dcp" />
<DCCReference Include="Utiles\JclVcl.dcp" />
<DCCReference Include="Utiles\JSDialog100.dcp" />
<DCCReference Include="Utiles\JvCmpD11R.dcp" />
<DCCReference Include="Utiles\JvCoreD11R.dcp" />
<DCCReference Include="Utiles\JvCtrlsD11R.dcp" />
<DCCReference Include="Utiles\JvDlgsD11R.dcp" />
<DCCReference Include="Utiles\JvMMD11R.dcp" />
<DCCReference Include="Utiles\JvNetD11R.dcp" />
<DCCReference Include="Utiles\JvPageCompsD11R.dcp" />
<DCCReference Include="Utiles\JvStdCtrlsD11R.dcp" />
<DCCReference Include="Utiles\JvSystemD11R.dcp" />
<DCCReference Include="Utiles\pckMD5.dcp" />
<DCCReference Include="Utiles\pckUCDataConnector.dcp" />
<DCCReference Include="Utiles\pckUserControl_RT.dcp" />
<DCCReference Include="Utiles\PluginSDK_D11R.dcp" />
<DCCReference Include="Utiles\PngComponentsD10.dcp" />
<DCCReference Include="Utiles\PNG_D10.dcp" />
<DCCReference Include="Utiles\RemObjects_Core_D11.dcp" />
<DCCReference Include="Utiles\rtl.dcp" />
<DCCReference Include="Utiles\TB2k_D10.dcp" />
<DCCReference Include="Utiles\tbx_d10.dcp" />
<DCCReference Include="Utiles\TIBAN\IBAN.pas" />
<DCCReference Include="Utiles\TIBAN\IBANMetrics.pas" />
<DCCReference Include="Utiles\uAppInfoUtils.pas" />
<DCCReference Include="Utiles\uCalculosUtils.pas" />
<DCCReference Include="Utiles\uDataTableUtils.pas" />
@ -143,6 +152,7 @@
<DCCReference Include="Utiles\uDialogUtils.pas" />
<DCCReference Include="Utiles\uEMailUtils.pas" />
<DCCReference Include="Utiles\uGridUtils.pas" />
<DCCReference Include="Utiles\uIBANUtils.pas" />
<DCCReference Include="Utiles\uInfoProjectUtils.pas" />
<DCCReference Include="Utiles\uIntegerListUtils.pas" />
<DCCReference Include="Utiles\uMD5.pas" />
@ -150,6 +160,13 @@
<DCCReference Include="Utiles\uPasswordUtils.pas" />
<DCCReference Include="Utiles\uSistemaFunc.pas" />
<DCCReference Include="Utiles\uStringsUtils.pas" />
<DCCReference Include="Utiles\vcl.dcp" />
<DCCReference Include="Utiles\vclactnband.dcp" />
<DCCReference Include="Utiles\vcldb.dcp" />
<DCCReference Include="Utiles\vcljpg.dcp" />
<DCCReference Include="Utiles\VclSmp.dcp" />
<DCCReference Include="Utiles\vclx.dcp" />
<DCCReference Include="Utiles\xmlrtl.dcp" />
</ItemGroup>
</Project>
<!-- EurekaLog First Line

View File

@ -0,0 +1,453 @@
{*******************************************************}
{ }
{ IBAN }
{ }
{ Copyright (C) 2011 Heiko Adams }
{ }
{*******************************************************}
{
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is IBAN.pas.
The Initial Developer of the Original Code is Heiko Adams <heiko.adams@gmail.com>.
Contributor(s): ______________________________________.
}
unit IBAN;
interface
uses IBANMetrics;
type
TIBAN = class
private
FAccountID: string;
FBankCode: string;
FCountry: string;
FIBAN: string;
// 20130830 Heiko Adams
FLastError: Integer;
FMetrics: TIBANMetrics;
function EncodeCountry(const aLand: string): string;
function Modulo97(const aIBAN:string):Integer;
function CheckIBAN: Boolean;
function CalcIBAN: string;
function GetLand: string;
function GetCountryFromIBAN: string;
procedure SetCountry(const aValue: string);
procedure SetIBAN(const aValue: string);
procedure FillM97Tab;
// 20130830 Heiko Adams
procedure SetErrorCode(nError: Integer);
public
// 20130830 Heiko Adams ...
// Don't use these properties because they are deprecated and will be
// removed in future versions of this class!
property Konto: string read FAccountID write FAccountID;
property BLZ: string read FBankCode write FBankCode;
property Land: string read GetLand write SetCountry;
// ... 20130830 Heiko Adams
// 20130830 Heiko Adams i18n version of german named public properties ...
property BankAccount: string read FAccountID write FAccountID;
property BankCode: string read FBankCode write FBankCode;
property Country: string read GetLand write SetCountry;
// ... 20130830 Heiko Adams
property IBAN: string read CalcIBAN write SetIBAN;
property Valid: Boolean read CheckIBAN;
// 20130830 Heiko Adams
property ErrorCode: Integer read FLastError;
function checkIBANCode(const sIban: String): boolean; deprecated;
function IsIBAN(const s:string):boolean;
// 20130830 Heiko Adams ...
function GetAccountNumberFromIBAN: string;
function GetBankCodeFromIBAN: string;
// ... 20130830 Heiko Adams
constructor Create;
destructor Destroy; override;
end;
var
m97tab:array[0..96,0..9] of byte;
implementation
uses SysUtils, Windows;
destructor TIBAN.Destroy;
begin
ZeroMemory(@FMetrics, SizeOf(FMetrics));
inherited;
end;
constructor TIBAN.Create;
begin
inherited;
// 20130830 Heiko Adams
SetErrorCode(0);
FillM97Tab;
end;
procedure TIBAN.SetErrorCode(nError: Integer);
begin
FLastError := nError;
end;
function TIBAN.GetAccountNumberFromIBAN: string;
begin
Result := EmptyStr;
// 20130830 Heiko Adams
SetErrorCode(0);
if {(Assigned(FMetrics)) and} (trim(FIBAN) <> EmptyStr) then
Result := Copy(FIBAN, FMetrics.nStartKTO, FMetrics.nLenKTO)
// 20130830 Heiko Adams ...
else
SetErrorCode(-180);
// ... 20130830 Heiko Adams
end;
function TIBAN.GetBankCodeFromIBAN: string;
begin
Result := EmptyStr;
// 20130830 Heiko Adams
SetErrorCode(0);
if {Assigned(FMetrics) and} (trim(FIBAN) <> EmptyStr) then
Result := Copy(FIBAN, FMetrics.nStartBLZ, FMetrics.nLenBLZ)
// 20130830 Heiko Adams ...
else
SetErrorCode(-190);
// ... 20130830 Heiko Adams
end;
procedure TIBAN.SetCountry(const aValue: string);
begin
// 20130830 Heiko Adams
SetErrorCode(0);
FCountry := Trim(UpperCase(Copy(aValue, 1, 2)));
if (Length(FCountry) < 2) then
// 20130830 Heiko Adams
//raise Exception.CreateFmt('Invalid country code: %s', [aValue]);
SetErrorCode(-100);
ZeroMemory(@FMetrics, SizeOf(FMetrics));
FMetrics := GetIBANMetrics(FCountry);
//20130901 Heiko Adams
SetErrorCode(FMetrics.nErrorCode);
end;
function TIBAN.GetCountryFromIBAN: string;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
if (Trim(FIBAN) = EmptyStr) then
// 20130830 Heiko Adams
//raise Exception.Create('IBAN not set');
SetErrorCode(-110);
Result := Copy(FIBAN, 1, 2);
end;
procedure TIBAN.SetIBAN(const aValue: string);
begin
// 20130830 Heiko Adams
SetErrorCode(0);
if (Trim(aValue) = EmptyStr) then
// 20130830 Heiko Adams
//raise Exception.Create('No IBAN submitted');
SetErrorCode(-120);
FIBAN := aValue;
SetCountry(GetCountryFromIBAN);
end;
function TIBAN.GetLand: string;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
Result := EmptyStr;
if not (FCountry = EmptyStr) then
Result := FCountry
else if not (FIBAN = EmptyStr) then
Result := GetCountryFromIBAN
else
// 20130830 Heiko Adams
//raise Exception.Create('No country or IBAN set');
SetErrorCode(-130);
end;
// Original code by shima (http://www.delphipraxis.net/1061658-post6.html)
function TIBAN.Modulo97(const aIBAN:string):Integer;
const
m36:string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
nCounter, nPruef : Integer;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
Result := 0;
for nCounter := 1 to Length(aIBAN) do
begin
nPruef := Pos(aIBAN[nCounter], m36) ;
if (nPruef = 0) then
// 20130830 Heiko Adams
//raise Exception.CreateFmt('Modulo97PruefZiffer(%s): invalid data', [aIBAN]);
SetErrorCode(-140);
Dec(nPruef);
if (nPruef > 9) then
begin
Result := Result * 10 + (nPruef div 10);
nPruef := nPruef mod 10;
end;
Result := Result * 10 + nPruef;
Result := Result mod 97;
end;
end;
// Code beigesteuert von Amateurprofi (http://www.delphipraxis.net/159320-iban-ueberpruefen.html#post1154665)
procedure TIBAN.FillM97Tab;
var
i,j:Integer;
begin
for i:=0 to 96 do
for j:=0 to 9 do
m97tab[i,j]:=(i*10+j) Mod 97;
end;
function TIBAN.EncodeCountry(const aLand: string): string;
var
sLetter: Char;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
if (Length(Trim(aLand)) <> 2) then
SetErrorCode(-100);
// 20130830 Heiko Adams
//raise Exception.CreateFmt('Invalid country code: %s', [aLand]);
for sLetter in aLand do
case sLetter of
'A': Result := Result + '10';
'B': Result := Result + '11';
'C': Result := Result + '12';
'D': Result := Result + '13';
'E': Result := Result + '14';
'F': Result := Result + '15';
'G': Result := Result + '16';
'H': Result := Result + '17';
'I': Result := Result + '18';
'J': Result := Result + '19';
'K': Result := Result + '20';
'L': Result := Result + '21';
'M': Result := Result + '22';
'N': Result := Result + '23';
'O': Result := Result + '24';
'P': Result := Result + '25';
'Q': Result := Result + '26';
'R': Result := Result + '27';
'S': Result := Result + '28';
'T': Result := Result + '29';
'U': Result := Result + '30';
'V': Result := Result + '31';
'W': Result := Result + '32';
'X': Result := Result + '33';
'Y': Result := Result + '34';
'Z': Result := Result + '35';
else
// 20130830 Heiko Adams
//raise Exception.CreateFmt('Invalid country code: %s', [aLand]);
SetErrorCode(-100);
end;
end;
function TIBAN.CheckIBAN(): Boolean;
var
sBLZ: string;
sKTO: string;
sIBAN: string;
sLand: string;
sControl: string;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
Result := (Length(FIBAN) = FMetrics.nLenIBAN);
if Result then
begin
sControl := Copy(FIBAN, 3, 2);
sBLZ := Copy(FIBAN, FMetrics.nStartBLZ, FMetrics.nLenBLZ);
sKTO := Copy(FIBAN, FMetrics.nStartKTO, FMetrics.nLenKTO);
sLand := EncodeCountry(GetCountryFromIBAN);
sIBAN := sBLZ + sKTO + sLand + sControl;
Result := (Modulo97(sIBAN) = 1);
end
// 20130830 Heiko Adams ...
else
SetErrorCode(-150);
// ... 20130830 Heiko Adams
end;
function TIBAN.CalcIBAN(): string;
var
sKTO: string;
sIBAN: string;
nControl: Integer;
sControl: string;
const
sSuffix = '00';
nControlBase = 98;
begin
sKTO := StringOfChar('0', FMetrics.nLenKTO - Length(FAccountID)) + FAccountID;
sIBAN := FBankCode + sKTO + EncodeCountry(FCountry)+ sSuffix;
nControl := Modulo97(sIBAN);
nControl := nControlBase - nControl;
// 20120224 Heiko Adams
// make shure controlnumber has allways two characters
// thanks to Henry van der Mark for this hint
//FIBAN := FLand + IntToStr(nControl) + FBLZ + sKTO;
sControl := IntToStr(nControl);
if (nControl < 10) then
sControl := '0' + sControl;
FIBAN := FCountry + sControl + FBankCode + sKTO;
Result := FIBAN;
end;
// Prüfung einer IBAN auf formale Korrektheit (ohne Prüfung der Gültigkeit des Länderkürzels)
// Autor: Dr. Michael Schramm, Bordesholm
function TIBAN.checkIBANCode(const sIban: String): boolean;
var k,i,n,len: integer; c: char;
buff: array[0..67] of char;
begin
result:= false;
n:= length(sIban);
if (n < 5) or (n > 34) then
exit;
len:= 0;
k:= 5;
repeat // IBAN als Ziffernfolge in geänderter Reihenfolge in buff schreiben
c:= sIban[k];
if (c >= '0') and (c <= '9') then
begin
buff[len]:= c;
inc(len)
end
else if (c >= 'A') and (c <= 'Z') then
begin
i:= ord(c)-55;
buff[len]:= char(i div 10 + 48);
inc(len);
buff[len]:= char(i mod 10 + 48);
inc(len);
end
else
exit;
inc(k);
if (k > n) then
k:= 1
until k = 5;
i:= 0; // aktueller Rest für Modulo-Berechnung
for k:= 0 to len-1 do
begin // modulo 97 berechnen
i:= (i * 10 + ord(buff[k]) - 48) mod 97;
end;
result:= (i = 1)
end;
// Code beigesteuert von Amateurprofi (http://www.delphipraxis.net/159320-iban-ueberpruefen.html#post1154665)
function TIBAN.IsIBAN(const s:string):boolean;
var
len: integer;
cs: byte;
function GetCheckSum(first,last:integer):boolean;
var
i: integer;
c: integer;
begin
for i:=first to last do
begin
c:=Ord(s[i])-48;
case c of
0..9 : cs:=m97tab[cs,c];
17..42 : cs:=m97tab[m97tab[cs,(c-7) Div 10],(c-7) Mod 10];
else
Exit;
end;
end;
result:=true;
end;
begin
// 20130830 Heiko Adams
SetErrorCode(0);
len:=Length(s);
if (len<5) or (len>34) then
begin
// 20130830 Heiko Adams
SetErrorCode(-160);
Exit;
end;
cs:=0;
if not GetCheckSum(5,len) then
begin
// 20130830 Heiko Adams
SetErrorCode(-170);
Exit;
end;
if not GetCheckSum(1,4) then
begin
// 20130830 Heiko Adams
SetErrorCode(-170);
Exit;
end;
Result := (cs=1);
end;
end.

View File

@ -0,0 +1,266 @@
{*******************************************************}
{ }
{ IBANMetrics }
{ }
{ Copyright (C) 2011 Heiko Adams }
{ }
{*******************************************************}
{
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is IBANMetrics.pas.
The Initial Developer of the Original Code is Heiko Adams <heiko.adams@gmail.com>.
Contributor(s): Peter Mauss (Peter.Mauss@Advertum.de).
}
unit IBANMetrics;
interface
type
TIBANMetrics = packed record
nLenIBAN: Word;
nStartBLZ: Word;
nLenBLZ: Word;
nStartKTO: Word;
nLenKTO: Word;
//20130830 Heiko Adams ..
nStartChk: Word;
nLenChk: Word;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:String;
//20130901 Heiko Adams
nErrorCode: Integer;
end;
function GetIBANMetrics(const aLand: string): TIBANMetrics;
implementation
uses SysUtils;
function GetIBANMetrics(const aLand: string): TIBANMetrics;
begin
{
Übersicht über die Struktur der IBAN in verschiedenen Ländern:
https://de.wikipedia.org/wiki/International_Bank_Account_Number#IBAN-Struktur_in_verschiedenen_L.C3.A4ndern
}
//20130901 Heiko Adams
Result.nErrorCode := 0;
if (aLand = 'AT') then
begin
with Result do
begin
nLenIBAN := 20;
nLenBLZ := 5;
nLenKTO := 11;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa;0;_';
end;
end
else if (aLand = 'BE') then
begin
with Result do
begin
nLenIBAN := 16;
nLenBLZ := 3;
// 20130830 Heiko Adams
//nLenKTO := 5;
nLenKTO := 7;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 15;
nLenChk := 2;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa;0;_';
end;
end
else if (aLand = 'CH') then
begin
with Result do
begin
nLenIBAN := 21;
nLenBLZ := 5;
nLenKTO := 12;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa a;0;_';
end;
end
else if (aLand = 'DE') then
begin
with Result do
begin
nLenIBAN := 22;
nLenBLZ := 8;
nLenKTO := 10;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 9999 9999 9999 9999 99;0;_';
end;
end
else if (aLand = 'DK') then
begin
with Result do
begin
nLenIBAN := 18;
nLenBLZ := 4;
nLenKTO := 10;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 18;
nLenChk := 1;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aa;0;_';
end;
end
else if (aLand = 'FR') then
begin
with Result do
begin
nLenIBAN := 27;
nLenBLZ := 5;
nLenKTO := 11;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 26;
nLenChk := 2;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa aaaa aaa;0;_';
end;
end
else if (aLand = 'LI') then
begin
with Result do
begin
nLenIBAN := 21;
nLenBLZ := 5;
nLenKTO := 12;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa a;0;_';
end;
end
else if (aLand = 'LU') then
begin
with Result do
begin
nLenIBAN := 20;
nLenBLZ := 3;
//20130830 Heiko Adams
//nLenKTO := 17;
nLenKTO := 13;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa;0;_';
end;
end
else if (aLand = 'NL') then
begin
with Result do
begin
nLenIBAN := 18;
nLenBLZ := 4;
nLenKTO := 10;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aa;0;_';
end;
end
else if (aLand = 'CZ') then
begin
with Result do
begin
nLenIBAN := 24;
nLenBLZ := 4;
nLenKTO := 16;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 0;
nLenChk := 0;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa aaaa;0;_';
end;
end
else if (aLand = 'PL') then
begin
with Result do
begin
nLenIBAN := 28;
//20130830 Heiko Adams
//nLenBLZ := 7;
nLenBLZ := 3;
nLenKTO := 16;
nStartBLZ := 5;
nStartKTO := nStartBLZ + nLenBLZ;
//20130830 Heiko Adams ..
nStartChk := 11;
nLenChk := 1;
// .. 20130830 Heiko Adams
//20130830 Peter Mauss
nMask:='>ll99 aaaa aaaa aaaa aaaa aaaa aa;0;_';
end;
end
else
//20130901 Heiko Adams
//raise Exception.CreateFmt('Country (%s) not supported yet', [aLand]);
Result.nErrorCode := -190;
end;
end.

View File

@ -0,0 +1,11 @@
Error-Code Error
-100 The country code is invalid
-110 The IBAN has not been set
-120 No IBAN has been submitted
-130 Country or IBAN haven't been set
-140 Invalid data
-150 IBAN is invalid
-160 Length of the submitted IBAN doesn't match
-170 Checksum doesn't match
-180 Unable to extract account number from IBAN
-190 The country is currently unsupported

View File

@ -0,0 +1,39 @@
unit uIBANUtils;
interface
uses
SysUtils, Classes, IBAN;
function EsCodigoIBANValido(AIBAN : string): boolean;
function GenerarCodigoIBAN(CodEntidad, CodOficina, DC, CodCuenta : string): string;
implementation
function EsCodigoIBANValido(AIBAN : string): boolean;
var
auxIBAN : TIBAN;
begin
auxIBAN := TIBAN.Create;
try
Result := auxIBAN.checkIBANCode(AIBAN);
finally
FreeAndNil(auxIBAN);
end;
end;
function GenerarCodigoIBAN(CodEntidad, CodOficina, DC, CodCuenta : string): string;
var
auxIBAN : TIBAN;
begin
auxIBAN := TIBAN.Create;
try
auxIBAN.Country := 'ES';
auxIBAN.BankCode := CodEntidad + CodOficina + DC + CodCuenta;
Result := auxIBAN.IBAN;
finally
FreeAndNil(auxIBAN);
end;
end;
end.

View File

@ -51,7 +51,7 @@
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">6</VersionInfo><VersionInfo Name="Release">6</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.6.6.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.6.6.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">6</VersionInfo><VersionInfo Name="Release">7</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.6.7.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.6.7.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl">File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FactuGES.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject>

Binary file not shown.

View File

@ -20,6 +20,7 @@ type
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ADescuento: Float; const AAll: Boolean = False); overload;
procedure QuitarPrecioDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = False);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
end;
@ -45,6 +46,7 @@ type
procedure AnadirArticulos(ADetalles: IDAStronglyTypedDataTable; const ANuevaFila :Boolean = True);
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); overload;
procedure ActualizarDetalles(ADetalles: IDAStronglyTypedDataTable; ADescuento: Float; const AAll: Boolean = False); overload;
procedure QuitarPrecioDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = False);
procedure CambiarSignoDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean = True);
procedure AnadirConceptoInicial(ADetalles: IDAStronglyTypedDataTable; AConcepto: String);
@ -137,7 +139,7 @@ begin
end;
end;
end;
Next;
Next;
end;
//Volvemos a dejarlo al principio
ADetalles.DataTable.First;
@ -338,6 +340,48 @@ begin
end;
end;
procedure TControllerDetallesArticulos.QuitarPrecioDetalles(ADetalles: IDAStronglyTypedDataTable; const AAll: Boolean);
// AAll => True -> quita el precio de todas los conceptos, False -> sólo quita el precio en los conceptos con cantidades/importe
var
ACantidad: Float;
ACambiar : Boolean;
begin
if Assigned(ADetalles) then
begin
BeginUpdate(ADetalles);
try
ADetalles.DataTable.First;
with ADetalles.DataTable do
begin
while not EOF do
begin
ACambiar := True;
if (ADetalles.DataTable.FieldByName(CAMPO_TIPO).AsString = TIPO_DETALLE_CONCEPTO) then
begin
if (not AAll) and (ADetalles.DataTable.FieldByName('CANTIDAD').IsNull and ADetalles.DataTable.FieldByName('IMPORTE_UNIDAD').IsNull) then
ACambiar := False;
if ACambiar then
begin
Edit;
try
ADetalles.DataTable.FieldByName('IMPORTE_UNIDAD').Clear;
except
on E: Exception do
ShowMessage(E.Message);
end;
end;
end;
Next;
end;
//Volvemos a dejarlo al principio
ADetalles.DataTable.First;
end;
finally
EndUpdate(ADetalles);
end;
end;
end;
function TControllerDetallesArticulos.AnadirArticulo(ADetalles: IDAStronglyTypedDataTable; Referencia: String; TipoReferencia: TEnumReferencia; AClienteID: Integer = -1; const ACantidad: Float = 1): Boolean;
var
AArticulo: IBizArticulo;

View File

@ -116,7 +116,10 @@ end;
procedure TPluginContabilidad.actCajasBancosUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := Assigned(AppFactuGES.EjercicioActivo);
(Sender as TAction).Enabled := Assigned(AppFactuGES.EjercicioActivo)
//Codigo solo para tienda
and ((AppFactuGES.EmpresaActiva.ID = 2) or (AppFactuGES.EmpresaActiva.ID = 3));
end;
procedure TPluginContabilidad.actCuentasEspecialesExecute(Sender: TObject);

View File

@ -12,6 +12,7 @@
<Projects Include="..\Contabilidad\Controller\Contabilidad_controller.dproj" />
<Projects Include="..\Contabilidad\Data\Contabilidad_data.dproj" />
<Projects Include="..\Contabilidad\Model\Contabilidad_model.dproj" />
<Projects Include="..\Contabilidad\Plugin\Contabilidad_plugin.dproj" />
<Projects Include="..\Contabilidad\Views\Contabilidad_view.dproj" />
<Projects Include="Controller\Contactos_controller.dproj" />
<Projects Include="Data\Contactos_data.dproj" />
@ -151,14 +152,23 @@
<Target Name="FactuGES_Server:Make">
<MSBuild Projects="..\..\Servidor\FactuGES_Server.dproj" Targets="Make" />
</Target>
<Target Name="Contabilidad_plugin">
<MSBuild Projects="..\Contabilidad\Plugin\Contabilidad_plugin.dproj" Targets="" />
</Target>
<Target Name="Contabilidad_plugin:Clean">
<MSBuild Projects="..\Contabilidad\Plugin\Contabilidad_plugin.dproj" Targets="Clean" />
</Target>
<Target Name="Contabilidad_plugin:Make">
<MSBuild Projects="..\Contabilidad\Plugin\Contabilidad_plugin.dproj" Targets="Make" />
</Target>
<Target Name="Build">
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contabilidad_model;Contabilidad_data;Contabilidad_controller;Contactos_controller;Contactos_view;Contactos_plugin;Contabilidad_view;FactuGES;FactuGES_Server" />
<CallTarget Targets="Base;GUIBase;ApplicationBase;Contactos_model;Contactos_data;Contabilidad_model;Contabilidad_data;Contabilidad_controller;Contactos_controller;Contactos_view;Contactos_plugin;Contabilidad_view;FactuGES;FactuGES_Server;Contabilidad_plugin" />
</Target>
<Target Name="Clean">
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contabilidad_model:Clean;Contabilidad_data:Clean;Contabilidad_controller:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;Contabilidad_view:Clean;FactuGES:Clean;FactuGES_Server:Clean" />
<CallTarget Targets="Base:Clean;GUIBase:Clean;ApplicationBase:Clean;Contactos_model:Clean;Contactos_data:Clean;Contabilidad_model:Clean;Contabilidad_data:Clean;Contabilidad_controller:Clean;Contactos_controller:Clean;Contactos_view:Clean;Contactos_plugin:Clean;Contabilidad_view:Clean;FactuGES:Clean;FactuGES_Server:Clean;Contabilidad_plugin:Clean" />
</Target>
<Target Name="Make">
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contabilidad_model:Make;Contabilidad_data:Make;Contabilidad_controller:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;Contabilidad_view:Make;FactuGES:Make;FactuGES_Server:Make" />
<CallTarget Targets="Base:Make;GUIBase:Make;ApplicationBase:Make;Contactos_model:Make;Contactos_data:Make;Contabilidad_model:Make;Contabilidad_data:Make;Contabilidad_controller:Make;Contactos_controller:Make;Contactos_view:Make;Contactos_plugin:Make;Contabilidad_view:Make;FactuGES:Make;FactuGES_Server:Make;Contabilidad_plugin:Make" />
</Target>
<Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
</Project>

View File

@ -0,0 +1,28 @@
unit uIEditorDatoBancarioContacto;
interface
uses
uBizContactosDatosBancarios, uDatosBancariosContactoController;
type
IEditorDatoBancarioContacto = interface
['{BDFD97C4-7054-40E5-A7DA-1A3AD1E13673}']
function GetController : IDatosBancariosContactoController;
procedure SetController (const Value : IDatosBancariosContactoController);
property Controller : IDatosBancariosContactoController read GetController
write SetController;
function GetDatoBancario: IBizContactosDatosBancarios;
procedure SetDatoBancario(const Value: IBizContactosDatosBancarios);
property DatoBancario: IBizContactosDatosBancarios read GetDatoBancario write SetDatoBancario;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -0,0 +1,129 @@
unit uDatosBancariosContactoController;
interface
uses
Windows, Forms, Classes, Controls, Contnrs, SysUtils, uDADataTable,
uBizContactos, uBizContactosDatosBancarios, uIDataModuleContactos,
uControllerBase;
type
IDatosBancariosContactoController = interface(IControllerBase)
['{2E1C410A-B11D-4E1C-A7DF-9321BAEA5952}']
procedure Ver(ADatoBancario : IBizContactosDatosBancarios);
function Localizar(ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean;
end;
TDatosBancariosContactoController = class(TControllerBase, IDatosBancariosContactoController)
private
FDataModule : IDataModuleContactos;
function GenerarCodigoIBAN(
ADatosBancarios: IBizContactosDatosBancarios): string;
protected
public
function ValidarCodigoIBAN(AIBAN: string): boolean;
procedure Ver(ADatoBancario : IBizContactosDatosBancarios);
function Localizar(ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean;
constructor Create; override;
destructor Destroy; override;
function ValidarDatosBancarios(ADatosBancarios : IBizContactosDatosBancarios): Boolean; virtual;
end;
implementation
{ TDatosBancariosContactoController }
uses
uDataModuleContactos, schContactosClient_Intf, uIBANUtils, uStringsUtils,
uEditorRegistryUtils, cxControls, uIEditorDatoBancarioContacto;
constructor TDatosBancariosContactoController.Create;
begin
inherited;
FDataModule := TDataModuleContactos.Create(Nil);
end;
destructor TDatosBancariosContactoController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
function TDatosBancariosContactoController.Localizar(
ADatosBancarios: IBizContactosDatosBancarios; const ID : Integer): Boolean;
begin
Result := True;
ShowHourglassCursor;
try
with ADatosBancarios.DataTable do
begin
DisableControls;
First;
if not Locate(fld_DatosBancariosID, ID, []) then
Result := False;
EnableControls;
end;
finally
HideHourglassCursor;
end;
end;
function TDatosBancariosContactoController.ValidarCodigoIBAN(
AIBAN: string): boolean;
begin
//Se desactiva la validación ya que dicen que hay clientes que no les coincide
result := True; //EsCodigoIBANValido(AIBAN)
end;
function TDatosBancariosContactoController.GenerarCodigoIBAN(
ADatosBancarios: IBizContactosDatosBancarios): string;
begin
Result := uIBANUtils.GenerarCodigoIBAN(ADatosBancarios.ENTIDAD,
ADatosBancarios.SUCURSAL, ADatosBancarios.DC, ADatosBancarios.CUENTA);
end;
function TDatosBancariosContactoController.ValidarDatosBancarios(
ADatosBancarios: IBizContactosDatosBancarios): Boolean;
begin
ADatosBancarios.DataTable.Edit;
try
if not EsCadenaVacia(ADatosBancarios.IBAN) then
begin
ADatosBancarios.IBAN := StringReplace(ADatosBancarios.IBAN, ' ', '', [rfReplaceAll]); // Quitar espacios
if not ValidarCodigoIBAN(ADatosBancarios.IBAN) then
raise Exception.Create('Compruebe que el código IBAN es correcto.');
end
else begin
if not EsCadenaVacia(ADatosBancarios.ENTIDAD) and
not EsCadenaVacia(ADatosBancarios.SUCURSAL) and
not EsCadenaVacia(ADatosBancarios.DC) and
not EsCadenaVacia(ADatosBancarios.CUENTA) then
ADatosBancarios.IBAN := GenerarCodigoIBAN(ADatosBancarios);
end;
finally
ADatosBancarios.Post;
end;
Result := True;
end;
procedure TDatosBancariosContactoController.Ver(
ADatoBancario : IBizContactosDatosBancarios);
var
AEditor : IEditorDatoBancarioContacto;
begin
AEditor := NIL;
CreateEditor('EditorDatoBancarioContacto', IEditorDatoBancarioContacto, AEditor);
if Assigned(AEditor) then
try
AEditor.DatoBancario := ADatoBancario;
AEditor.Controller := Self;
AEditor.ShowModal;
finally
AEditor.Release;
AEditor := NIL;
end;
end;
end.

View File

@ -11,12 +11,12 @@ inherited DataModuleContactos: TDataModuleContactos
Top = 16
end
object rda_Contactos: TDARemoteDataAdapter
DataStreamer = Bin2DataStreamer
GetSchemaCall.RemoteService = RORemoteService
GetDataCall.RemoteService = RORemoteService
UpdateDataCall.RemoteService = RORemoteService
GetScriptsCall.RemoteService = RORemoteService
RemoteService = RORemoteService
DataStreamer = Bin2DataStreamer
Left = 43
Top = 143
end
@ -201,8 +201,6 @@ inherited DataModuleContactos: TDataModuleContactos
StreamingOptions = [soDisableEventsWhileStreaming]
RemoteDataAdapter = rda_Contactos
LocalDataStreamer = Bin2DataStreamer
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'Contactos'
IndexDefs = <>
Left = 176
@ -333,8 +331,6 @@ inherited DataModuleContactos: TDataModuleContactos
MasterSource = ds_Contactos
MasterFields = 'ID'
DetailFields = 'ID_CONTACTO'
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'DireccionesContacto'
IndexDefs = <>
Left = 448
@ -404,6 +400,16 @@ inherited DataModuleContactos: TDataModuleContactos
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'IBAN'
DataType = datString
Size = 255
end
item
Name = 'SWIFT'
DataType = datString
Size = 255
end>
Params = <>
MasterMappingMode = mmWhere
@ -413,8 +419,6 @@ inherited DataModuleContactos: TDataModuleContactos
MasterSource = ds_Contactos
MasterFields = 'ID'
DetailFields = 'ID_CONTACTO'
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'DatosBancarios'
IndexDefs = <>
Left = 176
@ -505,8 +509,6 @@ inherited DataModuleContactos: TDataModuleContactos
MasterSource = ds_Contactos
MasterFields = 'ID'
DetailFields = 'ID_CONTACTO'
DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
LogicalName = 'PersonalContacto'
IndexDefs = <>
Left = 296

View File

@ -9,21 +9,21 @@ const
{ Data table rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarEmpresasContacto = '{00F42015-9439-4F03-86AA-9053BAE56E60}';
RID_PersonalContacto = '{8D74552A-CFEB-47B3-9035-DBB85769C03B}';
RID_DarTiendaDeUsuario = '{A1A770C1-133F-4F79-9FAF-B902CA78D7AB}';
RID_SubCuentasContacto = '{46DCA8AE-E089-4600-ACE8-4DD17A16EECD}';
RID_Contactos = '{0BE6A6BF-0394-4735-BA21-9FB16D9A99D0}';
RID_GruposCliente = '{5BC87FF2-2FD1-4B93-9508-3F1B5BEA6F93}';
RID_DatosBancarios = '{A597124D-56FD-42B6-B2DA-800FF9CA2D20}';
RID_Clientes = '{CBA08C07-4C50-427E-AAFA-993C9413F253}';
RID_Proveedores = '{C5B628A3-9580-46A3-8E36-F25FCE8022BF}';
RID_Vendedores = '{4E1B22A4-576A-4033-9069-1FFA304380A8}';
RID_DireccionesContacto = '{FED11ACC-A937-4598-B61B-A91CB54673ED}';
RID_ClientesDescuentos = '{FD557CDA-2350-4487-BB6C-FD98E7816D65}';
RID_ProcedenciasCliente = '{A0E7E9CA-4C28-4EA6-B57B-14B6B5C516C5}';
RID_GruposProveedor = '{C0E2E4CB-5439-4145-A9FF-0AFA3ACDEB37}';
RID_Contactos_Refresh = '{829D70DD-295E-4722-B531-2E55231BBF2C}';
RID_DarEmpresasContacto = '{58E62884-DAB2-4BFB-9516-C13717F291C2}';
RID_PersonalContacto = '{214169EF-F12D-4BE7-AABF-5499A0D8CDF6}';
RID_DarTiendaDeUsuario = '{D114647A-13A4-45F7-A8E2-AC09DBEFB3FD}';
RID_SubCuentasContacto = '{CCC26472-7C6F-4A13-8F70-E2DC0BF0C905}';
RID_Contactos = '{58D64E83-ADF0-4ABD-A668-8AFD03B00945}';
RID_GruposCliente = '{C332625A-341F-46A6-9B46-9F6F5605955F}';
RID_DatosBancarios = '{4D242F5D-4039-44A6-95DC-3BD871441FE5}';
RID_Clientes = '{F9E03EE6-4565-4A18-B2DC-8344F99CBD09}';
RID_Proveedores = '{1704A814-F561-4A89-BA3E-499BB9F93AE0}';
RID_Vendedores = '{C64DC799-D8AB-4A54-A04C-ABF0CD2FE692}';
RID_DireccionesContacto = '{F62E139F-0FEA-4783-A91F-8AE0F2F71FA0}';
RID_ClientesDescuentos = '{276E724A-6EC8-4AE1-8671-C29BA7DE5690}';
RID_ProcedenciasCliente = '{51321FDE-622B-4214-9938-F53170B49037}';
RID_GruposProveedor = '{40963BA2-9BFD-499C-A46A-7B0579A135FC}';
RID_Contactos_Refresh = '{858999BC-7D57-4C87-B551-B8707D78B938}';
{ Data table names }
nme_DarEmpresasContacto = 'DarEmpresasContacto';
@ -166,6 +166,8 @@ const
fld_DatosBancariosCUENTA = 'CUENTA';
fld_DatosBancariosFECHA_ALTA = 'FECHA_ALTA';
fld_DatosBancariosFECHA_MODIFICACION = 'FECHA_MODIFICACION';
fld_DatosBancariosIBAN = 'IBAN';
fld_DatosBancariosSWIFT = 'SWIFT';
{ DatosBancarios field indexes }
idx_DatosBancariosID = 0;
@ -177,6 +179,8 @@ const
idx_DatosBancariosCUENTA = 6;
idx_DatosBancariosFECHA_ALTA = 7;
idx_DatosBancariosFECHA_MODIFICACION = 8;
idx_DatosBancariosIBAN = 9;
idx_DatosBancariosSWIFT = 10;
{ Clientes fields }
fld_ClientesID = 'ID';
@ -531,7 +535,7 @@ const
type
{ IDarEmpresasContacto }
IDarEmpresasContacto = interface(IDAStronglyTypedDataTable)
['{32E74026-2CB7-4A93-886B-FF16B5C1E459}']
['{85336C50-EC65-4F37-B184-3344A320D616}']
{ Property getters and setters }
function GetID_EMPRESAValue: Integer;
procedure SetID_EMPRESAValue(const aValue: Integer);
@ -566,7 +570,7 @@ type
{ IPersonalContacto }
IPersonalContacto = interface(IDAStronglyTypedDataTable)
['{68D032C9-18AE-4CAE-8BD5-AD4AD66247F8}']
['{9EFA3514-D4B7-4FEF-9032-A739905E0E18}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -709,7 +713,7 @@ type
{ IDarTiendaDeUsuario }
IDarTiendaDeUsuario = interface(IDAStronglyTypedDataTable)
['{C117D8AF-FC75-444F-BE4A-CD4217198AD6}']
['{F0D24CEA-B4C6-4EB9-8413-08139589A497}']
{ Property getters and setters }
function GetID_TIENDAValue: Integer;
procedure SetID_TIENDAValue(const aValue: Integer);
@ -744,7 +748,7 @@ type
{ ISubCuentasContacto }
ISubCuentasContacto = interface(IDAStronglyTypedDataTable)
['{2AED639B-B9A3-40BE-BD47-3E52A7C08E14}']
['{80F8562F-83E6-41BD-B9FD-745B5D313EA0}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -839,7 +843,7 @@ type
{ IContactos }
IContactos = interface(IDAStronglyTypedDataTable)
['{5D40243C-B968-45E5-B145-362F818D2B8B}']
['{1DFD9E61-3525-4467-BE11-4CDAB0B4BDA7}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -1162,7 +1166,7 @@ type
{ IGruposCliente }
IGruposCliente = interface(IDAStronglyTypedDataTable)
['{3BD8080F-6982-4E7F-9063-6561238E4FDC}']
['{C23BA26B-9654-4A64-AA7E-E7A2D509FD4F}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -1209,7 +1213,7 @@ type
{ IDatosBancarios }
IDatosBancarios = interface(IDAStronglyTypedDataTable)
['{7B46974C-D404-4A84-8030-356E464E576A}']
['{699EF4D5-1534-490C-810A-432C4F782F84}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -1247,6 +1251,14 @@ type
procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime);
function GetFECHA_MODIFICACIONIsNull: Boolean;
procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean);
function GetIBANValue: String;
procedure SetIBANValue(const aValue: String);
function GetIBANIsNull: Boolean;
procedure SetIBANIsNull(const aValue: Boolean);
function GetSWIFTValue: String;
procedure SetSWIFTValue(const aValue: String);
function GetSWIFTIsNull: Boolean;
procedure SetSWIFTIsNull(const aValue: Boolean);
{ Properties }
@ -1268,6 +1280,10 @@ type
property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
property IBAN: String read GetIBANValue write SetIBANValue;
property IBANIsNull: Boolean read GetIBANIsNull write SetIBANIsNull;
property SWIFT: String read GetSWIFTValue write SetSWIFTValue;
property SWIFTIsNull: Boolean read GetSWIFTIsNull write SetSWIFTIsNull;
end;
{ TDatosBancariosDataTableRules }
@ -1311,6 +1327,14 @@ type
procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
function GetFECHA_MODIFICACIONIsNull: Boolean; virtual;
procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;
function GetIBANValue: String; virtual;
procedure SetIBANValue(const aValue: String); virtual;
function GetIBANIsNull: Boolean; virtual;
procedure SetIBANIsNull(const aValue: Boolean); virtual;
function GetSWIFTValue: String; virtual;
procedure SetSWIFTValue(const aValue: String); virtual;
function GetSWIFTIsNull: Boolean; virtual;
procedure SetSWIFTIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@ -1331,6 +1355,10 @@ type
property FECHA_ALTAIsNull: Boolean read GetFECHA_ALTAIsNull write SetFECHA_ALTAIsNull;
property FECHA_MODIFICACION: DateTime read GetFECHA_MODIFICACIONValue write SetFECHA_MODIFICACIONValue;
property FECHA_MODIFICACIONIsNull: Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
property IBAN: String read GetIBANValue write SetIBANValue;
property IBANIsNull: Boolean read GetIBANIsNull write SetIBANIsNull;
property SWIFT: String read GetSWIFTValue write SetSWIFTValue;
property SWIFTIsNull: Boolean read GetSWIFTIsNull write SetSWIFTIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@ -1340,7 +1368,7 @@ type
{ IClientes }
IClientes = interface(IDAStronglyTypedDataTable)
['{A64C208A-88D9-45FC-B81F-89EBB2F685AD}']
['{ABECF46D-4E5C-4E32-A14C-6C06496F5750}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -1879,7 +1907,7 @@ type
{ IProveedores }
IProveedores = interface(IDAStronglyTypedDataTable)
['{7151A550-9546-4480-B1A7-D33B2A277127}']
['{6ADC1FCC-4535-4E95-9FC6-FE9AC17D265C}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -2406,7 +2434,7 @@ type
{ IVendedores }
IVendedores = interface(IDAStronglyTypedDataTable)
['{56354278-A7D9-4529-8D53-9C68FCC14A10}']
['{9DF5AB85-335B-4900-9653-06C3F82859AC}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -2753,7 +2781,7 @@ type
{ IDireccionesContacto }
IDireccionesContacto = interface(IDAStronglyTypedDataTable)
['{F32E6D11-C168-417A-A1D5-A0BEEF0FBC17}']
['{D0BCB5E6-8DB8-4E36-9C6E-D79EED18622D}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -2980,7 +3008,7 @@ type
{ IClientesDescuentos }
IClientesDescuentos = interface(IDAStronglyTypedDataTable)
['{E355C96A-2658-45AE-A458-571CC587C2FD}']
['{06F202F3-19A8-4394-A14D-BBF4896544EF}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -3063,7 +3091,7 @@ type
{ IProcedenciasCliente }
IProcedenciasCliente = interface(IDAStronglyTypedDataTable)
['{10026F7E-0AFF-47AA-A869-242B35FDC14F}']
['{C287C28B-F1AD-4F67-B59E-BDDA8B637803}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -3110,7 +3138,7 @@ type
{ IGruposProveedor }
IGruposProveedor = interface(IDAStronglyTypedDataTable)
['{7A4C049D-30F9-49C4-857C-D5337B78E55D}']
['{F6DDE232-ED40-4CA1-9BD8-10EB6CF617BA}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -3157,7 +3185,7 @@ type
{ IContactos_Refresh }
IContactos_Refresh = interface(IDAStronglyTypedDataTable)
['{8CDF4B0A-7FE6-490A-B14D-3B7A5DDE2658}']
['{F7D45D6E-BD65-4037-B5B9-C66875748FFD}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@ -4658,6 +4686,48 @@ begin
DataTable.Fields[idx_DatosBancariosFECHA_MODIFICACION].AsVariant := Null;
end;
function TDatosBancariosDataTableRules.GetIBANValue: String;
begin
result := DataTable.Fields[idx_DatosBancariosIBAN].AsString;
end;
procedure TDatosBancariosDataTableRules.SetIBANValue(const aValue: String);
begin
DataTable.Fields[idx_DatosBancariosIBAN].AsString := aValue;
end;
function TDatosBancariosDataTableRules.GetIBANIsNull: boolean;
begin
result := DataTable.Fields[idx_DatosBancariosIBAN].IsNull;
end;
procedure TDatosBancariosDataTableRules.SetIBANIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_DatosBancariosIBAN].AsVariant := Null;
end;
function TDatosBancariosDataTableRules.GetSWIFTValue: String;
begin
result := DataTable.Fields[idx_DatosBancariosSWIFT].AsString;
end;
procedure TDatosBancariosDataTableRules.SetSWIFTValue(const aValue: String);
begin
DataTable.Fields[idx_DatosBancariosSWIFT].AsString := aValue;
end;
function TDatosBancariosDataTableRules.GetSWIFTIsNull: boolean;
begin
result := DataTable.Fields[idx_DatosBancariosSWIFT].IsNull;
end;
procedure TDatosBancariosDataTableRules.SetSWIFTIsNull(const aValue: Boolean);
begin
if aValue then
DataTable.Fields[idx_DatosBancariosSWIFT].AsVariant := Null;
end;
{ TClientesDataTableRules }
constructor TClientesDataTableRules.Create(aDataTable: TDADataTable);

View File

@ -9,26 +9,26 @@ const
{ Delta rules ids
Feel free to change them to something more human readable
but make sure they are unique in the context of your application }
RID_DarEmpresasContactoDelta = '{5FA33C81-8C1D-4537-B419-7F589C4F54D5}';
RID_PersonalContactoDelta = '{D74E53F4-C0F1-4D5D-B6D6-05A77D4A9C0D}';
RID_DarTiendaDeUsuarioDelta = '{3315B230-9DF0-4D42-A630-4F88722A12A8}';
RID_SubCuentasContactoDelta = '{C7E0C7C4-BC8A-4C86-B305-9DF867D6A5D5}';
RID_ContactosDelta = '{0E3D9787-3136-4245-8F91-3EBE5114B07B}';
RID_GruposClienteDelta = '{765D408B-0F60-4F57-AAAC-EB611A2567B3}';
RID_DatosBancariosDelta = '{58EBA3FB-6358-4B0E-B027-003752A40D0A}';
RID_ClientesDelta = '{D5CE5C47-A434-4DC9-8617-2C3C39FBCF1C}';
RID_ProveedoresDelta = '{65866AED-3F9E-4108-9964-F68148C5B028}';
RID_VendedoresDelta = '{ECCEABBD-8C47-4A80-9EC3-A474AC97FA89}';
RID_DireccionesContactoDelta = '{122A7EBF-EB98-48D4-A6B6-2A2CA2AFA08C}';
RID_ClientesDescuentosDelta = '{4C3B17AE-119E-4957-94CE-3B041BC05FF2}';
RID_ProcedenciasClienteDelta = '{74BA2BD3-5FD4-4D3B-B5EC-1AE94047F10C}';
RID_GruposProveedorDelta = '{CA02E8EE-2B59-48D4-99F2-73D8BA2128FA}';
RID_Contactos_RefreshDelta = '{A5BBEBE8-E924-47D4-9DCA-D293C53B2E90}';
RID_DarEmpresasContactoDelta = '{DBBA2713-737B-4AC9-892F-A37FC4389827}';
RID_PersonalContactoDelta = '{51FDD65E-A087-4194-A914-E3AF3911BAC1}';
RID_DarTiendaDeUsuarioDelta = '{3DE3B12D-067A-4051-B3A9-557DB22922AC}';
RID_SubCuentasContactoDelta = '{36585242-DAA3-43F2-A2E4-94600AE711FD}';
RID_ContactosDelta = '{C2EB2726-2FDF-4119-A53A-EDEEC4168295}';
RID_GruposClienteDelta = '{E1399545-1C21-4EAF-BBC2-4EDED61BD4DA}';
RID_DatosBancariosDelta = '{BFB2A836-E42C-47F0-986A-86E7300C4B0F}';
RID_ClientesDelta = '{417DE556-0CAF-44C2-82CD-A5DB0E9BF54F}';
RID_ProveedoresDelta = '{56BF7615-F24A-452F-BE6D-76B7819C6098}';
RID_VendedoresDelta = '{2CA2DC31-7B3E-4942-9442-236A0AC55B44}';
RID_DireccionesContactoDelta = '{5CF44C27-79DB-4B6A-A8FC-CDB65D67955F}';
RID_ClientesDescuentosDelta = '{3EDEF6F6-D8F9-44EE-A483-BA3184E0E083}';
RID_ProcedenciasClienteDelta = '{8A871918-1BBE-4D77-9BA0-558C08550237}';
RID_GruposProveedorDelta = '{BFB686F2-C903-4C4A-A224-C638F6193ADE}';
RID_Contactos_RefreshDelta = '{B7FAD6FA-C4AF-4226-99F0-1BF341D5F444}';
type
{ IDarEmpresasContactoDelta }
IDarEmpresasContactoDelta = interface(IDarEmpresasContacto)
['{5FA33C81-8C1D-4537-B419-7F589C4F54D5}']
['{DBBA2713-737B-4AC9-892F-A37FC4389827}']
{ Property getters and setters }
function GetOldID_EMPRESAValue : Integer;
@ -62,7 +62,7 @@ type
{ IPersonalContactoDelta }
IPersonalContactoDelta = interface(IPersonalContacto)
['{D74E53F4-C0F1-4D5D-B6D6-05A77D4A9C0D}']
['{51FDD65E-A087-4194-A914-E3AF3911BAC1}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CONTACTOValue : Integer;
@ -204,7 +204,7 @@ type
{ IDarTiendaDeUsuarioDelta }
IDarTiendaDeUsuarioDelta = interface(IDarTiendaDeUsuario)
['{3315B230-9DF0-4D42-A630-4F88722A12A8}']
['{3DE3B12D-067A-4051-B3A9-557DB22922AC}']
{ Property getters and setters }
function GetOldID_TIENDAValue : Integer;
@ -238,7 +238,7 @@ type
{ ISubCuentasContactoDelta }
ISubCuentasContactoDelta = interface(ISubCuentasContacto)
['{C7E0C7C4-BC8A-4C86-B305-9DF867D6A5D5}']
['{36585242-DAA3-43F2-A2E4-94600AE711FD}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldREF_SUBCUENTAValue : String;
@ -332,7 +332,7 @@ type
{ IContactosDelta }
IContactosDelta = interface(IContactos)
['{0E3D9787-3136-4245-8F91-3EBE5114B07B}']
['{C2EB2726-2FDF-4119-A53A-EDEEC4168295}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CATEGORIAValue : Integer;
@ -655,7 +655,7 @@ type
{ IGruposClienteDelta }
IGruposClienteDelta = interface(IGruposCliente)
['{765D408B-0F60-4F57-AAAC-EB611A2567B3}']
['{E1399545-1C21-4EAF-BBC2-4EDED61BD4DA}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldDESCRIPCIONValue : String;
@ -701,7 +701,7 @@ type
{ IDatosBancariosDelta }
IDatosBancariosDelta = interface(IDatosBancarios)
['{58EBA3FB-6358-4B0E-B027-003752A40D0A}']
['{BFB2A836-E42C-47F0-986A-86E7300C4B0F}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CONTACTOValue : Integer;
@ -712,6 +712,8 @@ type
function GetOldCUENTAValue : String;
function GetOldFECHA_ALTAValue : DateTime;
function GetOldFECHA_MODIFICACIONValue : DateTime;
function GetOldIBANValue : String;
function GetOldSWIFTValue : String;
{ Properties }
property OldID : Integer read GetOldIDValue;
@ -723,6 +725,8 @@ type
property OldCUENTA : String read GetOldCUENTAValue;
property OldFECHA_ALTA : DateTime read GetOldFECHA_ALTAValue;
property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
property OldIBAN : String read GetOldIBANValue;
property OldSWIFT : String read GetOldSWIFTValue;
end;
{ TDatosBancariosBusinessProcessorRules }
@ -784,6 +788,18 @@ type
function GetOldFECHA_MODIFICACIONIsNull: Boolean; virtual;
procedure SetFECHA_MODIFICACIONValue(const aValue: DateTime); virtual;
procedure SetFECHA_MODIFICACIONIsNull(const aValue: Boolean); virtual;
function GetIBANValue: String; virtual;
function GetIBANIsNull: Boolean; virtual;
function GetOldIBANValue: String; virtual;
function GetOldIBANIsNull: Boolean; virtual;
procedure SetIBANValue(const aValue: String); virtual;
procedure SetIBANIsNull(const aValue: Boolean); virtual;
function GetSWIFTValue: String; virtual;
function GetSWIFTIsNull: Boolean; virtual;
function GetOldSWIFTValue: String; virtual;
function GetOldSWIFTIsNull: Boolean; virtual;
procedure SetSWIFTValue(const aValue: String); virtual;
procedure SetSWIFTIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@ -822,6 +838,14 @@ type
property FECHA_MODIFICACIONIsNull : Boolean read GetFECHA_MODIFICACIONIsNull write SetFECHA_MODIFICACIONIsNull;
property OldFECHA_MODIFICACION : DateTime read GetOldFECHA_MODIFICACIONValue;
property OldFECHA_MODIFICACIONIsNull : Boolean read GetOldFECHA_MODIFICACIONIsNull;
property IBAN : String read GetIBANValue write SetIBANValue;
property IBANIsNull : Boolean read GetIBANIsNull write SetIBANIsNull;
property OldIBAN : String read GetOldIBANValue;
property OldIBANIsNull : Boolean read GetOldIBANIsNull;
property SWIFT : String read GetSWIFTValue write SetSWIFTValue;
property SWIFTIsNull : Boolean read GetSWIFTIsNull write SetSWIFTIsNull;
property OldSWIFT : String read GetOldSWIFTValue;
property OldSWIFTIsNull : Boolean read GetOldSWIFTIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@ -831,7 +855,7 @@ type
{ IClientesDelta }
IClientesDelta = interface(IClientes)
['{D5CE5C47-A434-4DC9-8617-2C3C39FBCF1C}']
['{417DE556-0CAF-44C2-82CD-A5DB0E9BF54F}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CATEGORIAValue : Integer;
@ -1370,7 +1394,7 @@ type
{ IProveedoresDelta }
IProveedoresDelta = interface(IProveedores)
['{65866AED-3F9E-4108-9964-F68148C5B028}']
['{56BF7615-F24A-452F-BE6D-76B7819C6098}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CATEGORIAValue : Integer;
@ -1897,7 +1921,7 @@ type
{ IVendedoresDelta }
IVendedoresDelta = interface(IVendedores)
['{ECCEABBD-8C47-4A80-9EC3-A474AC97FA89}']
['{2CA2DC31-7B3E-4942-9442-236A0AC55B44}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CATEGORIAValue : Integer;
@ -2244,7 +2268,7 @@ type
{ IDireccionesContactoDelta }
IDireccionesContactoDelta = interface(IDireccionesContacto)
['{122A7EBF-EB98-48D4-A6B6-2A2CA2AFA08C}']
['{5CF44C27-79DB-4B6A-A8FC-CDB65D67955F}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CONTACTOValue : Integer;
@ -2471,7 +2495,7 @@ type
{ IClientesDescuentosDelta }
IClientesDescuentosDelta = interface(IClientesDescuentos)
['{4C3B17AE-119E-4957-94CE-3B041BC05FF2}']
['{3EDEF6F6-D8F9-44EE-A483-BA3184E0E083}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_CLIENTEValue : Integer;
@ -2553,7 +2577,7 @@ type
{ IProcedenciasClienteDelta }
IProcedenciasClienteDelta = interface(IProcedenciasCliente)
['{74BA2BD3-5FD4-4D3B-B5EC-1AE94047F10C}']
['{8A871918-1BBE-4D77-9BA0-558C08550237}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldDESCRIPCIONValue : String;
@ -2599,7 +2623,7 @@ type
{ IGruposProveedorDelta }
IGruposProveedorDelta = interface(IGruposProveedor)
['{CA02E8EE-2B59-48D4-99F2-73D8BA2128FA}']
['{BFB686F2-C903-4C4A-A224-C638F6193ADE}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldDESCRIPCIONValue : String;
@ -2645,7 +2669,7 @@ type
{ IContactos_RefreshDelta }
IContactos_RefreshDelta = interface(IContactos_Refresh)
['{A5BBEBE8-E924-47D4-9DCA-D293C53B2E90}']
['{B7FAD6FA-C4AF-4226-99F0-1BF341D5F444}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldNIF_CIFValue : String;
@ -4688,6 +4712,68 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosFECHA_MODIFICACION] := Null;
end;
function TDatosBancariosBusinessProcessorRules.GetIBANValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosIBAN];
end;
function TDatosBancariosBusinessProcessorRules.GetIBANIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosIBAN]);
end;
function TDatosBancariosBusinessProcessorRules.GetOldIBANValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosIBAN];
end;
function TDatosBancariosBusinessProcessorRules.GetOldIBANIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosIBAN]);
end;
procedure TDatosBancariosBusinessProcessorRules.SetIBANValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosIBAN] := aValue;
end;
procedure TDatosBancariosBusinessProcessorRules.SetIBANIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosIBAN] := Null;
end;
function TDatosBancariosBusinessProcessorRules.GetSWIFTValue: String;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSWIFT];
end;
function TDatosBancariosBusinessProcessorRules.GetSWIFTIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSWIFT]);
end;
function TDatosBancariosBusinessProcessorRules.GetOldSWIFTValue: String;
begin
result := BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosSWIFT];
end;
function TDatosBancariosBusinessProcessorRules.GetOldSWIFTIsNull: Boolean;
begin
result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DatosBancariosSWIFT]);
end;
procedure TDatosBancariosBusinessProcessorRules.SetSWIFTValue(const aValue: String);
begin
BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSWIFT] := aValue;
end;
procedure TDatosBancariosBusinessProcessorRules.SetSWIFTIsNull(const aValue: Boolean);
begin
if aValue then
BusinessProcessor.CurrentChange.NewValueByName[fld_DatosBancariosSWIFT] := Null;
end;
{ TClientesBusinessProcessorRules }
constructor TClientesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);

View File

@ -599,6 +599,14 @@ object srvContactos: TsrvContactos
item
DatasetField = 'FECHA_MODIFICACION'
TableField = 'FECHA_MODIFICACION'
end
item
DatasetField = 'IBAN'
TableField = 'IBAN'
end
item
DatasetField = 'SWIFT'
TableField = 'SWIFT'
end>
end>
Name = 'DatosBancarios'
@ -653,6 +661,16 @@ object srvContactos: TsrvContactos
item
Name = 'FECHA_MODIFICACION'
DataType = datDateTime
end
item
Name = 'IBAN'
DataType = datString
Size = 255
end
item
Name = 'SWIFT'
DataType = datString
Size = 255
end>
end
item
@ -2530,48 +2548,53 @@ object srvContactos: TsrvContactos
DataType = datAutoInc
GeneratorName = 'GEN_CONTACTOS_DATOS_BANCO_ID'
Value = ''
ParamType = daptInput
end
item
Name = 'ID_CONTACTO'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'TITULAR'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'ENTIDAD'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'SUCURSAL'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'DC'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'CUENTA'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'IBAN'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'SWIFT'
DataType = datString
Size = 255
Value = ''
end>
Statements = <
item
@ -2579,8 +2602,9 @@ object srvContactos: TsrvContactos
TargetTable = 'CONTACTOS_DATOS_BANCO'
SQL =
'INSERT'#10' INTO CONTACTOS_DATOS_BANCO'#10' (ID, ID_CONTACTO, TITULA' +
'R, ENTIDAD, SUCURSAL, DC, CUENTA)'#10' VALUES'#10' (:ID, :ID_CONTACT' +
'O, :TITULAR, :ENTIDAD, :SUCURSAL, :DC, :CUENTA)'
'R, ENTIDAD, SUCURSAL, DC, CUENTA, IBAN, SWIFT)'#10' VALUES'#10' (:ID' +
', :ID_CONTACTO, :TITULAR, :ENTIDAD, :SUCURSAL, :DC, :CUENTA, :IB' +
'AN, :SWIFT)'#10
StatementType = stSQL
ColumnMappings = <>
end>
@ -2612,48 +2636,52 @@ object srvContactos: TsrvContactos
Name = 'ID_CONTACTO'
DataType = datInteger
Value = ''
ParamType = daptInput
end
item
Name = 'TITULAR'
DataType = datString
Size = 255
Value = ''
ParamType = daptInput
end
item
Name = 'ENTIDAD'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'SUCURSAL'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'DC'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'CUENTA'
DataType = datString
Size = 15
Value = ''
ParamType = daptInput
end
item
Name = 'IBAN'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'SWIFT'
DataType = datString
Size = 255
Value = ''
end
item
Name = 'OLD_ID'
DataType = datInteger
Value = ''
ParamType = daptInput
end>
Statements = <
item
@ -2662,8 +2690,8 @@ object srvContactos: TsrvContactos
SQL =
'UPDATE CONTACTOS_DATOS_BANCO'#10' SET '#10' ID_CONTACTO = :ID_CONTAC' +
'TO, '#10' TITULAR = :TITULAR, '#10' ENTIDAD = :ENTIDAD, '#10' SUCUR' +
'SAL = :SUCURSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA'#10' WHERE'#10' ' +
' (ID = :OLD_ID)'
'SAL = :SUCURSAL, '#10' DC = :DC, '#10' CUENTA = :CUENTA,'#10' IBAN ' +
'= :IBAN,'#10' SWIFT = :SWIFT'#10' WHERE'#10' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>

View File

@ -47,41 +47,41 @@
<DelphiCompile Include="Contactos_view.dpk">
<MainSource>MainSource</MainSource>
</DelphiCompile>
<DCCReference Include="..\..\..\Servidor\adortl.dcp" />
<DCCReference Include="..\..\..\Servidor\ApplicationBase.dcp" />
<DCCReference Include="..\..\..\Servidor\Base.dcp" />
<DCCReference Include="..\..\..\Servidor\bdertl.dcp" />
<DCCReference Include="..\..\..\Servidor\Contactos_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\Contactos_model.dcp" />
<DCCReference Include="..\..\..\Servidor\cxDataD11.dcp" />
<DCCReference Include="..\..\..\Servidor\cxEditorsD11.dcp" />
<DCCReference Include="..\..\..\Servidor\cxLibraryD11.dcp" />
<DCCReference Include="..\..\..\Servidor\DataAbstract_Core_D11.dcp" />
<DCCReference Include="..\..\..\Servidor\dbrtl.dcp" />
<DCCReference Include="..\..\..\Servidor\designide.dcp" />
<DCCReference Include="..\..\..\Servidor\dsnap.dcp" />
<DCCReference Include="..\..\..\Servidor\dxGDIPlusD11.dcp" />
<DCCReference Include="..\..\..\Servidor\dxThemeD11.dcp" />
<DCCReference Include="..\..\..\Servidor\FormasPago_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\FormasPago_model.dcp" />
<DCCReference Include="..\..\..\Servidor\GestorInformes_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\GUIBase.dcp" />
<DCCReference Include="..\..\..\Servidor\GUISDK_D11R.dcp" />
<DCCReference Include="..\..\..\Servidor\Jcl.dcp" />
<DCCReference Include="..\..\..\Servidor\JclVcl.dcp" />
<DCCReference Include="..\..\..\Servidor\JvCoreD11R.dcp" />
<DCCReference Include="..\..\..\Servidor\JvGlobusD11R.dcp" />
<DCCReference Include="..\..\..\Servidor\JvSystemD11R.dcp" />
<DCCReference Include="..\..\..\Servidor\RemObjects_Core_D11.dcp" />
<DCCReference Include="..\..\..\Servidor\rtl.dcp" />
<DCCReference Include="..\..\..\Servidor\TiposIVA_controller.dcp" />
<DCCReference Include="..\..\..\Servidor\TiposIVA_model.dcp" />
<DCCReference Include="..\..\..\Servidor\vcl.dcp" />
<DCCReference Include="..\..\..\Servidor\vclactnband.dcp" />
<DCCReference Include="..\..\..\Servidor\vcldb.dcp" />
<DCCReference Include="..\..\..\Servidor\vcljpg.dcp" />
<DCCReference Include="..\..\..\Servidor\vclx.dcp" />
<DCCReference Include="..\..\..\Servidor\xmlrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\adortl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\ApplicationBase.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Base.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\bdertl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Contactos_controller.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Contactos_model.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxDataD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxEditorsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\DataAbstract_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\designide.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dsnap.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxGDIPlusD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\FormasPago_controller.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\FormasPago_model.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GestorInformes_controller.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUIBase.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\GUISDK_D11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\Jcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JclVcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCoreD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvGlobusD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvSystemD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\RemObjects_Core_D11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\TiposIVA_controller.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\TiposIVA_model.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclactnband.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\xmlrtl.dcp" />
<DCCReference Include="uContactosViewRegister.pas" />
<DCCReference Include="uEditorCliente.pas">
<Form>fEditorCliente</Form>

View File

@ -1,20 +1,20 @@
inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
Width = 501
Height = 149
Height = 192
ExplicitWidth = 501
ExplicitHeight = 149
ExplicitHeight = 192
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
Width = 501
Height = 129
Height = 185
Align = alTop
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth]
object eEntidad: TcxDBTextEdit
Left = 117
Left = 120
Top = 55
DataBinding.DataField = 'ENTIDAD'
DataBinding.DataSource = dsDatosBancarios
@ -33,7 +33,7 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
Width = 114
end
object eSucursal: TcxDBTextEdit
Left = 341
Left = 342
Top = 55
DataBinding.DataField = 'SUCURSAL'
DataBinding.DataSource = dsDatosBancarios
@ -52,7 +52,7 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
Width = 112
end
object eCuenta: TcxDBTextEdit
Left = 238
Left = 241
Top = 82
DataBinding.DataField = 'CUENTA'
DataBinding.DataSource = dsDatosBancarios
@ -71,7 +71,7 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
Width = 194
end
object eDC: TcxDBTextEdit
Left = 117
Left = 120
Top = 82
DataBinding.DataField = 'DC'
DataBinding.DataSource = dsDatosBancarios
@ -90,7 +90,7 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
Width = 47
end
object eTitular: TcxDBTextEdit
Left = 117
Left = 120
Top = 28
DataBinding.DataField = 'TITULAR'
DataBinding.DataSource = dsDatosBancarios
@ -108,6 +108,46 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
TabOrder = 0
Width = 194
end
object eIBAN: TcxDBTextEdit
Left = 120
Top = 109
DataBinding.DataField = 'IBAN'
DataBinding.DataSource = dsDatosBancarios
Properties.MaxLength = 24
Properties.OnValidate = eIBANPropertiesValidate
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = 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 = 5
Width = 782
end
object eSWIFT: TcxDBTextEdit
Left = 120
Top = 136
DataBinding.DataField = 'SWIFT'
DataBinding.DataSource = dsDatosBancarios
Style.BorderColor = clWindowFrame
Style.BorderStyle = ebs3D
Style.HotTrack = 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 = 6
Width = 782
end
object dxLayoutControl1Group_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
@ -146,18 +186,33 @@ inherited frViewClienteDatosBancarios: TfrViewClienteDatosBancarios
object dxLayoutControl1Group4: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'DC:'
Control = eDC
object dxLayoutControl1Group5: TdxLayoutGroup
ShowCaption = False
Hidden = True
LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControl1Item4: TdxLayoutItem
Caption = 'DC:'
Control = eDC
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'C'#243'd. cuenta:'
Control = eCuenta
ControlOptions.ShowBorder = False
end
end
object dxLayoutControl1Item6: TdxLayoutItem
Caption = 'C'#243'digo IBAN:'
Control = eIBAN
ControlOptions.ShowBorder = False
end
object dxLayoutControl1Item3: TdxLayoutItem
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'C'#243'd. cuenta:'
Control = eCuenta
object dxLayoutControl1Item7: TdxLayoutItem
Caption = 'C'#243'digo SWIFT/BIC:'
Control = eSWIFT
ControlOptions.ShowBorder = False
end
end

View File

@ -30,10 +30,28 @@ type
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group1: TdxLayoutGroup;
dsDatosBancarios: TDADataSource;
dxLayoutControl1Item6: TdxLayoutItem;
eIBAN: TcxDBTextEdit;
dxLayoutControl1Item7: TdxLayoutItem;
eSWIFT: TcxDBTextEdit;
dxLayoutControl1Group5: TdxLayoutGroup;
procedure eIBANPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
end;
implementation
{$R *.dfm}
uses uIBANUtils, uStringsUtils;
procedure TfrViewClienteDatosBancarios.eIBANPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
inherited;
if not EsCadenaVacia(DisplayValue) then
if not EsCodigoIBANValido(DisplayValue) then
showmessage('Código IBAN incorrecto');
end;
end.

View File

@ -82,6 +82,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
inherited pgPaginas: TPageControl
Width = 854
Height = 308
ActivePage = pagContenido
OnChanging = pgPaginasChanging
ExplicitTop = 112
ExplicitWidth = 854
@ -141,6 +142,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitWidth = 351
inherited dxLayoutControl1: TdxLayoutControl
Width = 351
ExplicitWidth = 407
inherited cbTienda: TcxComboBox
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
@ -156,6 +158,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitWidth = 398
inherited dxLayoutControl1: TdxLayoutControl
Width = 398
ExplicitWidth = 348
inherited Bevel1: TBevel
Width = 266
ExplicitWidth = 266
@ -243,7 +246,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitHeight = 228
inherited memObservaciones: TcxDBMemo
DataBinding.DataSource = frViewFacturaCliente1.DADataSource
ExplicitHeight = 228
ExplicitWidth = 783
Height = 228
Width = 521
end
@ -313,57 +316,57 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitWidth = 57
end
inherited UpDown1: TUpDown
Left = 588
Left = 570
Top = 0
ExplicitLeft = 588
ExplicitLeft = 570
ExplicitTop = 0
end
inherited ToolButton13: TToolButton
Left = 605
Left = 587
Top = 0
ExplicitLeft = 605
ExplicitLeft = 587
ExplicitTop = 0
end
inherited ToolButton6: TToolButton
Left = 613
Left = 595
Top = 0
ExplicitLeft = 613
ExplicitLeft = 595
ExplicitTop = 0
end
inherited ToolButton7: TToolButton
Left = 647
Left = 629
Top = 0
ExplicitLeft = 647
ExplicitLeft = 629
ExplicitTop = 0
end
inherited ToolButton8: TToolButton
Left = 681
Left = 663
Top = 0
ExplicitLeft = 681
ExplicitLeft = 663
ExplicitTop = 0
end
inherited ToolButton12: TToolButton
Left = 715
Left = 697
Top = 0
ExplicitLeft = 715
ExplicitLeft = 697
ExplicitTop = 0
end
inherited ToolButton9: TToolButton
Left = 723
Left = 705
Top = 0
ExplicitLeft = 723
ExplicitLeft = 705
ExplicitTop = 0
end
inherited ToolButton10: TToolButton
Left = 757
Left = 739
Top = 0
ExplicitLeft = 757
ExplicitLeft = 739
ExplicitTop = 0
end
inherited ToolButton11: TToolButton
Left = 791
Left = 773
Top = 0
ExplicitLeft = 791
ExplicitLeft = 773
ExplicitTop = 0
end
end
@ -381,12 +384,18 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
ExplicitTop = 24
ExplicitWidth = 846
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 622
ExplicitWidth = 735
end
end
inherited cxRichEdit1: TcxRichEdit
Style.IsFontAssigned = True
end
inherited ActionListContenido: TActionList
inherited actQuitarPrecios: TAction
OnExecute = frViewDetallesFacturaCliente1actQuitarPreciosExecute
OnUpdate = frViewDetallesFacturaCliente1actQuitarPreciosUpdate
end
end
end
end
object pagContabilidad: TTabSheet

View File

@ -42,7 +42,11 @@ type
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
procedure frViewTotales1ePorteEditing(Sender: TObject; var CanEdit: Boolean);
procedure OnRecargoEquivalenciaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean); //Importante en este punto se deben de quitar los eventos que puedan afectar a la tabla una vez se cierre el editor.
var Error: Boolean);
procedure frViewDetallesFacturaCliente1actQuitarPreciosExecute(
Sender: TObject);
procedure frViewDetallesFacturaCliente1actQuitarPreciosUpdate(
Sender: TObject); //Importante en este punto se deben de quitar los eventos que puedan afectar a la tabla una vez se cierre el editor.
private
procedure RecalcularPortePorUnidad;
@ -189,6 +193,24 @@ begin
PonerTitulos;
end;
procedure TfEditorFacturaCliente.frViewDetallesFacturaCliente1actQuitarPreciosExecute(
Sender: TObject);
begin
inherited;
FController.DetallesController.QuitarPrecioDetalles(FFactura.Detalles);
end;
procedure TfEditorFacturaCliente.frViewDetallesFacturaCliente1actQuitarPreciosUpdate(
Sender: TObject);
begin
if not Assigned(frViewDetallesFacturaCliente1.DADataSource.DataTable) then
(Sender as TAction).Enabled := False
else
(Sender as TAction).Enabled := (not ReadOnly)
and (not frViewDetallesFacturaCliente1.DADataSource.DataTable.IsEmpty)
end;
procedure TfEditorFacturaCliente.frViewTotales1bTiposIVAClick(Sender: TObject);
begin
inherited;

View File

@ -1,5 +1,10 @@
inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente
Width = 783
inherited ToolBar1: TToolBar
Width = 783
end
inherited cxGrid: TcxGrid
Width = 783
inherited cxGridView: TcxGridDBTableView
inherited cxGridViewDESCRIPCION: TcxGridDBColumn
OnGetPropertiesForEdit = cxGridViewDESCRIPCIONGetPropertiesForEdit
@ -10,6 +15,18 @@ inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente
end
end
end
inherited TBXDock1: TTBXDock
Width = 783
inherited TBXToolbar1: TTBXToolbar
ExplicitWidth = 735
object TBXSeparatorItem6: TTBXSeparatorItem
end
object TBXItem14: TTBXItem
Action = actQuitarPrecios
DisplayMode = nbdmImageAndText
end
end
end
object cxRichEdit1: TcxRichEdit [3]
Left = 78
Top = 225
@ -28,4 +45,259 @@ inherited frViewDetallesFacturaCliente: TfrViewDetallesFacturaCliente
Height = 25
Width = 145
end
inherited ActionListContenido: TActionList
object actQuitarPrecios: TAction
Category = 'Operaciones'
Caption = 'Quitar precios'
ImageIndex = 13
end
end
inherited ContenidoImageList: TPngImageList
PngImages = <
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000D04944415478DA
6364C0062630FCC72A5EC0C0882EC488CB80191909706EDDBA750CAF767D6260
5830240DF8F9FB3743EBE6CD780CC011602003409A7F0071EF8E1D10030C30D5
31A23B1706609AB1E23F7FC0F4FA2967B01B408CE6A3B76E815D856100319ABF
FFFAC570EEC103540340218D0C92EDECE01AD79E398335ACE106305CC0942CAC
77871BB0F5E2454820620138A331D3CB09EEECBD57AF929E0E629DADC106FCF9
F70F1E602419106A67C6F01DE40260805D7AFC9874037C2C0D194EDDBD8B1260
241900A6D103178B01000648ED7B1FCA93F30000000049454E44AE426082}
Name = 'PngImage0'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD2520000006E4944415478DA
63FCFFFF3F03258071D40006C6397A1214990036203925952CCD73E7CCC66100
C85BBF7F32307CFDC4C0F0FD2B03C33710FD05487F46E0374F19E6FE964032E0
CF6F840120CD200D5F3F43357E42F0416C90013FBFA119B0B099742FC00CA028
10073E1D0C7D030077CE5E397DD56C480000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000E14944415478DA
63FCFFFF3F032580717019C0C8C88822E9D770F9FFA6065D1441740B711A00D2
1C1DA5CA307DC64586037DE68C241900D3FCF10B23C39123CF19AE5EBECF7076
B623235106206BFEF899114C3FBAFB94E1C4D1AB0CB7567A33E235C0BFF1CAFF
9F3F7F3380B0B7BF2158F3BB8F4C0C7B36EE60F8F9E317C30F207EB1238C91A0
17AC728EFC77F234076BFEF2E631C3C1BDE7191E6E0C24CE0B20609CBAFFBFB9
A31DD0004606B6DF8F18766E3DC9F0726738F106E8C6EFFA6F68AC0617DFB8F6
30C3C783B1C41BA016BEF53FCCCF30FCF364326103C801C3C00000BEA5B3E15D
7F64240000000049454E44AE426082}
Name = 'PngImage2'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000DF4944415478DA
63FCFFFF3F032580717019C0C8C808A643DA6E80057FFDFACDF0F327041FE833
074BA25B88D380982805869FBF18183E7E61645830EF34C3B12936C41BE0D770
F97F74942A58F39123CF19AE5EBECF7076B623F106B8579EFB1F1CAACDF0F133
23C3E58BCF18CE9FBDC57079A11B6103FC1BAFFC87F9D9DBDF10EC8247779F32
9C387A95E1E78F5F0C3F80F8C58E3046BC2E70283AF91FA6F9DD472620666460
FBFD8861E7D6930C2F77863312E505E3D4FDFFCD1DED3034131D0620A016BEF5
BF85B5368A66920C000171F795FF91351334801C300C0C00007FBCB4E1E577C7
9A0000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001984944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BD30046
C399181A59989918A23C55181A328C1804F9D8C0069CBD7C07BB01C886FC3F9F
CEF00F28BF7AD75D86888ABD0CEC6CCC0C8F774430FCF9F38FE1E2F57B840DF8
7B2E0DACF8C7AF3F0CFC360BC006DCDF120676C1B5DB0F091BF0F3540AC3C3E7
9F19DAE79D6758B6FD2E4353A6114384BB22D0D0BF0CB7EE3F216C003288F254
66288BD765E0E56206BAE01FC3FDC7CFB01B00F233B3D12C30FBFDA138B0730F
9C7ECE1056BE8FC1C954926172991958ECF9ABD79806803483FCCC6E36076CC0
8B3D5160C52031459FD560B10BCB7DC02E78F3EE2DAA01317E56F038E6B75908
567C6D6D1003273B33C396C38F18723B4F32B0B332311C99E70156F3F1D30754
03C2BDCC51342303666646066F1B1986EC5035065E6E16B0BA6FDF3EA31A10E4
6602762ACC1570F6EFBF503184DCBF7FFF197EFCF8826A809F9311C3A98BB748
CA4C700340B971E28CA524E7C6FC8CE81800E35A4E592A9A5C6B000000004945
4E44AE426082}
Name = 'PngImage4'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001844944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5360BB7010B
37DF6248A8DB0FE7CB4BF2325C5D1B0237E0ECE53BF80D0081C69967191A669C
6188F35163985C61C5F0EF1FC4057FFEFC63B878FD1E6103744357335CB9F38E
61CB240F066B0331B866107DEDF643FC067CFFF98781CB622E98FD745714032B
0B235CF31F20BE75FF096E03FE01C5CE5D7FC3601ABD8E41535180E1E05C6F14
CDBF81ECFB8F9F613700A419A478C9D65B0CC98D871862BC5518BAF24DE19A7F
005D06623F7FF51AD30098669082CA49A71826AFB8CAD05D68CA10E2AC0009FD
DF7FA1B1F08FE1CDBBB7A806C4F859C1A3E8DDC79F0C0185BB182EDE7AC7B0BE
D799415B991F453388FEF8E903AA01E15EE6608993975F31B8656E4709D02D13
9D1964C438E19A41F8DBB7CFA80604B999C09D8F1C5DE83683F0BF7FFF197EFC
F8826A809F9311C3A98BB748CA4C700340B971E28CA524E7C6FC8CE818000A3C
81590C9B58CC0000000049454E44AE426082}
Name = 'PngImage5'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001854944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4806100A3E14C140DFFCFA763887F3C12
CF70ECEC0D86AAB65998067CFCF28B41C0763E98FDE6403C83303F07C33FA09A
B71F7E3088392D62B8BB259C81978B85E1ECE53BD80D40B60D643B48F39F3F10
67F358CD6778B52F1ACCBF78FD1E6103FE9E4B836B066141BB450CCF764582D9
D76E3F246CC0CF532970CD202CE6B494E1E1B630A0A17F196EDD7F42D880B707
E318981819C09ADF7DFCC9A011B886E1EEA66020FF1FC3FDC7CFB01B00F2B356
D02A869B0F3E305424EA3364846A80BDD1B5F012C3D53BEF1966D558820D7CFE
EA35A601B000BBF5F00343CDD4D30C07CE3C07C70A1F372B838BB91443419426
90CD0276C19B776F510D88F1B382FB1539E0E0ECDFB0B080F03F7EFA806A40B8
97395882DF6621C1D47870B60BC3B76F9F510D08723321CA6610FEF7EF3FC38F
1F5F500DF07332623875F1164999096E0028374E9CB194E4DC989F111D03002B
D67559EB1C43180000000049454E44AE426082}
Name = 'PngImage6'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000F94944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC134809B9B1BAF0B9EBE7803D60C32ECE2F57B845D
80CD6618FFDAED87A4BB00062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7
CF487701C8E61F3FFF800D7AFEEA35A601E836FFFCF507C5F6DFBF612EFAC7F0
E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354DB70D8
0C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875F11651
5E8001B801A0DC3871C6529273637E46740C002BB66C59EAC44C620000000049
454E44AE426082}
Name = 'PngImage7'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001004944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D0037373756839EBE7803D60C32ECE2F57B845D
80CD6618FFDAED879806E0B2191D5CBEF190E1D6FD27B85D80CFE63F60FE3F86
FB8F9F613700A499978707A7CD3F7EFE011BF4FCD56B4C03D06DFEF9EB0F8AED
BF7FC35CF48FE1CDBBB7A806C4F85931F0F3F11215067B8E5E65F8F8E903AA01
E15EE6A8B6E1B01926F7EDDB67540382DC4C88D6FCEFDF7F861F3FBEA01AE0E7
64C470EAE22DA2BC0003700340B971E28CA524E7C6FC8CE8180048E16F597BCE
9D230000000049454E44AE426082}
Name = 'PngImage8'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000000FC4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC4409201C89A8F9DBDC150D5368B3803FE
01D5FCF983D00CC2672FDFC16D003737375E97DC79F09CE1E2F57B845D80CD66
18FFDAED87980610B219062EDF78C870EBFE13DC2EC067F31F30FF1FC3FDC7CF
B01B00D2CCCBC383D705C7CEDE6278FEEA35A601E836FFFCF507C5F6DFBF612E
FAC7F0E6DD5B540362FCAC18F8F978890A833D47AF327CFCF401D580702F7354
DB70D80C93FBF6ED33AA01416E26446BFEF7EF3FC38F1F5F500DF07332623875
F116515E8001B801A0DC3871C6529273637E46740C0021BE635977EAA72D0000
000049454E44AE426082}
Name = 'PngImage9'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001CB4944415478DA
63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440
1BA234FDF9FB8FE1F79FBF60EC105CC480D580CAA3950C4B6E2C61789CFC18A7
E663676F3054B5CDC234E0EFFFBF0C327364185E7C7BC17020E40083BDB43DC3
3FA09A3F7F109A41F8ECE53BD80D587B672D43CBA916860BAF2F3024682530CC
759987A119C4BF78FD1E76031CD73A324CB09FC0E0B0C681E1CFBF3F0C8F129E
32B0317280350ADA2D6278B62B12CCBE76FB21A60137DFDF64D058A481E2EFB9
4E0B188214C2C09A41E0E1B630A00BFE32DCBAFF04D380C243850C06A2060CB1
1A710C871E1F61705C6FC7E020E5C470A02D0C6CB394DB7286BB9B82812EF8C7
70FFF13354034CED04194C969B303C4B7DCEC0CDC40B76A6DA52258667536B19
562D92623017B16190F75AC57075B53F58EEF9ABD7A806347E886578F0E90183
3CAF02C3D5C89B0C69FB531896555B63A4830BCB7DC02E78F3EE2DAA01317E56
28A12CECB098E1F18E70440CFCFECBA01DBA91E1F4622F30FFE3A70FA806847B
99A36886815B1B82E09A61E0E06C17866FDF3EA31A10E4668212DFC83643C410
72FFFEFD67F8F1E30BAA017E4E460CA72EDE222933C10D00E5C6893396929C1B
F333A26300FC1C815930D4A9C10000000049454E44AE426082}
Name = 'PngImage10'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001124944415478DA
63FCFFFF3F03258091620340848147C2FF0B3B1630A24B1223CE08E20CAC0B28
0A0098010B361C807BE3E7CF5F0C5FBF7D63F8F2ED3B98D65455C62ADE599ACC
886240BCBF3D58E19FBFFF18BE7DFFC5F0EDC72F86D6A98B1826D7E760159FD2
908B69C0EF3F7F810A7E337C072ABC71FF15C3FC556B1916F69463155FD45B81
3060DAF21DFF93835D18BEFF80D8F0FDC71F8647CFDF334C9CB38061E5D446AC
E21B66B7220CE89AB3EE7F6AA80754D16F862F409BDE7FFCC6D0D43F8561DDCC
76ACE2FB574C4418503771F1FFB4085F86DB0F5EA3847049633BC3C6F97D58C5
CF6E9B8730A0A86DE6FF6FC0D0FDF4F90BC3E72F5FA1F417867FFFFE33589818
601587A78381CF4C941A00005C20FBD97F751C0A0000000049454E44AE426082}
Name = 'PngImage11'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000002354944415478DA
9D93DF4B936114C73FEF9CDB9C947A23A546E185062E4308122AB5488942A18B
A2A228229088EEBA0B83EECCCBCAEA1FA8ABD29B0CACB0FC1176538ACA963FA6
A2AEF9966E6E367CF7EEDDF3F4CEB5B4B640FAC281E7E19CF339E73987479152
92D2A34BCAC6650B9A8FD4A0A40089E42BCDE941D128E85AD212E7A896B48F83
9B00FF939CB703C6BC26A0FD22D25AB0F5B68DE0467242EB804CD535B352DF32
DC5C75B2737B1E617D8D79DF0ACD53605FAEA1B6AA8FDEA15F1D24DE9249B3B9
2B6837B2B853DD4457749496960ECE8D5772F9C0C8BAFF3720530709B97F404B
EE3E6E1D69E04DC0C3BDD6573CC986DD0EFE0DE80F43DC489E8716E175693977
8F37D1A90E71FFF65BAE9AF32ACB379D0246A7F7A7034A3C4E6A5DE568868112
55282B2DA4B278179EC0570606A6D0A5412CC7C062B130F9594D071CF617F2F0
CC35A2C4889B65E644800955C52A159CDBEC84D734739506934195DEC75FD201
F5C162AE379EE4933A8B61221CD2865D5AF9160AE38F8430AC122104B3A12526
9E2F86FE00E83AB8A60BC8D31CB8BD7E8840757D298D27AA189CF4F2B27B98AC
A0056C906DCB425F886F74D0FEC0BE0E99710884397DCC389F90F8CE17D15053
C188DF47F7B331EADC7BE8B14DD791F80139C495B6B3F68E40ECE0E94C6B5C72
4418BCB0485D4539E30195F79D1E0C8FA8902FA43B15A36CFE8D7F4B69558EBA
F616F714951430B3FA9D85FE006BC3B163B243BEDB1AA04D39E4CCB775E95E03
2324B0080B22224EC9A7F2432AE627BA3D288D657888700000000049454E44AE
426082}
Name = 'PngImage12'
Background = clWindow
end
item
PngImage.Data = {
89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
610000000970485973000017120000171201679FD252000001074944415478DA
63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A
C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211
AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643
0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601
C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4
CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346
B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501
4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08
0029AC32F01825AACD0000000049454E44AE426082}
Name = 'PngImage13'
Background = clWindow
end>
Bitmap = {}
end
end

View File

@ -24,6 +24,9 @@ type
TfrViewDetallesFacturaCliente = class(TfrViewDetallesArticulos)
cxRichEdit1: TcxRichEdit;
actQuitarPrecios: TAction;
TBXSeparatorItem6: TTBXSeparatorItem;
TBXItem14: TTBXItem;
procedure cxGridViewDESCRIPCIONGetPropertiesForEdit(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
@ -33,7 +36,7 @@ type
procedure SetFactura(const Value: IBizFacturaCliente);
procedure AnadirArticulosInterno; override;
procedure RellenarArticulosInterno; override;
procedure RellenarArticulosInterno; override;
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
function EsTipoEditable(AItem: TcxCustomGridTableItem): Boolean; override;

View File

@ -122,8 +122,6 @@ uses
srvSubfamilias_Impl in '..\Modulos\Subfamilias\Servidor\srvSubfamilias_Impl.pas' {srvSubfamilias: TDataAbstractService},
schSubfamiliasClient_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasClient_Intf.pas',
schSubfamiliasServer_Intf in '..\Modulos\Subfamilias\Model\schSubfamiliasServer_Intf.pas',
schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas',
schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas',
uRptRemesasCliente_Server in '..\Modulos\Remesas de cliente\Reports\uRptRemesasCliente_Server.pas' {RptRemesasCliente: TDataModule},
uRptRemesasProveedor_Server in '..\Modulos\Remesas de proveedor\Reports\uRptRemesasProveedor_Server.pas' {RptRemesasProveedor: TDataModule},
schRemesasClienteClient_Intf in '..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas',
@ -142,7 +140,9 @@ uses
schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas',
uNumUtils in '..\Base\Utiles\uNumUtils.pas',
schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas',
schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas';
schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas',
schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas',
schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas';
{$R *.res}
{$R ..\Servicios\RODLFile.res}

View File

@ -28,7 +28,7 @@
<Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType/>
<BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">6</VersionInfo><VersionInfo Name="Release">6</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.6.6.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES (Servidor)</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.6.6.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">lunes, 11 de enero de 2016 13:39</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">6</VersionInfo><VersionInfo Name="Release">7</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.6.7.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES (Servidor)</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.6.7.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">lunes, 11 de enero de 2016 18:08</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl">File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions>

Binary file not shown.