public Boolean SaveMovimiento(ref ObservableCollection <Movimiento> Items, Movimiento.TInterfazMovimientos x_opcion)
 {
     try
     {
         return(BL_Movimiento.Save(ref Items, x_opcion));
     }
     catch (Exception)
     { throw; }
 }
 public Boolean SaveMovimiento(ref Movimiento Item, Entities.Movimiento.TInterfazMovimiento x_opcion)
 {
     try
     {
         return(BL_Movimiento.Save(ref Item, x_opcion));
     }
     catch (Exception)
     { throw; }
 }
Exemplo n.º 3
0
        public Boolean Save(ref Planillas Item)
        {
            try
            {
                String x_usuario = "";
                DataAccessEnterpriseSQL.DABeginTransaction();
                Boolean m_isCorrect = true;
                switch (Item.Instance)
                {
                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added:
                    m_isCorrect = Insert(ref Item);
                    x_usuario   = Item.AUDI_UsrCrea;
                    foreach (Entities.DetCtaCte item in Item.ListDetCtaCte)
                    {
                        item.Instance = Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added;
                    }
                    break;

                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified:
                    m_isCorrect = Update(ref Item);
                    x_usuario   = Item.AUDI_UsrMod;
                    break;

                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted:
                    m_isCorrect = Delete(ref Item); break;
                }

                /*
                 * Grabar Detalle de las planillas
                 */
                foreach (Movimiento item in Item.ListMovimiento)
                {
                    item.AUDI_UsrMod = x_usuario;
                    item.PLAN_Codigo = Item.PLAN_Codigo;
                    item.PLAN_Tipo   = Item.PLAN_Tipo;

                    String _tipo = "";
                    switch (Item.PLAN_Tipo)
                    {
                    case "DET":
                        _tipo = Item.PLAN_Tipo;
                        break;

                    case "WWW":
                        _tipo = "BAN";
                        break;

                    default:
                        _tipo = Item.PLAN_Tipo;
                        break;
                    }

                    item.MOVI_Referencia = String.Format("[Cod. Pla.:{2}-{0}] {1}", Item.PLAN_Codigo, Item.PLAN_Concepto, _tipo);
                    Entities.Movimiento _item = item;
                    m_isCorrect      = BL_Movimiento.Save(ref _item, Movimiento.TInterfazMovimiento.RegistroPlanilla);
                    item.MOVI_Codigo = _item.MOVI_Codigo;
                }

                /*
                 * Grabar detalle de Cta Cte
                 */
                foreach (DetCtaCte iDetCtaCte in Item.ListDetCtaCte)
                {
                    switch (iDetCtaCte.Instance)
                    {
                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Unchanged:
                        break;

                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added:
                        iDetCtaCte.AUDI_UsrCrea = x_usuario;
                        break;

                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified:
                        iDetCtaCte.AUDI_UsrMod = x_usuario;
                        break;

                    case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted:
                        break;

                    default:
                        break;
                    }
                    #region Guardar el detalle de Transacciones

                    iDetCtaCte.EMPR_Codigo = Item.EMPR_Codigo;
                    iDetCtaCte.MOVI_Codigo = Item.ListMovimiento[0].MOVI_Codigo;
                    iDetCtaCte.TIPO_TabMND = Item.ItemCuentasBancarias.TIPO_TabMND;
                    iDetCtaCte.TIPO_CodMND = Item.ItemCuentasBancarias.TIPO_CodMND;
                    //iDetCtaCte.CCCT_TipoCambio = Item.TipoCambio;
                    iDetCtaCte.DCCT_TipoCambio     = iDetCtaCte.CCCT_TipoCambio.Value; //Item.TipoCambio;
                    iDetCtaCte.DCCT_FechaTrans     = DateTime.Now;
                    iDetCtaCte.DCCT_PagoDetraccion = (Item.TPlanilla == Planillas.TipoPlanilla.Detracciones);

                    Decimal TipoCambio = iDetCtaCte.DCCT_TipoCambio;

                    #region Movimiento de Egreso

                    /*
                     * Realizar las operaciones correspondientes para un Egreso
                     */
                    iDetCtaCte.DCCT_MontoHaber  = 0;
                    iDetCtaCte.DCCT_MontoHaberD = 0;
                    iDetCtaCte.CONS_TabTDC      = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte();
                    iDetCtaCte.CONS_CodTDC      = Infrastructure.Aspect.Constants.Util.GetTTipoMovimientoDetCtaCte(Infrastructure.Aspect.Constants.TTipoMovimientoDetCtaCte.Pago);

                    /*
                     * Verificar la Moneda de la Cuenta Bancaria
                     */
                    if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Soles)))
                    {
                        /*
                         * Si la Moneda de la cuenta bancaria es S/. (Nuevos Soles)
                         * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes
                         */
                        if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles)))
                        {
                            iDetCtaCte.DCCT_PPago      = 0;
                            iDetCtaCte.DCCT_MontoDebe  = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0);
                            iDetCtaCte.DCCT_PPagoD     = 0;
                            iDetCtaCte.DCCT_MontoDebeD = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) / TipoCambio, 2, MidpointRounding.AwayFromZero);
                        }
                        else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares)))
                        {
                            iDetCtaCte.DCCT_PPago      = 0;
                            iDetCtaCte.DCCT_MontoDebe  = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero);
                            iDetCtaCte.DCCT_PPagoD     = 0;
                            iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0);
                        }
                    }
                    else if (Item.ItemCuentasBancarias.TIPO_CodMND.Equals(Infrastructure.Aspect.Constants.Util.getMoneda(TMoneda.Dolares)))
                    {
                        /*
                         * Si la Moneda de la cuenta Bancaria es en US$ (Dolares Americanos)
                         * - Vericar la moneda del documento para realizar la conversión para los campos correspondientes
                         */
                        if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Soles)))
                        {
                            iDetCtaCte.DCCT_PPago     = 0;
                            iDetCtaCte.DCCT_MontoDebe = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0);
                            if (iDetCtaCte.CCCT_Pendiente.HasValue)
                            {
                                iDetCtaCte.DCCT_PPagoD     = 0;
                                iDetCtaCte.DCCT_MontoDebeD = Math.Round(iDetCtaCte.CCCT_Pendiente.Value / TipoCambio, 2, MidpointRounding.AwayFromZero);
                            }
                        }
                        else if (iDetCtaCte.TIPO_CodMND.Equals(Util.getMoneda(TMoneda.Dolares)))
                        {
                            iDetCtaCte.DCCT_PPago      = 0;
                            iDetCtaCte.DCCT_MontoDebe  = Math.Round((iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0) * TipoCambio, 2, MidpointRounding.AwayFromZero);
                            iDetCtaCte.DCCT_PPagoD     = 0;
                            iDetCtaCte.DCCT_MontoDebeD = (iDetCtaCte.CCCT_Pendiente.HasValue ? iDetCtaCte.CCCT_Pendiente.Value : 0);
                        }
                    }
                    #endregion

                    /*
                     * Realizar la Operación de Grabado en la Base de datosm según la Instancia de la Clase
                     */
                    Entities.DetCtaCte _idetctacte = iDetCtaCte;
                    BL_DetCtaCte.Save(ref _idetctacte);
                    #endregion
                }
                #region [ Generar Asientos de los Movimientos Generados ]

                foreach (Movimiento iMovi in Item.ListMovimiento)
                {
                    GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoCaja);
                    genAsientos.ItemMovimiento = iMovi;
                    genAsientos.GenerarAsientoBD(Item.AUDI_UsrCrea);
                }

                #endregion

                if (m_isCorrect)
                {
                    DataAccessEnterpriseSQL.DACommitTransaction();
                }
                else
                {
                    DataAccessEnterpriseSQL.DARollbackTransaction();
                }
                return(m_isCorrect);
            }
            catch (Exception)
            {
                DataAccessEnterpriseSQL.DARollbackTransaction();
                throw;
            }
        }
Exemplo n.º 4
0
        public Boolean Save(ref Transferencia Item)
        {
            try
            {
                DataAccessEnterpriseSQL.DABeginTransaction();
                Boolean m_isCorrect = true;
                String  x_Usuario   = "";
                switch (Item.Instance)
                {
                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Added:
                    x_Usuario   = Item.AUDI_UsrCrea;
                    m_isCorrect = Insert(ref Item);
                    foreach (Movimiento iMov in Item.ListIngresos)
                    {
                        iMov.Instance = InstanceEntity.Added; iMov.AUDI_UsrCrea = x_Usuario;
                    }
                    foreach (Movimiento iMov in Item.ListEgresos)
                    {
                        iMov.Instance = InstanceEntity.Added; iMov.AUDI_UsrCrea = x_Usuario;
                    }
                    foreach (GastosBancarios iGas in Item.ListGastosBancarios)
                    {
                        iGas.Instance = InstanceEntity.Added; iGas.AUDI_UsrCrea = x_Usuario;
                    }
                    break;

                case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Modified:
                    x_Usuario   = Item.AUDI_UsrMod;
                    m_isCorrect = Update(ref Item);
                    break;
                    // case Infrastructure.Aspect.BusinessEntity.InstanceEntity.Deleted:
                    // m_isCorrect = Delete(ref Item);
                    //break;
                }

                /*
                 * Grabar Detalles
                 */
                /*
                 * Movimientos de Ingresos
                 */
                foreach (Movimiento iMov in Item.ListIngresosEliminados)
                {
                    Movimiento _mov = iMov;
                    _mov.TRAN_Codigo = Item.TRAN_Codigo;
                    _mov.EMPR_Codigo = Item.EMPR_Codigo;
                    _mov.AUDI_UsrMod = x_Usuario;
                    _mov.Instance    = InstanceEntity.Deleted;
                    BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia);
                }
                foreach (Movimiento iMov in Item.ListIngresos)
                {
                    Movimiento _mov = iMov;
                    _mov.TRAN_Codigo = Item.TRAN_Codigo;
                    _mov.EMPR_Codigo = Item.EMPR_Codigo;
                    _mov.AUDI_UsrMod = x_Usuario;
                    m_isCorrect      = BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia);
                }

                /*
                 * Moviemientos de Egresos
                 */
                foreach (Movimiento iMov in Item.ListEgresosEliminados)
                {
                    Movimiento _mov = iMov;
                    _mov.TRAN_Codigo = Item.TRAN_Codigo;
                    _mov.EMPR_Codigo = Item.EMPR_Codigo;
                    _mov.AUDI_UsrMod = x_Usuario;
                    _mov.Instance    = InstanceEntity.Deleted;
                    BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia);
                }
                foreach (Movimiento iMov in Item.ListEgresos)
                {
                    Movimiento _mov = iMov;
                    _mov.TRAN_Codigo = Item.TRAN_Codigo;
                    _mov.EMPR_Codigo = Item.EMPR_Codigo;
                    _mov.AUDI_UsrMod = x_Usuario;
                    m_isCorrect      = BL_Movimiento.Save(ref _mov, Movimiento.TInterfazMovimiento.Transferencia);
                }

                /*
                 * Gastos Bancarios
                 */
                foreach (GastosBancarios iGBan in Item.ListGastosBancariosEliminados)
                {
                    GastosBancarios _gban = iGBan;
                    _gban.Instance = InstanceEntity.Deleted;
                    BL_GastosBancarios.Save(ref _gban);
                }
                foreach (GastosBancarios iGBan in Item.ListGastosBancarios)
                {
                    GastosBancarios _gban = iGBan;
                    _gban.TRAN_Codigo = Item.TRAN_Codigo;
                    _gban.EMPR_Codigo = Item.EMPR_Codigo;
                    switch (_gban.Instance)
                    {
                    case InstanceEntity.Added:
                        _gban.AUDI_UsrCrea = x_Usuario;
                        break;

                    case InstanceEntity.Modified:
                        _gban.AUDI_UsrMod = x_Usuario;
                        break;
                    }
                    m_isCorrect = BL_GastosBancarios.Save(ref _gban);
                }

                if (m_isCorrect)
                {
                    GAsientos genAsientos = new GAsientos(GAsientos.TipoAsiento.AsientoTransferencia);
                    genAsientos.ItemTransferencia = Item;
                    genAsientos.GenerarAsientoBD(x_Usuario);
                }

                /*
                 * Termninar la transacción
                 */
                if (m_isCorrect)
                {
                    DataAccessEnterpriseSQL.DACommitTransaction();
                }
                else
                {
                    DataAccessEnterpriseSQL.DARollbackTransaction();
                }
                return(m_isCorrect);
            }
            catch (Exception)
            {
                DataAccessEnterpriseSQL.DARollbackTransaction();
                throw;
            }
        }