unit uBizClientesServer;

interface

uses
  schContactosServer_Intf, uDAInterfaces, uDADelta,
  uDADataTable, uDABusinessProcessor, uBizContactosServer;

const
  BIZ_SERVER_CLIENTE = 'Server.Cliente';

type
  TBizClienteServer = class(TBizContactosServer)
  protected
    function DarReferenciaContacto : String; override;
    function IncrementarReferenciaContacto : Boolean; override;
        
    procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override;
    procedure Update_Datos_Contacto(aChange: TDADeltaChange); override;
    procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override;
  end;

implementation

uses
  uDataModuleServer, uDAClasses,
  schContactosClient_Intf, uBusinessUtils;

const
  REF_CLIENTES = 'REF_CLIENTES';


{ TBizClienteServer }

function TBizClienteServer.DarReferenciaContacto: String;
begin
  Result := _DarReferenciaInterna(REF_CLIENTES);
end;

procedure TBizClienteServer.Delete_Datos_Contacto(aChange: TDADeltaChange);
var
  ASchema : TDASchema;
  ACurrentConn : IDAConnection;
  ACommand : IDASQLCommand;
begin
  inherited;
  
  ASchema := BusinessProcessor.Schema;
  ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);

  ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_ClientesDatos');
  try
    with ACommand do
    begin
      ParamByName('OLD_ID_CLIENTE').Value := aChange.OldValueByName[fld_ClientesID];
      Execute;
    end;
  finally
    ACommand := NIL;
  end;
end;

function TBizClienteServer.IncrementarReferenciaContacto: Boolean;
begin
  Result := _IncrementarReferenciaInterna(REF_CLIENTES)
end;

procedure TBizClienteServer.Insert_Datos_Contacto(aChange: TDADeltaChange);
var
  ASchema : TDASchema;
  ACurrentConn : IDAConnection;
  ACommand : IDASQLCommand;
begin
  inherited;
  
  ASchema := BusinessProcessor.Schema;
  ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);

  ACommand := ASchema.NewCommand(ACurrentConn, 'Insert_ClientesDatos');
  try
    with ACommand do
    begin
      ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ClientesID];
      ParamByName('ID_AGENTE').Value := aChange.NewValueByName[fld_ClientesID_AGENTE];
      ParamByName('RAPEL').Value := aChange.NewValueByName[fld_ClientesRAPEL];
      ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION];
      ParamByName('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE];
      ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL];
      ParamByName('BLOQUEADO').Value := aChange.NewValueByName[fld_ClientesBLOQUEADO];
      ParamByName('MOTIVO_BLOQUEO').Value := aChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO];
      ParamByName('RECARGO_EQUIVALENCIA').Value := aChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA];
      ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ClientesREGIMEN_IVA];
      ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ClientesID_TIPO_IVA];
      ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ClientesID_FORMA_PAGO];
      ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ClientesTIENDA_WEB];
      ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO];
      ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO];
      ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1];
      ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
      ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3];
      ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION];      
      Execute;
    end;
  finally
    ACommand := NIL;
  end;
end;


procedure TBizClienteServer.Update_Datos_Contacto(aChange: TDADeltaChange);
var
  ASchema : TDASchema;
  ACurrentConn : IDAConnection;
  ACommand : IDASQLCommand;
begin
  inherited;

  ASchema := BusinessProcessor.Schema;
  ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);

  ACommand := ASchema.NewCommand(ACurrentConn, 'Update_ClientesDatos');
  try
    with ACommand do
    begin
      ParamByName('OLD_ID_CLIENTE').Value := aChange.OldValueByName[fld_ClientesID];
      ParamByName('ID_CLIENTE').Value := aChange.NewValueByName[fld_ClientesID];
      ParamByName('ID_AGENTE').Value := aChange.NewValueByName[fld_ClientesID_AGENTE];
      ParamByName('RAPEL').Value := aChange.NewValueByName[fld_ClientesRAPEL];
      ParamByName('EMAIL_ADMINISTRACION').Value := aChange.NewValueByName[fld_ClientesEMAIL_ADMINISTRACION];
      ParamByName('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE];
      ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL];
      ParamByName('BLOQUEADO').Value := aChange.NewValueByName[fld_ClientesBLOQUEADO];
      ParamByName('MOTIVO_BLOQUEO').Value := aChange.NewValueByName[fld_ClientesMOTIVO_BLOQUEO];
      ParamByName('RECARGO_EQUIVALENCIA').Value := aChange.NewValueByName[fld_ClientesRECARGO_EQUIVALENCIA];
      ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ClientesREGIMEN_IVA];
      ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ClientesID_TIPO_IVA];
      ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ClientesID_FORMA_PAGO];
      ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ClientesTIENDA_WEB];
      ParamByName('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ClientesCODIGO_ASIGNADO];
      ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ClientesDESCUENTO];
      ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_1];
      ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_2];
      ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS_3];
      ParamByName('FELICITACION').Value := aChange.NewValueByName[fld_ClientesFELICITACION];     

      Execute;
    end;
  finally
    ACommand := NIL;
  end;
end;

initialization
  RegisterBusinessProcessorRules(BIZ_SERVER_CLIENTE, TBizClienteServer);

end.
