Пример #1
0
        public string GenerarAtribucionPrecierre(int idFondo, DateTime fechaProceso, string usuario, bool blnProAlterno, string desFondo, string tipoAcceso)
        {
            AtribucionDA           atribucionDA           = new AtribucionDA();
            ValorCuotaDA           valorCuotaDA           = new ValorCuotaDA();
            ConsultaContabilidadDA consultaContabilidadDA = new ConsultaContabilidadDA();

            SqlConnection  conTributacion         = atribucionDA.GetConnection2();
            SqlTransaction transaccionTributacion = null;

            try
            {
                conTributacion.Open();
                transaccionTributacion = conTributacion.BeginTransaction(IsolationLevel.ReadUncommitted);

                DataTable dtValorCuota = valorCuotaDA.obtenerValorCuota(fechaProceso.ToString("yyyy-MM-dd"), idFondo);

                decimal valorCuota = Convert.ToDecimal(dtValorCuota.Rows[0]["VALOR_CUOTA"]);

                DataTable tipoCambio = consultaContabilidadDA.ObtenerTipoCambioContable(fechaProceso);
                if (tipoCambio.Rows.Count == 0)
                {
                    throw new Exception("No se ha registrado el tipo de cambio para la fecha " + fechaProceso.ToString("dd/MM/yyyy"));
                }
                else
                {
                    if (Convert.ToDecimal(tipoCambio.Rows[0]["VENSBS"]) == 1)
                    {
                        throw new Exception("El tipo de cambio para la fecha " + fechaProceso.ToString("dd/MM/yyyy") + " tiene valor 1.");
                    }
                }

                TablaGeneralDA mantenimientoDA = new TablaGeneralDA();
                DataTable      dtTipoCalculo;
                dtTipoCalculo = mantenimientoDA.ListarTablaGeneral(ConstantesING.CODIGO_TABLA_TIPO_CALCULO);

                DataRow drTipoCalculo = dtTipoCalculo.Rows[0];
                string  tipoCalculo   = drTipoCalculo["DESCRIPCION_LARGA"].ToString();

                DataTable dtTipoAccesoCalculo;
                dtTipoAccesoCalculo = mantenimientoDA.ListarTablaGeneral(ConstantesING.CODIGO_TABLA_TIPO_ACCESO_FONDO);

                string tipoAcceso1;
                string tipoAccesoCalculo = "";

                foreach (DataRow dato in dtTipoAccesoCalculo.Rows)
                {
                    tipoAcceso1 = dato["LLAVE_TABLA"].ToString();
                    if (tipoAcceso1.Equals(tipoAcceso))
                    {
                        tipoAccesoCalculo = dato["DESCRIPCION_CORTA"].ToString();
                    }
                }

                /*Se comenta codigo temporalmente para no tener que implementar hasta que se implemente para fondos privados
                 * if (tipoCalculo == "PEPS" || tipoAccesoCalculo == "ANTIGUO")
                 * {
                 *  if (!blnProAlterno)
                 *  {
                 *      if (!ExistenDifereciasVC(fechaProceso, idFondo))
                 *      {
                 *          throw new Exception("Existen diferencias entre los Valores Cuota de Tributación y Operaciones para la fecha y fondo indicados.");
                 *      }
                 *  }
                 *  //////////////////////////////////////////////////////////////////////////////
                 *  Int32 iCantReg = procesoDA.RegistrosRentabilidad(idFondo.ToString(), fechaProceso, dbTributacion);
                 *  if (iCantReg <= 0)
                 *  {
                 *      if (blnProAlterno)
                 *      {
                 *          procesoDA.RegistrarRentabilidadAlterno(desFondo, fechaProceso, usuario, dbTributacion, transaccionTributacion);
                 *          procesoDA.ActualizarDatosArchivo(fechaProceso, desFondo, usuario, dbTributacion, transaccionTributacion);
                 *      }
                 *      else
                 *      {
                 *          throw new Exception("No se ha cargado el archivo de Rentabilidad MIDAS del día " + fechaProceso.ToString("dd/MM/yyyy") + " para este Fondo.");
                 *      }
                 *  }
                 * }
                 */

                atribucionDA.GenerarTributacionPrecierre(idFondo, fechaProceso, usuario, valorCuota, tipoAcceso, conTributacion, transaccionTributacion);
                transaccionTributacion.Commit();

                return(tipoAccesoCalculo);
            }
            catch (Exception ex)
            {
                transaccionTributacion.Rollback();
                throw ex;
            }
            finally
            {
                transaccionTributacion.Dispose();
                conTributacion.Close();
                conTributacion.Dispose();
            }
        }
Пример #2
0
        public DataTable ObtenerTipoCambioContable(DateTime fechaProceso)
        {
            ConsultaContabilidadDA consultaContabilidadDA = new ConsultaContabilidadDA();

            return(consultaContabilidadDA.ObtenerTipoCambioContable(fechaProceso));
        }