AlonsoYSal_FactuGES2/Source/Modulos/Comisiones/Model/uBizComisiones.pas
2019-11-18 10:36:42 +00:00

150 lines
4.6 KiB
ObjectPascal
Raw Blame History

unit uBizComisiones;
interface
uses
Classes, uDAInterfaces, uDADataTable, schComisionesClient_Intf, uDBSelectionListUtils;
const
BIZ_CLIENT_COMISIONES = 'Client.Comisiones';
BIZ_CLIENT_FACTURAS_COMISION = 'Client.FacturasComisiones';
BIZ_CLIENT_VENDEDORES_COMISION = 'Client.VendedoresComisiones';
type
IBizFacturasComision = interface(IFacturas_Comision)
['{C2AB9B3F-BCAA-4F99-BDEC-105365BFB364}']
end;
IBizVendedoresComision = interface(IVendedores_Comision)
['{8F74E0CA-5988-4ABD-8F99-31915C1C1B97}']
end;
IBizComisiones = interface(IComisiones)
['{40E2637E-C002-42AB-8DD5-7A438490C23D}']
function GetFacturas: IBizFacturasComision;
procedure SetFacturas(const Value: IBizFacturasComision);
property Facturas: IBizFacturasComision read GetFacturas write SetFacturas;
function GetVendedores: IBizVendedoresComision;
procedure SetVendedores(const Value: IBizVendedoresComision);
property Vendedores: IBizVendedoresComision read GetVendedores write SetVendedores;
function EsNuevo : Boolean;
end;
TBizFacturasComision = class(TFacturas_ComisionDataTableRules, IBizFacturasComision)
end;
TBizVendedoresComision = class(TVendedores_ComisionDataTableRules, IBizVendedoresComision)
end;
TBizComisiones = class(TComisionesDataTableRules, IBizComisiones, ISeleccionable)
protected
FFacturas: IBizFacturasComision;
FFacturasLink : TDADataSource;
FVendedores: IBizVendedoresComision;
FVendedoresLink : TDADataSource;
FSeleccionableInterface : ISeleccionable;
function GetFacturas: IBizFacturasComision;
procedure SetFacturas(const Value: IBizFacturasComision);
function GetVendedores: IBizVendedoresComision;
procedure SetVendedores(const Value: IBizVendedoresComision);
procedure OnNewRecord(Sender: TDADataTable); override;
public
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
write FSeleccionableInterface implements ISeleccionable;
property Facturas: IBizFacturasComision read GetFacturas write SetFacturas;
property Vendedores: IBizVendedoresComision read GetVendedores write SetVendedores;
procedure IniciarValoresComisionLiquidacionNuevo; virtual;
function EsNuevo : Boolean;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
implementation
uses SysUtils, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App;
{ TBizComisiones }
constructor TBizComisiones.Create(aDataTable: TDADataTable);
begin
inherited;
FFacturas := Nil;
FFacturasLink := TDADataSource.Create(NIL);
FFacturasLink.DataTable := aDataTable;
FVendedores := Nil;
FVendedoresLink := TDADataSource.Create(NIL);
FVendedoresLink.DataTable := aDataTable;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizComisiones.Destroy;
begin
FFacturas := Nil;
FFacturasLink.Free;
FVendedores := Nil;
FVendedoresLink.Free;
FSeleccionableInterface := NIL;
inherited;
end;
function TBizComisiones.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
function TBizComisiones.GetFacturas: IBizFacturasComision;
begin
Result := FFacturas;
end;
function TBizComisiones.GetVendedores: IBizVendedoresComision;
begin
Result := FVendedores;
end;
procedure TBizComisiones.IniciarValoresComisionLiquidacionNuevo;
begin
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
FECHA := Date;
DESCRIPCION := 'Liquidaci<63>n de comisiones del mes de ' + UpperCase(FormatDateTime('mmmm', date));
end;
procedure TBizComisiones.OnNewRecord(Sender: TDADataTable);
begin
inherited;
IniciarValoresComisionLiquidacionNuevo;
end;
procedure TBizComisiones.SetFacturas(const Value: IBizFacturasComision);
begin
FFacturas := Value;
EnlazarMaestroDetalle(FFacturasLink, FFacturas);
if Assigned(FFacturas) then
if not FFacturas.DataTable.Active then
FFacturas.DataTable.Active := True;
end;
procedure TBizComisiones.SetVendedores(const Value: IBizVendedoresComision);
begin
FVendedores := Value;
EnlazarMaestroDetalle(FVendedoresLink, FVendedores);
if Assigned(FVendedores) then
if not FVendedores.DataTable.Active then
FVendedores.DataTable.Active := True;
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_COMISIONES, TBizComisiones);
RegisterDataTableRules(BIZ_CLIENT_FACTURAS_COMISION, TBizFacturasComision);
RegisterDataTableRules(BIZ_CLIENT_VENDEDORES_COMISION, TBizVendedoresComision);
end.