public virtual void ExportBankTransfers()
        {
            Traspasos banktransfers2 = null;

            try
            {
                _invoice_conditions.Orders.Clear();
                _invoice_conditions.Orders.NewOrder("Fecha", System.ComponentModel.ListSortDirection.Ascending, typeof(Traspaso));

                TraspasoList banktransfers = TraspasoList.GetList(_invoice_conditions, false);

                foreach (TraspasoInfo item in banktransfers)
                {
                    if (item.EEstado == EEstado.Anulado)
                    {
                        continue;
                    }

                    LineaRegistro lr = _registry.LineaRegistros.NewItem(_registry, item);

                    BuildBankTransferAccountingEntry(item, lr);

                    _accounting_entry++;
                }

                //Cambiamos el estado de las ayudas contabilizadas
                banktransfers2 = Traspasos.GetList(_invoice_conditions, false);

                foreach (Traspaso item in banktransfers2)
                {
                    if (item.EEstado == EEstado.Anulado)
                    {
                        continue;
                    }

                    if (item.EEstado != EEstado.Exportado)
                    {
                        item.EEstado = EEstado.Exportado;
                    }
                }

                banktransfers2.Save();
            }
            catch (Exception ex)
            {
                _registry = null;
                throw ex;
            }
            finally
            {
                if (banktransfers2 != null)
                {
                    banktransfers2.CloseSession();
                }
            }
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
        /// <summary>
        /// Borra el registro de la base de datos
        /// </summary>
        /// <param name="parent">Lista padre</param>
        /// <remarks>La utiliza la BusinessListBaseEx correspondiente para borrar elementos<remarks/>
        internal void DeleteSelf(Traspasos parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            // if we're new then don't update the database
            if (this.IsNew)
            {
                return;
            }

            SessionCode = parent.SessionCode;
            Session().Delete(Session().Get <BankTransferRecord>(Oid));

            //Anulamos el Movimiento de Banco asociado
            BankLine.AnulaItem(this, SessionCode);

            MarkNew();
        }
예제 #4
0
        /// <summary>
        /// Inserta el registro en la base de datos
        /// </summary>
        /// <param name="parent">Lista padre</param>
        /// <remarks>La utiliza la BusinessListBaseEx correspondiente para insertar elementos<remarks/>
        internal void Insert(Traspasos parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            GetNewCode();

            ValidationRules.CheckRules();

            if (!IsValid)
            {
                throw new iQValidationException(Library.Resources.Messages.GENERIC_VALIDATION_ERROR);
            }

            parent.Session().Save(Base.Record);

            //Insertamos el movimiento de banco asociado
            BankLine.InsertItem(this, SessionCode);

            MarkOld();
        }