unit uBizClientesServer; interface uses schContactosServer_Intf, uDAInterfaces, uDADelta, uDADataTable, uDABusinessProcessor, uBizContactosServer; const BIZ_SERVER_CLIENTE = 'Server.Cliente'; type TBizClienteServer = class(TBizContactosServer) protected 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, srvContabilidad_Impl, schContactosClient_Intf, uBusinessUtils; { TBizClienteServer } 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; procedure TBizClienteServer.Insert_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; ACurrentConn : IDAConnection; ACommand : IDASQLCommand; idCliente: integer; idTienda: integer; idEmpresa: integer; 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('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; ParamByName('VENCIMIENTO_FACTURAS').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; 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('IGNORAR_CONTABILIDAD').Value := aChange.NewValueByName[fld_ClientesIGNORAR_CONTABILIDAD]; ParamByName('PROCEDENCIA_CLIENTE').Value := aChange.NewValueByName[fld_ClientesPROCEDENCIA_CLIENTE]; Execute; end; //En caso de no ignorar contabilidad se deberá dar de alta una cuenta para el cliente si el usuario no la ha asignado if (aChange.NewValueByName[fld_ClientesIGNORAR_CONTABILIDAD] = 0) then begin with TsrvContabilidad.Create(NIL) do try idCliente := aChange.NewValueByName[fld_ClientesID]; idTienda := aChange.NewValueByName[fld_ClientesID_TIENDA]; idEmpresa := aChange.NewValueByName[fld_ClientesID_EMPRESA]; if not TieneCuentaAsociada(idCliente, idEmpresa) then AnadirSubCuentaCliente(idCliente, idTienda, idEmpresa); finally Free; end; 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('GRUPO_CLIENTE').Value := aChange.NewValueByName[fld_ClientesGRUPO_CLIENTE]; ParamByName('NOMBRE_COMERCIAL').Value := aChange.NewValueByName[fld_ClientesNOMBRE_COMERCIAL]; ParamByName('VENCIMIENTO_FACTURAS').Value := aChange.NewValueByName[fld_ClientesVENCIMIENTO_FACTURAS]; 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('IGNORAR_CONTABILIDAD').Value := aChange.NewValueByName[fld_ClientesIGNORAR_CONTABILIDAD]; ParamByName('PROCEDENCIA_CLIENTE').Value := aChange.NewValueByName[fld_ClientesPROCEDENCIA_CLIENTE]; Execute; end; finally ACommand := NIL; end; end; initialization RegisterBusinessProcessorRules(BIZ_SERVER_CLIENTE, TBizClienteServer); end.