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.
Noviseda_FactuGES2/Source/Modulos/Comisiones/Model/uBizComisiones.pas

151 lines
4.3 KiB
ObjectPascal

unit uBizComisiones;
interface
uses
uDAInterfaces, uDADataTable, schComisionesClient_Intf, uDBSelectionListUtils, Classes;
// uBizContactos, uBizDetallesFacturaCliente
const
BIZ_CLIENT_COMISIONES = 'Client.Comisiones';
BIZ_CLIENT_FACTURASCOMISION = 'Client.FacturasComision';
type
IBizFacturasComision = interface(IFacturasComision)
['{341B5CD1-2BCD-43F5-8F0C-AF72C1780512}']
end;
IBizComision = interface(IComisiones)
['{78E17CC4-F4A6-489D-99C3-2D56F8730A33}']
function GetFacturasComision: IBizFacturasComision;
procedure SetFacturasComision(Value: IBizFacturasComision);
property FacturasComision: IBizFacturasComision read GetFacturasComision write SetFacturasComision;
procedure CalcularImporteTotal;
end;
TBizFacturasComision = class(TFacturasComisionDataTableRules, IBizFacturasComision)
end;
TBizComision = class(TComisionesDataTableRules, IBizComision, ISeleccionable)
private
FSeleccionableInterface : ISeleccionable;
procedure CalcularComision;
protected
FFacturasComision : IBizFacturasComision;
FFacturasComisionLink : TDADataSource;
function GetFacturasComision: IBizFacturasComision;
procedure SetFacturasComision(Value: IBizFacturasComision);
procedure COMISIONOnChange(Sender: TDACustomField);
public
procedure CalcularImporteTotal;
property FacturasComision: IBizFacturasComision read GetFacturasComision write SetFacturasComision;
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface implements ISeleccionable;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
end;
implementation
uses
SysUtils, uDataTableUtils, DB, uDateUtils, DateUtils, uDataModuleUsuarios,
Variants, cxDateUtils, uFactuGES_App;
{ TBizComision }
procedure TBizComision.CalcularComision;
begin
{ if not Self.DataTable.Editing then
Edit;
IMPORTE_COMISION := (COMISION / 100) * BASE_IMPONIBLE;
}
end;
{procedure TBizComision.CalcularDescuento;
begin
if not Self.DataTable.Editing then
Edit;
IMPORTE_DESCUENTO := (DESCUENTO / 100) * IMPORTE_NETO;
end;}
procedure TBizComision.CalcularImporteTotal;
begin
{ DataTable.DisableControls;
DataTable.Fields.FieldEventsDisabled := True;
try
if not Self.DataTable.Editing then
Edit;
IMPORTE_TOTAL := BASE_IMPONIBLE + IMPORTE_IVA + IMPORTE_RE;
finally
DataTable.Fields.FieldEventsDisabled := False;
DataTable.EnableControls;
end;
}
end;
procedure TBizComision.COMISIONOnChange(Sender: TDACustomField);
begin
CalcularImporteTotal;
end;
constructor TBizComision.Create(aDataTable: TDADataTable);
begin
inherited;
{
with DataTable do
begin
FieldByName(fld_FacturasClienteID_TIPO_IVA).OnChange := ID_TIPO_IVAOnChange;
FieldByName(fld_FacturasClienteRECARGO_EQUIVALENCIA).OnChange := RECARGO_EQUIVALENCIAOnChange;
FieldByName(fld_FacturasClienteIMPORTE_NETO).OnChange := IMPORTE_NETOOnChange;
FieldByName(fld_FacturasClienteIMPORTE_PORTE).OnChange := IMPORTE_PORTEOnChange;
FieldByName(fld_FacturasClienteDESCUENTO).OnChange := DESCUENTOOnChange;
FieldByName(fld_FacturasClienteDESCUENTO2).OnChange := DESCUENTO2OnChange;
FieldByName(fld_FacturasClienteCOMISION).OnChange := COMISIONOnChange;
FieldByName(fld_FacturasClienteIVA).OnChange := IVAOnChange;
FieldByName(fld_FacturasClienteRE).OnChange := REOnChange;
end;
}
FFacturasComisionLink := TDADataSource.Create(NIL);
FFacturasComisionLink.DataTable := aDataTable;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizComision.Destroy;
begin
FFacturasComision := NIL;
FFacturasComisionLink.Free;
FSeleccionableInterface := NIL;
inherited;
end;
function TBizComision.GetFacturasComision: IBizFacturasComision;
begin
Result := FFacturasComision;
end;
procedure TBizComision.SetFacturasComision(Value: IBizFacturasComision);
begin
FFacturasComision := Value;
EnlazarMaestroDetalle(FFacturasComisionLink, FFacturasComision);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_COMISIONES, TBizComision);
RegisterDataTableRules(BIZ_CLIENT_FACTURASCOMISION, TBizFacturasComision);
finalization
end.