This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Modulos/Contactos/Model/uBizContactos.pas
2007-06-11 15:35:41 +00:00

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.