Example #1
0
 /// <summary>
 ///     Metodo que crear una interfaceSalida
 /// </summary>
 /// <param name="interfaceSalidaInfo"></param>
 public void GuardarInterfaceSalida(InterfaceSalidaInfo interfaceSalidaInfo)
 {
     try
     {
         Logger.Info();
         var interfaceSalidaBL = new InterfaceSalidaBL();
         interfaceSalidaBL.GuardarInterfaceSalida(interfaceSalidaInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Example #2
0
        /// <summary>
        ///     Obtiene una Interface de Salida por SalidaID y OrganizacionID
        /// </summary>
        /// <param name="entradaGanado"></param>
        /// <returns></returns>
        public EntradaGanadoCosteoInfo ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado)
        {
            EntradaGanadoCosteoInfo entradaGanadoCosteoInfo;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                entradaGanadoCosteoInfo = interfaceSalidaBL.ObtenerPorSalidaOrganizacion(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(entradaGanadoCosteoInfo);
        }
Example #3
0
        /// <summary>
        ///     Obtiene una Lista de Interface de Salida
        /// </summary>
        /// <returns></returns>
        public IList <InterfaceSalidaInfo> ObtenerTodos()
        {
            IList <InterfaceSalidaInfo> interfacesSalidaInfo;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                interfacesSalidaInfo = interfaceSalidaBL.ObtenerTodos();
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(interfacesSalidaInfo);
        }
Example #4
0
        /// <summary>
        ///     Obtiene una Interface de Salida por Id
        /// </summary>
        /// <param name="salidaID"></param>
        /// <param name="organizacionID"></param>
        /// <returns></returns>
        public InterfaceSalidaInfo ObtenerPorID(int salidaID, int organizacionID)
        {
            InterfaceSalidaInfo interfaceSalidaInfo;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                interfaceSalidaInfo = interfaceSalidaBL.ObtenerPorID(salidaID, organizacionID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(interfaceSalidaInfo);
        }
Example #5
0
        /// <summary>
        ///     Obtiene una Interface de Salida por Id
        /// </summary>
        /// <param name="salidaID"></param>
        /// <param name="organizacionID"></param>
        /// <param name="organizacioOrigenID"></param>
        /// <returns></returns>
        public int ObtenerPorEmbarque(int salidaID, int organizacionID, int organizacioOrigenID)
        {
            int resultado;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                resultado = interfaceSalidaBL.ObtenerPorEmbarque(salidaID, organizacionID, organizacioOrigenID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }
Example #6
0
        public Dictionary <int, decimal> ObtenerCostoFleteProrrateado(EntradaGanadoInfo entradaGanado, List <EntradaGanadoCostoInfo> listaCostosEmbarque, List <EntradaGanadoInfo> listaCompraDirecta)
        {
            Dictionary <int, decimal> importesProrrateados;

            try
            {
                Logger.Info();
                var interfaceSalidaBL = new InterfaceSalidaBL();
                importesProrrateados = interfaceSalidaBL.ObtenerCostoFleteProrrateado(entradaGanado, listaCostosEmbarque, listaCompraDirecta);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(importesProrrateados);
        }
Example #7
0
        /// <summary>
        /// Metodo para armar los objetos para generar poliza
        /// </summary>
        /// <param name="datosPoliza">Objeto salidaGanadotransitoInfo</param>
        /// <returns>poliza</returns>
        public override IList <PolizaInfo> GeneraPoliza(object datosPoliza)
        {
            IList <PolizaInfo> polizaSalida = new List <PolizaInfo>();

            var noLinea         = 1;
            var costosPl        = new CostoPL();
            var cliente         = new ClientePL();
            var cuentasSap      = ObtenerCuentasSAP();
            var interfaceBl     = new InterfaceSalidaBL();
            var parOrganizacion = new ParametroOrganizacionBL();
            var parametroCentro = new ParametroOrganizacionInfo();
            var input           = (SalidaGanadoEnTransitoInfo)datosPoliza;
            var costosClaves    = costosPl.ObtenerTodos(EstatusEnum.Activo);
            var costoAbono      = new CostoInfo {
                ClaveContable = string.Empty
            };
            var costoGanado = input.Costos.FirstOrDefault(x => x.CostoID == Costo.CostoGanado.GetHashCode());
            var claveCuenta = parOrganizacion.ObtenerPorOrganizacionIDClaveParametro(input.OrganizacionID, ParametrosEnum.CTAFALTANTESOBRANTE.ToString());

            ClaveContableInfo clavecontablecargo;

            detalles      = input.DetallesSalida;
            datos         = obtenerDatosPolizaSalidaPorVenta(input);
            input.Cliente = cliente.ObtenerPorID(input.Cliente.ClienteID);

            //la var datos debe contener datos para poder acceder a su valor en la propiedad PostFijoRef3
            var ref3         = Ref3(input);
            var archivoFolio = ArchivoFolio(input);

            #region linea1(+) Proveedor
            var linea1 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            linea1.Importe = input.Importe.ToString("N", CultureInfo.InvariantCulture);
            linea1.Cliente = input.Cliente.CodigoSAP;
            //linea1.Cuenta = input.Cliente.CodigoSAP;
            polizaSalida.Add(linea1);
            noLinea++;
            #endregion

            #region linea2(-) Beneficiario
            var linea2 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            //linea2.Cliente = input.Cliente.CodigoSAP;
            linea2.Importe = "-" + input.Importe.ToString("N", CultureInfo.InvariantCulture);
            var claveContableAbono = interfaceBl.ObtenerCuentaInventario(costoAbono, input.OrganizacionID, ClaveCuenta.CuentaBeneficioInventario);

            if (claveContableAbono != null)
            {
                var cuentaSap = cuentasSap.FirstOrDefault(clave => clave.CuentaSAP == claveContableAbono.Valor);
                claveContableAbono.Descripcion = cuentaSap == null ? string.Empty : cuentaSap.Descripcion;
            }
            else
            {
                claveContableAbono = new ClaveContableInfo
                {
                    Valor = string.Empty
                };
            }

            var beneficio = false;
            if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroBeneficio))
            {
                parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROBENEFICIOENG.ToString());

                if (parametroCentro == null)
                {
                    throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO"));
                }
                beneficio = true;
            }
            else
            {
                if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroGasto))
                {
                    parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROCOSTOENG.ToString());

                    if (parametroCentro == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO"));
                    }
                }
            }
            if (beneficio)
            {
                linea2.CentroBeneficio = parametroCentro.Valor;
            }
            else
            {
                linea2.CentroCosto = parametroCentro.Valor;
            }

            linea2.Cuenta = claveContableAbono.Valor;
            polizaSalida.Add(linea2);
            noLinea++;
            #endregion

            #region linea3 cargo a cuenta costo ganado(-)
            //se elimino esta linea
            #endregion

            #region linea4 cargo a costo corral(-)
            if (costoGanado == null)
            {
                return(polizaSalida);
            }

            var linea4 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
            linea4.Cuenta = claveCuenta.Valor;

            if (claveCuenta.Valor.Substring(0, 4) == "5001")
            {
                linea4.CentroCosto = datos.ParametroOrganizacionValor;
            }

            var importeCostos = input.DetallesSalida.Sum(costo => costo.ImporteCosto);

            linea4.Importe = "-" + importeCostos.ToString(CultureInfo.InvariantCulture);
            polizaSalida.Add(linea4);
            noLinea++;
            #endregion

            #region linea5 cargoACuentaResultados (-)(importe total)
            var linea5 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);

            if (claveCuenta.Valor.Substring(0, 4) == "5001")
            {
                linea5.CentroCosto = datos.ParametroOrganizacionValor;
            }

            var salidaVentaTransito = input.DetallesSalida.FirstOrDefault(detalle => detalle.CostoId == Costo.CostoGanado.GetHashCode());
            if (salidaVentaTransito != null)
            {
                linea5.Importe = salidaVentaTransito.ImporteCosto.ToString(CultureInfo.InvariantCulture);
            }

            costos = ObtenerCostos();
            var firstOrDefault = costos.FirstOrDefault(x => x.CostoID == costoGanado.CostoID);

            if (firstOrDefault != null)
            {
                costoAbono.ClaveContable = firstOrDefault.ClaveContable;
                clavecontablecargo       = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito);
                if (clavecontablecargo != null)
                {
                    linea5.Cuenta = clavecontablecargo.Valor;
                }
            }

            polizaSalida.Add(linea5);
            noLinea++;
            #endregion

            #region linea6 abono a cuenta Resultados a la misma cuenta que el punto anterior en foreach
            var linea6 = new List <PolizaInfo>();

            foreach (var costoCargo in input.DetallesSalida.SkipWhile(costo => costo.CostoId == Costo.CostoGanado.GetHashCode()))
            {
                var temp = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea);
                temp.Importe = costoCargo.ImporteCosto.ToString(CultureInfo.InvariantCulture);

                var claveCosto = costosClaves.FirstOrDefault(x => x.CostoID == costoCargo.CostoId);
                if (claveCosto != null)
                {
                    costoAbono.ClaveContable = claveCosto.ClaveContable;
                    clavecontablecargo       = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito);
                    if (clavecontablecargo != null)
                    {
                        temp.Cuenta = clavecontablecargo.Valor;
                    }
                }

                if (claveCuenta.Valor.Substring(0, 4) == "5001")
                {
                    temp.CentroCosto = datos.ParametroOrganizacionValor;
                }

                linea6.Add(temp);
                noLinea++;
            }

            foreach (var polizaItem in linea6)
            {
                polizaSalida.Add(polizaItem);
            }
            #endregion

            return(polizaSalida);
        }