git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/tags/1.2.0@6 c93665c3-c93d-084d-9b98-7d5f4a9c3376
365 lines
10 KiB
ObjectPascal
365 lines
10 KiB
ObjectPascal
unit uBizContactos;
|
|
|
|
interface
|
|
|
|
uses
|
|
uDAInterfaces, uDADataTable,
|
|
schContactosClient_Intf, uBizDatosBancarios, uBizCategoriasContacto,
|
|
uDBSelectionListUtils, uBizDireccionesContacto;
|
|
|
|
const
|
|
BIZ_CLIENT_CONTACTO = 'Client.Contacto';
|
|
BIZ_CLIENT_CLIENTE = 'Client.Cliente';
|
|
BIZ_CLIENT_PROVEEDOR = 'Client.Proveedor';
|
|
BIZ_CLIENT_AGENTE = 'Client.Agente';
|
|
|
|
CATEGORIA_CLIENTE = 1;
|
|
CATEGORIA_PROVEEDOR = 2;
|
|
CATEGORIA_AGENTE = 3;
|
|
|
|
PROVEEDOR_REGIMEN_IVA = 16;
|
|
|
|
type
|
|
IBizContacto = interface (IContactos)
|
|
['{CD585680-26B6-47A4-B684-89C468670F4A}']
|
|
procedure SetDatosBancarios(AValue : IBizDatosBancarios);
|
|
function GetDatosBancarios : IBizDatosBancarios;
|
|
property DatosBancarios : IBizDatosBancarios read GetDatosBancarios
|
|
write SetDatosBancarios;
|
|
|
|
function GetCategoria : String;
|
|
property Categoria : String read GetCategoria;
|
|
|
|
function _GetCategorias: IBizCategoriasContacto;
|
|
procedure _SetCategorias(const Value: IBizCategoriasContacto);
|
|
property _Categorias : IBizCategoriasContacto read _GetCategorias
|
|
write _SetCategorias;
|
|
|
|
function GetDirecciones: IBizDireccionesContacto;
|
|
procedure SetDirecciones(const Value: IBizDireccionesContacto);
|
|
property Direcciones : IBizDireccionesContacto read GetDirecciones
|
|
write SetDirecciones;
|
|
|
|
function GetSelectedRecords: ISelectedRecords;
|
|
property SelectedRecords : ISelectedRecords read GetSelectedRecords;
|
|
|
|
function EsNuevo : Boolean;
|
|
end;
|
|
|
|
IBizCliente = interface (IBizContacto)
|
|
['{EA48A6AA-AC96-4AD9-B383-F2FD4552EE76}']
|
|
function GetID_AGENTEValue: Integer;
|
|
procedure SetID_AGENTEValue(const aValue: Integer);
|
|
|
|
function GetPORTEValue: Float;
|
|
procedure SetPORTEValue(const aValue: Float);
|
|
|
|
function GetGRUPO_CLIENTEValue: String;
|
|
procedure SetGRUPO_CLIENTEValue(const aValue: String);
|
|
|
|
property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
|
|
property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue;
|
|
property PORTE: Float read GetPORTEValue write SetPORTEValue;
|
|
end;
|
|
|
|
IBizProveedor = interface (IBizContacto)
|
|
['{0CC1FBB8-C2F1-4E10-87B9-D4EEB1221299}']
|
|
function GetREGIMEN_IVAValue: Float;
|
|
procedure SetREGIMEN_IVAValue(const aValue: Float);
|
|
function GetDESCUENTOValue: Float;
|
|
procedure SetDESCUENTOValue(const aValue: Float);
|
|
|
|
property REGIMEN_IVA: Float read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
|
|
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
|
|
end;
|
|
|
|
IBizAgente = interface (IBizContacto)
|
|
['{C3288C4E-127F-4AC5-A668-4DA88B79683F}']
|
|
end;
|
|
|
|
|
|
TBizContacto = class(TContactosDataTableRules, IBizContacto, ISelectedRecords)
|
|
private
|
|
function GetSelected: Boolean;
|
|
procedure SetSelected(const Value: Boolean);
|
|
protected
|
|
FDatosBancarios : IBizDatosBancarios;
|
|
FDatosBancariosLink : TDADataSource;
|
|
FCategorias : IBizCategoriasContacto;
|
|
FCategoriasLink : TDADataSource;
|
|
FDirecciones : IBizDireccionesContacto;
|
|
FDireccionesLink : TDADataSource;
|
|
|
|
FSelectedRecords : TSelectedRecords;
|
|
|
|
function _GetCategorias: IBizCategoriasContacto;
|
|
procedure _SetCategorias(const Value: IBizCategoriasContacto);
|
|
|
|
procedure SetDatosBancarios(AValue : IBizDatosBancarios);
|
|
function GetDatosBancarios : IBizDatosBancarios;
|
|
|
|
function GetDirecciones: IBizDireccionesContacto;
|
|
procedure SetDirecciones(const Value: IBizDireccionesContacto);
|
|
|
|
function GetCategoria : String;
|
|
|
|
procedure OnNewRecord(Sender: TDADataTable); override;
|
|
public
|
|
function EsNuevo : Boolean;
|
|
procedure IniciarValoresContactoNuevo; virtual;
|
|
constructor Create(aDataTable: TDADataTable); override;
|
|
destructor Destroy; override;
|
|
property Categoria : String read GetCategoria;
|
|
|
|
property _Categorias : IBizCategoriasContacto read _GetCategorias
|
|
write _SetCategorias;
|
|
|
|
property DatosBancarios : IBizDatosBancarios read GetDatosBancarios
|
|
write SetDatosBancarios;
|
|
|
|
property Direcciones : IBizDireccionesContacto read GetDirecciones
|
|
write SetDirecciones;
|
|
|
|
function GetSelectedRecords: ISelectedRecords;
|
|
property SelectedRecords : ISelectedRecords read GetSelectedRecords implements ISelectedRecords;
|
|
|
|
property Selected : Boolean read GetSelected write SetSelected;
|
|
end;
|
|
|
|
TBizCliente = class(TBizContacto, IBizCliente)
|
|
protected
|
|
function GetID_AGENTEValue: Integer;
|
|
procedure SetID_AGENTEValue(const aValue: Integer);
|
|
|
|
function GetPORTEValue: Float;
|
|
procedure SetPORTEValue(const aValue: Float);
|
|
|
|
function GetGRUPO_CLIENTEValue: String;
|
|
procedure SetGRUPO_CLIENTEValue(const aValue: String);
|
|
|
|
property ID_AGENTE: Integer read GetID_AGENTEValue write SetID_AGENTEValue;
|
|
property GRUPO_CLIENTE: String read GetGRUPO_CLIENTEValue write SetGRUPO_CLIENTEValue;
|
|
property PORTE: Float read GetPORTEValue write SetPORTEValue;
|
|
public
|
|
procedure IniciarValoresContactoNuevo; override;
|
|
end;
|
|
|
|
TBizProveedor = class(TBizContacto, IBizProveedor)
|
|
protected
|
|
function GetREGIMEN_IVAValue: Float;
|
|
procedure SetREGIMEN_IVAValue(const aValue: Float);
|
|
function GetDESCUENTOValue: Float;
|
|
procedure SetDESCUENTOValue(const aValue: Float);
|
|
|
|
property REGIMEN_IVA: Float read GetREGIMEN_IVAValue write SetREGIMEN_IVAValue;
|
|
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
|
|
public
|
|
procedure IniciarValoresContactoNuevo; override;
|
|
end;
|
|
|
|
TBizAgente = class(TBizContacto, IBizAgente)
|
|
public
|
|
procedure IniciarValoresContactoNuevo; override;
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
uses
|
|
uDataTableUtils, Classes, DateUtils, SysUtils, uDataModuleUsuarios;
|
|
|
|
{ TBizContacto }
|
|
|
|
function TBizContacto.GetSelected: Boolean;
|
|
begin
|
|
Result := FSelectedRecords.CurrentRowSelected
|
|
end;
|
|
|
|
procedure TBizContacto.SetSelected(const Value: Boolean);
|
|
begin
|
|
FSelectedRecords.CurrentRowSelected := True;
|
|
end;
|
|
|
|
|
|
constructor TBizContacto.Create(aDataTable: TDADataTable);
|
|
begin
|
|
inherited;
|
|
FCategoriasLink := TDADataSource.Create(NIL);
|
|
FCategoriasLink.DataTable := aDataTable;
|
|
|
|
FDatosBancariosLink := TDADataSource.Create(NIL);
|
|
FDatosBancariosLink.DataTable := aDataTable;
|
|
|
|
FDireccionesLink := TDADataSource.Create(NIL);
|
|
FDireccionesLink.DataTable := aDataTable;
|
|
|
|
FSelectedRecords := TSelectedRecords.Create(aDataTable);
|
|
end;
|
|
|
|
destructor TBizContacto.Destroy;
|
|
begin
|
|
FCategorias := NIL;
|
|
FCategoriasLink.Free;
|
|
|
|
FDatosBancarios := NIL;
|
|
FDatosBancariosLink.Free;
|
|
|
|
FDirecciones := NIL;
|
|
FDireccionesLink.Free;
|
|
|
|
FreeAndNIL(FSelectedRecords);
|
|
inherited;
|
|
end;
|
|
|
|
function TBizContacto.EsNuevo: Boolean;
|
|
begin
|
|
Result := (ID < 0);
|
|
end;
|
|
|
|
function TBizContacto.GetCategoria: String;
|
|
begin
|
|
case ID_CATEGORIA of
|
|
1 : Result := 'Cliente';
|
|
2 : Result := 'Proveedor';
|
|
3 : Result := 'Agente';
|
|
end;
|
|
end;
|
|
|
|
function TBizContacto.GetDatosBancarios: IBizDatosBancarios;
|
|
begin
|
|
Result := FDatosBancarios;
|
|
end;
|
|
|
|
function TBizContacto.GetDirecciones: IBizDireccionesContacto;
|
|
begin
|
|
Result := FDirecciones;
|
|
end;
|
|
|
|
function TBizContacto.GetSelectedRecords: ISelectedRecords;
|
|
begin
|
|
Result := FSelectedRecords;
|
|
end;
|
|
|
|
procedure TBizContacto.IniciarValoresContactoNuevo;
|
|
begin
|
|
//
|
|
USUARIO := dmUsuarios.LoginInfo.Usuario;
|
|
end;
|
|
|
|
procedure TBizContacto.OnNewRecord(Sender: TDADataTable);
|
|
begin
|
|
inherited;
|
|
ID := GetRecNo; // -1, -2, -3...
|
|
IniciarValoresContactoNuevo;
|
|
end;
|
|
|
|
procedure TBizContacto.SetDatosBancarios(AValue: IBizDatosBancarios);
|
|
begin
|
|
FDatosBancarios := AValue;
|
|
EnlazarMaestroDetalle(FDatosBancariosLink, FDatosBancarios);
|
|
end;
|
|
|
|
procedure TBizContacto.SetDirecciones(const Value: IBizDireccionesContacto);
|
|
begin
|
|
FDirecciones := Value;
|
|
EnlazarMaestroDetalle(FDireccionesLink, FDirecciones);
|
|
end;
|
|
|
|
function TBizContacto._GetCategorias: IBizCategoriasContacto;
|
|
begin
|
|
Result := FCategorias;
|
|
end;
|
|
|
|
procedure TBizContacto._SetCategorias(const Value: IBizCategoriasContacto);
|
|
begin
|
|
FCategorias := Value;
|
|
EnlazarMaestroDetalle(FCategoriasLink, FCategorias);
|
|
end;
|
|
|
|
{ TBizCliente }
|
|
|
|
function TBizCliente.GetGRUPO_CLIENTEValue: String;
|
|
begin
|
|
result := DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString;
|
|
end;
|
|
|
|
function TBizCliente.GetID_AGENTEValue: Integer;
|
|
begin
|
|
result := DataTable.Fields[idx_ClientesID_AGENTE].AsInteger;
|
|
end;
|
|
|
|
procedure TBizCliente.SetGRUPO_CLIENTEValue(const aValue: String);
|
|
begin
|
|
DataTable.Fields[idx_ClientesGRUPO_CLIENTE].AsString := aValue;
|
|
end;
|
|
|
|
procedure TBizCliente.SetID_AGENTEValue(const aValue: Integer);
|
|
begin
|
|
DataTable.Fields[idx_ClientesID_AGENTE].AsInteger := aValue;
|
|
end;
|
|
|
|
function TBizCliente.GetPORTEValue: Float;
|
|
begin
|
|
result := DataTable.Fields[idx_ClientesPORTE].AsFloat
|
|
end;
|
|
|
|
procedure TBizCliente.SetPORTEValue(const aValue: Float);
|
|
begin
|
|
DataTable.Fields[idx_ClientesPORTE].AsFloat := aValue;
|
|
end;
|
|
|
|
procedure TBizCliente.IniciarValoresContactoNuevo;
|
|
begin
|
|
inherited;
|
|
ID_CATEGORIA := CATEGORIA_CLIENTE;
|
|
end;
|
|
|
|
{ TBizProveedor }
|
|
|
|
function TBizProveedor.GetREGIMEN_IVAValue: Float;
|
|
begin
|
|
result := DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsFloat;
|
|
end;
|
|
|
|
procedure TBizProveedor.IniciarValoresContactoNuevo;
|
|
begin
|
|
inherited;
|
|
ID_CATEGORIA := CATEGORIA_PROVEEDOR;
|
|
REGIMEN_IVA := PROVEEDOR_REGIMEN_IVA;
|
|
end;
|
|
|
|
function TBizProveedor.GetDESCUENTOValue: Float;
|
|
begin
|
|
result := DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat;
|
|
end;
|
|
|
|
procedure TBizProveedor.SetDESCUENTOValue(const aValue: Float);
|
|
begin
|
|
DataTable.Fields[idx_ProveedoresDESCUENTO].AsFloat := aValue;
|
|
end;
|
|
|
|
procedure TBizProveedor.SetREGIMEN_IVAValue(const aValue: Float);
|
|
begin
|
|
DataTable.Fields[idx_ProveedoresREGIMEN_IVA].AsFloat := aValue;
|
|
end;
|
|
|
|
{ TBizAgente }
|
|
|
|
procedure TBizAgente.IniciarValoresContactoNuevo;
|
|
begin
|
|
inherited;
|
|
ID_CATEGORIA := CATEGORIA_AGENTE;
|
|
end;
|
|
|
|
|
|
initialization
|
|
RegisterDataTableRules(BIZ_CLIENT_CONTACTO, TBizContacto);
|
|
|
|
RegisterDataTableRules(BIZ_CLIENT_CLIENTE, TBizCliente);
|
|
RegisterDataTableRules(BIZ_CLIENT_PROVEEDOR, TBizProveedor);
|
|
RegisterDataTableRules(BIZ_CLIENT_AGENTE, TBizAgente);
|
|
|
|
finalization
|
|
|
|
end.
|