unit uBizProveedoresServer;

interface

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

const
  BIZ_SERVER_PROVEEDOR = 'Server.Proveedor';

type
  TBizProveedorServer = 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_PROVEEDORES = 'REF_PROVEEDORES';

{ TBizProveedorServer }

function TBizProveedorServer.DarReferenciaContacto: String;
begin
  Result := _DarReferenciaInterna(REF_PROVEEDORES)
end;

procedure TBizProveedorServer.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_ProveedoresDatos');
  try
    with ACommand do
    begin
      ParamByName('OLD_ID_PROVEEDOR').Value := aChange.OldValueByName[fld_ProveedoresID];
      Execute;
    end;
  finally
    ACommand := NIL;
  end;
end;

function TBizProveedorServer.IncrementarReferenciaContacto: Boolean;
begin
  Result := _IncrementarReferenciaInterna(REF_PROVEEDORES)
end;

procedure TBizProveedorServer.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_ProveedoresDatos');
  try
    with ACommand do
    begin
      ParamByName('ID_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresID];
      ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ProveedoresDESCUENTO];
      ParamByName('DESCRIPCION_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR];
      ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ProveedoresREGIMEN_IVA];
      ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ProveedoresID_TIPO_IVA];
      ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO];
      ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ProveedoresTIENDA_WEB];
      ParamByName('HOMOLOGADO').Value := aChange.NewValueByName[fld_ProveedoresHOMOLOGADO];
      ParamByName('CERTIFICACION').Value := aChange.NewValueByName[fld_ProveedoresCERTIFICACION];
      ParamByName('GRUPO_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR];
      ParamByName('SUBCONTRATA').Value := aChange.NewValueByName[fld_ProveedoresSUBCONTRATA];
      ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1];
      ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2];
      ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];

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


procedure TBizProveedorServer.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_ProveedoresDatos');
  try
    with ACommand do
    begin
      ParamByName('OLD_ID_PROVEEDOR').Value := aChange.OldValueByName[fld_ProveedoresID];
      ParamByName('ID_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresID];
      ParamByName('DESCUENTO').Value := aChange.NewValueByName[fld_ProveedoresDESCUENTO];
      ParamByName('DESCRIPCION_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresDESCRIPCION_PROVEEDOR];
      ParamByName('REGIMEN_IVA').Value := aChange.NewValueByName[fld_ProveedoresREGIMEN_IVA];
      ParamByName('ID_TIPO_IVA').Value := aChange.NewValueByName[fld_ProveedoresID_TIPO_IVA];
      ParamByName('ID_FORMA_PAGO').Value := aChange.NewValueByName[fld_ProveedoresID_FORMA_PAGO];
      ParamByName('TIENDA_WEB').Value := aChange.NewValueByName[fld_ProveedoresTIENDA_WEB];
      ParamByName('HOMOLOGADO').Value := aChange.NewValueByName[fld_ProveedoresHOMOLOGADO];
      ParamByName('CERTIFICACION').Value := aChange.NewValueByName[fld_ProveedoresCERTIFICACION];
      ParamByName('GRUPO_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR];
      ParamByName('SUBCONTRATA').Value := aChange.NewValueByName[fld_ProveedoresSUBCONTRATA];
      ParamByName('VENCIMIENTO_FACTURAS_1').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_1];
      ParamByName('VENCIMIENTO_FACTURAS_2').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_2];
      ParamByName('VENCIMIENTO_FACTURAS_3').Value := aChange.NewValueByName[fld_ProveedoresVENCIMIENTO_FACTURAS_3];
      
      Execute;
    end;
  finally
    ACommand := NIL;
  end;
end;

initialization
  RegisterBusinessProcessorRules(BIZ_SERVER_PROVEEDOR, TBizProveedorServer);

end.
