public static Traspaso ChangeEstado(long oid, EEstado estado) { Traspaso item = null; try { item = Traspaso.Get(oid, false); TraspasoInfo oldItem = item.GetInfo(false); EntityBase.CheckChangeState(item.EEstado, estado); item.BeginEdit(); item.EEstado = estado; if (estado == EEstado.Anulado) { BankLine.EditItem(item, oldItem, item.SessionCode); } item.ApplyEdit(); item.Save(); } finally { if (item != null) { item.CloseSession(); } } return(item); }
/// <summary> /// Actualiza el registro en la base de datos /// </summary> /// <param name="parent">Lista padre</param> /// <remarks>La utiliza la BusinessListBaseEx correspondiente para actualizar elementos<remarks/> internal void Update(Traspasos parent) { // if we're not dirty then don't update the database if (!this.IsDirty) { return; } OidUsuario = AppContext.User.Oid; Usuario = AppContext.User.Name; ValidationRules.CheckRules(); if (!IsValid) { throw new iQValidationException(Library.Resources.Messages.GENERIC_VALIDATION_ERROR); } SessionCode = parent.SessionCode; BankTransferRecord obj = Session().Get <BankTransferRecord>(Oid); Traspaso old = Traspaso.New(); old.Base.Record.CopyValues(obj); TraspasoInfo oldItem = old.GetInfo(false); obj.CopyValues(Base.Record); Session().Update(obj); //Si no se ha modificado el estado del traspaso es porque se ha modificado algún otro campo // y hay que modificar el movimiento asociado //En caso de haber modificado el estado, si el nuevo no es Exportado es porque se ha modificado //algún otro campo y hay que modificar el movimiento asociado if (EEstado == oldItem.EEstado || (EEstado != oldItem.EEstado && EEstado != EEstado.Exportado)) { //Editamos el Movimiento de Banco asociado si lo hubiera BankLine.EditItem(this, oldItem, SessionCode); } MarkOld(); }
protected override void DataPortal_Update() { if (!IsDirty) { return; } BankTransferRecord obj = Session().Get <BankTransferRecord>(Oid); Traspaso old = Traspaso.New(); old.Base.Record.CopyValues(obj); TraspasoInfo oldItem = old.GetInfo(false); obj.CopyValues(Base.Record); Session().Update(obj); //Editamos el Movimiento de Banco asociado si lo hubiera BankLine.EditItem(this, oldItem, SessionCode); MarkOld(); }