2007-11-28 17:40:31 +00:00
|
|
|
|
unit uBizProveedoresServer;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
schContactosServer_Intf, uDAInterfaces, uDADelta,
|
|
|
|
|
|
uDADataTable, uDABusinessProcessor, uBizContactosServer;
|
|
|
|
|
|
|
|
|
|
|
|
const
|
|
|
|
|
|
BIZ_SERVER_PROVEEDOR = 'Server.Proveedor';
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
TBizProveedorServer = class(TBizContactosServer)
|
2008-03-25 11:13:15 +00:00
|
|
|
|
private
|
|
|
|
|
|
FReferenciaAutomatica : Boolean;
|
|
|
|
|
|
function DarReferencia : String;
|
|
|
|
|
|
function IncrementarReferencia : Boolean;
|
2007-11-28 17:40:31 +00:00
|
|
|
|
protected
|
|
|
|
|
|
procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override;
|
|
|
|
|
|
procedure Update_Datos_Contacto(aChange: TDADeltaChange); override;
|
|
|
|
|
|
procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override;
|
2008-03-25 11:13:15 +00:00
|
|
|
|
|
|
|
|
|
|
procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override;
|
|
|
|
|
|
procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); override;
|
2007-11-28 17:40:31 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
2008-02-28 19:56:56 +00:00
|
|
|
|
uDataModuleServer, uDAClasses, srvContabilidad_Impl,
|
2008-03-25 11:13:15 +00:00
|
|
|
|
schContactosClient_Intf, uBusinessUtils, srvReferencias_Impl;
|
|
|
|
|
|
|
|
|
|
|
|
const
|
|
|
|
|
|
REF_PROVEEDOR = 'REF_PROVEEDOR';
|
2007-11-28 17:40:31 +00:00
|
|
|
|
|
|
|
|
|
|
{ TBizProveedorServer }
|
|
|
|
|
|
|
2008-03-25 11:13:15 +00:00
|
|
|
|
procedure TBizProveedorServer.AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
|
|
|
|
|
|
// Actualizamos el contador de referencias.
|
|
|
|
|
|
case aChange.ChangeType of
|
|
|
|
|
|
ctInsert, ctUpdate: begin
|
|
|
|
|
|
if FReferenciaAutomatica then
|
|
|
|
|
|
begin
|
|
|
|
|
|
IncrementarReferencia;
|
|
|
|
|
|
FReferenciaAutomatica := False;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TBizProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FReferenciaAutomatica := False;
|
|
|
|
|
|
|
|
|
|
|
|
case Sender.CurrentChange.ChangeType of
|
|
|
|
|
|
ctInsert, ctUpdate: begin
|
|
|
|
|
|
//Si la referencia no ha sido asignada le asignamos una nosotros
|
|
|
|
|
|
if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
FReferenciaAutomatica := True;
|
|
|
|
|
|
REFERENCIA := DarReferencia;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TBizProveedorServer.DarReferencia: String;
|
|
|
|
|
|
var
|
|
|
|
|
|
ATipo : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
ATipo := REF_PROVEEDOR;
|
|
|
|
|
|
|
|
|
|
|
|
with TsrvReferencias.Create(NIL) do
|
|
|
|
|
|
try
|
|
|
|
|
|
Result := DarNuevaReferencia(ATipo, ID_EMPRESA, ID_TIENDA)
|
|
|
|
|
|
finally
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
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;
|
|
|
|
|
|
|
2008-03-25 11:13:15 +00:00
|
|
|
|
function TBizProveedorServer.IncrementarReferencia: Boolean;
|
|
|
|
|
|
var
|
|
|
|
|
|
ATipo : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
ATipo := REF_PROVEEDOR;
|
|
|
|
|
|
|
|
|
|
|
|
with TsrvReferencias.Create(NIL) do
|
|
|
|
|
|
try
|
|
|
|
|
|
Result := IncrementarValorReferencia(ATipo, Self.REFERENCIA, ID_EMPRESA, ID_TIENDA)
|
|
|
|
|
|
finally
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
procedure TBizProveedorServer.Insert_Datos_Contacto(aChange: TDADeltaChange);
|
|
|
|
|
|
var
|
|
|
|
|
|
ASchema : TDASchema;
|
|
|
|
|
|
ACurrentConn : IDAConnection;
|
|
|
|
|
|
ACommand : IDASQLCommand;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
|
|
|
|
|
|
idProveedor: integer;
|
2008-04-15 14:00:27 +00:00
|
|
|
|
EsAcreedor: integer;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
idEmpresa: integer;
|
|
|
|
|
|
Nombre: string;
|
|
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
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('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO];
|
|
|
|
|
|
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];
|
2007-12-27 10:34:42 +00:00
|
|
|
|
ParamByName('IGNORAR_CONTABILIDAD').Value := aChange.NewValueByName[fld_ProveedoresIGNORAR_CONTABILIDAD];
|
2008-04-02 10:56:24 +00:00
|
|
|
|
ParamByName('TIENE_SUBCUENTA').Value := aChange.NewValueByName[fld_ProveedoresTIENE_SUBCUENTA];
|
2008-04-08 19:12:47 +00:00
|
|
|
|
ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ProveedoresNOMBRE_COMERCIAL];
|
2008-04-15 14:00:27 +00:00
|
|
|
|
ParamByName('ES_ACREEDOR').Value := aChange.NewValueByName[fld_ProveedoresES_ACREEDOR];
|
2007-11-28 17:40:31 +00:00
|
|
|
|
Execute;
|
|
|
|
|
|
end;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
|
|
|
|
|
|
//En caso de no ignorar contabilidad se deber<65> dar de alta una cuenta para el cliente si el usuario no la ha asignado
|
2008-04-02 10:56:24 +00:00
|
|
|
|
if (aChange.NewValueByName[fld_ProveedoresIGNORAR_CONTABILIDAD] = 0)
|
|
|
|
|
|
and (aChange.NewValueByName[fld_ProveedoresTIENE_SUBCUENTA] = 0) then
|
2008-02-28 19:56:56 +00:00
|
|
|
|
begin
|
|
|
|
|
|
with TsrvContabilidad.Create(NIL) do
|
|
|
|
|
|
try
|
|
|
|
|
|
IdProveedor := aChange.NewValueByName[fld_ProveedoresID];
|
2008-04-15 14:00:27 +00:00
|
|
|
|
EsAcreedor := aChange.NewValueByName[fld_ProveedoresES_ACREEDOR];
|
2008-02-28 19:56:56 +00:00
|
|
|
|
IdEmpresa := aChange.NewValueByName[fld_ProveedoresID_EMPRESA];
|
|
|
|
|
|
Nombre := aChange.NewValueByName[fld_ProveedoresNOMBRE];
|
|
|
|
|
|
if not TieneCuentaAsociada(IdProveedor, IdEmpresa) then
|
2008-04-15 14:00:27 +00:00
|
|
|
|
AnadirSubCuentaProveedor(IdProveedor, EsAcreedor, IdEmpresa, Nombre);
|
2008-02-28 19:56:56 +00:00
|
|
|
|
finally
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
finally
|
|
|
|
|
|
ACommand := NIL;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
procedure TBizProveedorServer.Update_Datos_Contacto(aChange: TDADeltaChange);
|
|
|
|
|
|
var
|
|
|
|
|
|
ASchema : TDASchema;
|
|
|
|
|
|
ACurrentConn : IDAConnection;
|
|
|
|
|
|
ACommand : IDASQLCommand;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
|
|
|
|
|
|
idProveedor: integer;
|
2008-04-15 14:00:27 +00:00
|
|
|
|
EsAcreedor: integer;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
idEmpresa: integer;
|
|
|
|
|
|
Nombre: string;
|
2008-04-15 14:00:27 +00:00
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
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('CODIGO_ASIGNADO').Value := aChange.NewValueByName[fld_ProveedoresCODIGO_ASIGNADO];
|
|
|
|
|
|
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];
|
2007-12-27 10:34:42 +00:00
|
|
|
|
ParamByName('GRUPO_PROVEEDOR').Value := aChange.NewValueByName[fld_ProveedoresGRUPO_PROVEEDOR];
|
|
|
|
|
|
ParamByName('IGNORAR_CONTABILIDAD').Value := aChange.NewValueByName[fld_ProveedoresIGNORAR_CONTABILIDAD];
|
2008-04-02 10:56:24 +00:00
|
|
|
|
ParamByName('TIENE_SUBCUENTA').Value := aChange.NewValueByName[fld_ProveedoresTIENE_SUBCUENTA];
|
2008-04-15 14:00:27 +00:00
|
|
|
|
ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ProveedoresNOMBRE_COMERCIAL];
|
|
|
|
|
|
ParamByName('ES_ACREEDOR').Value := aChange.NewValueByName[fld_ProveedoresES_ACREEDOR];
|
2007-11-28 17:40:31 +00:00
|
|
|
|
Execute;
|
|
|
|
|
|
end;
|
2008-02-28 19:56:56 +00:00
|
|
|
|
|
|
|
|
|
|
//En caso de no ignorar contabilidad se deber<65> dar de alta una cuenta para el cliente si el usuario no la ha asignado
|
2008-04-02 10:56:24 +00:00
|
|
|
|
if (aChange.NewValueByName[fld_ClientesIGNORAR_CONTABILIDAD] = 0)
|
|
|
|
|
|
and (aChange.NewValueByName[fld_ClientesTIENE_SUBCUENTA] = 0) then
|
2008-02-28 19:56:56 +00:00
|
|
|
|
begin
|
|
|
|
|
|
with TsrvContabilidad.Create(NIL) do
|
|
|
|
|
|
try
|
|
|
|
|
|
IdProveedor := aChange.NewValueByName[fld_ProveedoresID];
|
2008-04-15 14:00:27 +00:00
|
|
|
|
EsAcreedor := aChange.NewValueByName[fld_ProveedoresEs_ACREEDOR];
|
2008-02-28 19:56:56 +00:00
|
|
|
|
IdEmpresa := aChange.NewValueByName[fld_ProveedoresID_EMPRESA];
|
|
|
|
|
|
Nombre := aChange.NewValueByName[fld_ProveedoresNOMBRE];
|
|
|
|
|
|
if not TieneCuentaAsociada(IdProveedor, IdEmpresa) then
|
2008-04-15 14:00:27 +00:00
|
|
|
|
AnadirSubCuentaProveedor(IdProveedor, EsAcreedor, IdEmpresa, Nombre);
|
2008-02-28 19:56:56 +00:00
|
|
|
|
finally
|
|
|
|
|
|
Free;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2007-11-28 17:40:31 +00:00
|
|
|
|
finally
|
|
|
|
|
|
ACommand := NIL;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
initialization
|
|
|
|
|
|
RegisterBusinessProcessorRules(BIZ_SERVER_PROVEEDOR, TBizProveedorServer);
|
|
|
|
|
|
|
|
|
|
|
|
end.
|