ConstruccionesCNJ_FactuGES/Modulos/Contactos/Model/uBizContactos.pas
2007-06-21 15:50:59 +00:00

351 lines
10 KiB
ObjectPascal

unit uBizContactos;
interface
uses
uDAInterfaces, uDADataTable,
schContactosClient_Intf, uBizDatosBancarios, uBizCategoriasContacto,
uDBSelectionListUtils;
const
BIZ_CLIENT_CONTACTO = 'Client.Contacto';
BIZ_CLIENT_CLIENTE = 'Client.Cliente';
BIZ_CLIENT_PROVEEDOR = 'Client.Proveedor';
BIZ_CLIENT_VENDEDOR = 'Client.Vendedor';
BIZ_CLIENT_INSTALADOR = 'Client.Instalador';
CATEGORIA_CLIENTE = 1;
CATEGORIA_PROVEEDOR = 2;
CATEGORIA_VENDEDOR = 3;
CATEGORIA_INSTALADOR = 4;
type
IBizContacto = interface (IContactos)
['{D0373875-7F16-4772-9DA9-C1A1CA218120}']
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 GetSelectedRecords: ISelectedRecords;
property SelectedRecords : ISelectedRecords read GetSelectedRecords;
function EsNuevo : Boolean;
end;
IBizCliente = interface (IBizContacto)
['{CF183EF1-DF27-491C-AEE3-F17AABBA6541}']
function GetID_VENDEDORValue: Integer;
procedure SetID_VENDEDORValue(const aValue: Integer);
function GetPROCEDENCIAValue: String;
procedure SetPROCEDENCIAValue(const aValue: String);
property ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue;
property PROCEDENCIA: String read GetPROCEDENCIAValue write SetPROCEDENCIAValue;
end;
IBizProveedor = interface (IBizContacto)
['{0DA195B8-70DE-4DD0-BCD9-44BE30522DD7}']
function GetDISTRIBUYEValue: String;
procedure SetDISTRIBUYEValue(const aValue: String);
function GetDESCUENTOValue: Float;
procedure SetDESCUENTOValue(const aValue: Float);
property DISTRIBUYE: String read GetDISTRIBUYEValue write SetDISTRIBUYEValue;
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
end;
IBizInstalador = interface (IBizContacto)
['{2B1B8D9D-2A26-4970-9B7C-9D585B8030DB}']
end;
IBizVendedor = interface (IBizContacto)
['{31F93CBB-CE69-4621-9BD7-C79D302A2F58}']
function GetPORCENTAJE_COMISIONValue: Float;
procedure SetPORCENTAJE_COMISIONValue(const aValue: Float);
property PORCENTAJE_COMISION: Float read GetPORCENTAJE_COMISIONValue write SetPORCENTAJE_COMISIONValue;
end;
TBizContacto = class(TContactosDataTableRules, IBizContacto, ISelectedRecords)
private
function GetSelected: Boolean;
procedure SetSelected(const Value: Boolean);
protected
FDatosBancarios : IBizDatosBancarios;
FDatosBancariosLink : TDADataSource;
FCategorias : IBizCategoriasContacto;
FCategoriasLink : TDADataSource;
FSelectedRecords : TSelectedRecords;
function _GetCategorias: IBizCategoriasContacto;
procedure _SetCategorias(const Value: IBizCategoriasContacto);
procedure SetDatosBancarios(AValue : IBizDatosBancarios);
function GetDatosBancarios : IBizDatosBancarios;
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;
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_VENDEDORValue: Integer; virtual;
procedure SetID_VENDEDORValue(const aValue: Integer); virtual;
function GetPROCEDENCIAValue: String; virtual;
procedure SetPROCEDENCIAValue(const aValue: String); virtual;
property ID_VENDEDOR: Integer read GetID_VENDEDORValue write SetID_VENDEDORValue;
property PROCEDENCIA: String read GetPROCEDENCIAValue write SetPROCEDENCIAValue;
public
procedure IniciarValoresContactoNuevo; override;
end;
TBizProveedor = class(TBizContacto, IBizProveedor)
protected
function GetDISTRIBUYEValue: String; virtual;
procedure SetDISTRIBUYEValue(const aValue: String); virtual;
function GetDESCUENTOValue: Float; virtual;
procedure SetDESCUENTOValue(const aValue: Float); virtual;
property DISTRIBUYE: String read GetDISTRIBUYEValue write SetDISTRIBUYEValue;
property DESCUENTO: Float read GetDESCUENTOValue write SetDESCUENTOValue;
public
procedure IniciarValoresContactoNuevo; override;
end;
TBizInstalador = class(TBizContacto, IBizInstalador)
public
procedure IniciarValoresContactoNuevo; override;
end;
TBizVendedor = class(TBizContacto, IBizVendedor)
protected
function GetPORCENTAJE_COMISIONValue: Float; virtual;
procedure SetPORCENTAJE_COMISIONValue(const aValue: Float); virtual;
property PORCENTAJE_COMISION: Float read GetPORCENTAJE_COMISIONValue write SetPORCENTAJE_COMISIONValue;
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;
FSelectedRecords := TSelectedRecords.Create(aDataTable);
end;
destructor TBizContacto.Destroy;
begin
FCategorias := NIL;
FCategoriasLink.Free;
FDatosBancarios := NIL;
FDatosBancariosLink.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 := 'Vendedor';
4 : Result := 'Instalador';
end;
end;
function TBizContacto.GetDatosBancarios: IBizDatosBancarios;
begin
Result := FDatosBancarios;
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;
function TBizContacto._GetCategorias: IBizCategoriasContacto;
begin
Result := FCategorias;
end;
procedure TBizContacto._SetCategorias(const Value: IBizCategoriasContacto);
begin
FCategorias := Value;
EnlazarMaestroDetalle(FCategoriasLink, FCategorias);
end;
{ TBizCliente }
function TBizCliente.GetID_VENDEDORValue: Integer;
begin
result := DataTable.Fields[idx_ClientesID_VENDEDOR].AsInteger;
end;
procedure TBizCliente.SetID_VENDEDORValue(const aValue: Integer);
begin
DataTable.Fields[idx_ClientesID_VENDEDOR].AsInteger := aValue;
end;
function TBizCliente.GetPROCEDENCIAValue: String;
begin
result := DataTable.Fields[idx_ClientesPROCEDENCIA].AsString;
end;
procedure TBizCliente.IniciarValoresContactoNuevo;
begin
inherited;
ID_CATEGORIA := CATEGORIA_CLIENTE;
end;
procedure TBizCliente.SetPROCEDENCIAValue(const aValue: String);
begin
DataTable.Fields[idx_ClientesPROCEDENCIA].AsString := aValue;
end;
{ TBizInstalador }
procedure TBizInstalador.IniciarValoresContactoNuevo;
begin
inherited;
ID_CATEGORIA := CATEGORIA_INSTALADOR;
end;
{ TBizProveedor }
function TBizProveedor.GetDISTRIBUYEValue: String;
begin
result := DataTable.Fields[idx_ProveedoresDISTRIBUYE].AsString;
end;
procedure TBizProveedor.IniciarValoresContactoNuevo;
begin
inherited;
ID_CATEGORIA := CATEGORIA_PROVEEDOR;
end;
procedure TBizProveedor.SetDISTRIBUYEValue(const aValue: String);
begin
DataTable.Fields[idx_ProveedoresDISTRIBUYE].AsString := aValue;
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;
{ TBizVendedor }
function TBizVendedor.GetPORCENTAJE_COMISIONValue: Float;
begin
result := DataTable.Fields[idx_VendedoresPORCENTAJE_COMISION].AsFloat;
end;
procedure TBizVendedor.SetPORCENTAJE_COMISIONValue(const aValue: Float);
begin
DataTable.Fields[idx_VendedoresPORCENTAJE_COMISION].AsFloat := aValue;
end;
procedure TBizVendedor.IniciarValoresContactoNuevo;
begin
inherited;
ID_CATEGORIA := CATEGORIA_VENDEDOR;
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_CONTACTO, TBizContacto);
RegisterDataTableRules(BIZ_CLIENT_CLIENTE, TBizCliente);
RegisterDataTableRules(BIZ_CLIENT_PROVEEDOR, TBizProveedor);
RegisterDataTableRules(BIZ_CLIENT_VENDEDOR, TBizVendedor);
RegisterDataTableRules(BIZ_CLIENT_INSTALADOR, TBizInstalador);
finalization
end.