unit uDataModuleVendedores;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uDataModuleContactos, DB, uDADataTable, uDAScriptingProvider,
  uDACDSDataTable, uDABINAdapter, uRORemoteService,
  uROClient, uROBinMessage, uROWinInetHttpChannel, uROTypes,
  uIDataModuleVendedores, uBizContactos, uDADesigntimeCall,
  uDAInterfaces, uDAMemDataTable, uDADataStreamer, uDABin2DataStreamer,
  uDARemoteDataAdapter;

type
  TDataModuleVendedores = class(TDataModuleContactos, IDataModuleVendedores)
    tbl_Vendedores: TDAMemDataTable;
    ds_Vendedores: TDADataSource;
  public
    function GetItem(const ID : Integer) : IBizVendedor;
    function NewItem : IBizVendedor;
    function GetItems : IBizVendedor;
  end;


implementation

{$R *.dfm}

uses
  FactuGES_Intf, cxControls, schContactosClient_Intf, uDataTableUtils;

{ TDataModuleVendedores }

function TDataModuleVendedores.GetItem(const ID: Integer): IBizVendedor;
var
  Condicion: TDAWhereExpression;
begin
  ShowHourglassCursor;
  try
    Result := Self.GetItems;

    with Result.DataTable.DynamicWhere do
    begin
      // (ID = :ID)
      Condicion := NewBinaryExpression(NewField('', fld_ContactosID), NewConstant(ID, datInteger), dboEqual);

      if IsEmpty then
         Expression := Condicion
      else
         Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
    end;

  finally
    HideHourglassCursor;
  end;
end;

function TDataModuleVendedores.GetItems: IBizVendedor;
var
  AContacto : TDAMemDataTable;
begin
  ShowHourglassCursor;
  try
    AContacto := CloneDataTable(tbl_Vendedores);
    AContacto.BusinessRulesID := BIZ_CLIENT_VENDEDOR;

    with TBizVendedor(AContacto.BusinessEventsObj) do
    begin
      DatosBancarios := _GetDatosBancarios;
    end;

    Result := (AContacto as IBizVendedor);
  finally
    HideHourglassCursor;
  end;
end;

function TDataModuleVendedores.NewItem: IBizVendedor;
begin
  Result := GetItem(ID_NULO)
end;

end.
