Exemplo n.º 1
0
        /// <summary>
        /// Genera una instancia configurada en base a parametros generales para el consumo del  webservice de limite de credito
        /// </summary>
        /// <returns></returns>
        public SI_OS_SBX_to_ECC_ValidaCreditoClientesClient obtenerInstanciaClienteValidaCredito()
        {
            SI_OS_SBX_to_ECC_ValidaCreditoClientesClient cliente = null;
            ParametroGeneralBL   parametroGen = new ParametroGeneralBL();
            ParametroGeneralInfo parametroGeneral;
            EndpointAddress      remoteAddress;
            BasicHttpBinding     binding;
            string endpoint = string.Empty;
            string user     = string.Empty;
            string pass     = string.Empty;
            int    timeOut  = 0;

            parametroGeneral = parametroGen.ObtenerPorClaveParametro(ParametrosEnum.URLvalidacionLimiteCredito.ToString());
            endpoint         = parametroGeneral.Valor.Trim();

            parametroGeneral = parametroGen.ObtenerPorClaveParametro(ParametrosEnum.UsuarioWebServiceLimiteCredito.ToString());
            user             = parametroGeneral.Valor.Trim();

            parametroGeneral = parametroGen.ObtenerPorClaveParametro(ParametrosEnum.PassWebServiceLimiteCredito.ToString());
            pass             = parametroGeneral.Valor.Trim();

            timeOut = ConfigurationManager.AppSettings.Get("timeOutLimiteCredito") != null?int.Parse(ConfigurationManager.AppSettings.Get("timeOutLimiteCredito").ToString()) : 0;

            remoteAddress = new EndpointAddress(new Uri(endpoint));

            binding = new BasicHttpBinding
            {
                Name     = "HTTP_Port",
                Security =
                {
                    Mode      = BasicHttpSecurityMode.TransportCredentialOnly,
                    Transport =
                    {
                        ClientCredentialType = HttpClientCredentialType.Basic,
                        ProxyCredentialType  = HttpProxyCredentialType.None,
                    },
                    Message                  = new BasicHttpMessageSecurity {
                        ClientCredentialType = BasicHttpMessageCredentialType.UserName
                    }
                }
            };

            cliente = new SI_OS_SBX_to_ECC_ValidaCreditoClientesClient(binding, remoteAddress);
            cliente.ClientCredentials.UserName.UserName = user;
            cliente.ClientCredentials.UserName.Password = pass;
            if (timeOut > 0)
            {
                cliente.InnerChannel.OperationTimeout = new TimeSpan(0, 0, timeOut);
            }
            return(cliente);
        }
        /// <summary>
        /// Asigna el proveedor SuKarne al Costo del Ganado
        /// </summary>
        /// <param name="entradaGanadoCosteo"></param>
        private void AsignarProveedorSuKarne300(EntradaGanadoCosteoInfo entradaGanadoCosteo)
        {
            var parametroGeneralBL = new ParametroGeneralBL();
            ParametroGeneralInfo parametroGeneral =
                parametroGeneralBL.ObtenerPorClaveParametro(ParametrosEnum.PolizaSacrificio300.ToString());

            if (parametroGeneral != null)
            {
                var proveedor = new ProveedorInfo
                {
                    CodigoSAP = parametroGeneral.Valor
                };
                var proveedorBL = new ProveedorBL();
                proveedor = proveedorBL.ObtenerPorCodigoSAP(proveedor);
                if (proveedor != null)
                {
                    EntradaGanadoCostoInfo entradaGanadoCosto =
                        entradaGanadoCosteo.ListaCostoEntrada.FirstOrDefault(id => id.Costo.CostoID == 1);
                    if (entradaGanadoCosto != null)
                    {
                        entradaGanadoCosto.Proveedor   = proveedor;
                        entradaGanadoCosto.TieneCuenta = false;
                    }
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="producto"></param>
 /// <returns></returns>
 internal ProductoInfo ObtenerPorIdFiltroFamiliaSubfamilias(ProductoInfo producto)
 {
     try
     {
         var productosForraje = new List <int>();
         Logger.Info();
         var          productoDal  = new ProductoDAL();
         ProductoInfo productoInfo = productoDal.ObtenerPorID(producto);
         if (productoInfo != null)
         {
             if (productoInfo.Familia.FamiliaID == FamiliasEnum.MateriaPrimas.GetHashCode())
             {
                 return(productoInfo);
             }
             if (productoInfo.SubFamilia.SubFamiliaID == SubFamiliasEnum.Pacas.GetHashCode())
             {
                 return(productoInfo);
             }
             var parametroGeneralBL         = new ParametroGeneralBL();
             ParametroGeneralInfo parametro =
                 parametroGeneralBL.ObtenerPorClaveParametro(ParametrosEnum.SubProductosCrearContrato.ToString());
             if (parametro != null)
             {
                 if (parametro.Valor.Contains('|'))
                 {
                     productosForraje = (from tipos in parametro.Valor.Split('|')
                                         select Convert.ToInt32(tipos)).ToList();
                 }
                 else
                 {
                     int forraje = Convert.ToInt32(parametro.Valor);
                     productosForraje.Add(forraje);
                 }
             }
             if (productosForraje.Any(i => i == Convert.ToInt32(productoInfo.ProductoId)))
             {
                 return(productoInfo);
             }
         }
         return(null);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Obtiene si el producto requiere contrato
        /// Regresa el producto si esta en el parametro
        /// </summary>
        /// <param name="producto"></param>
        /// <returns></returns>
        internal ProductoInfo ObtieneRequiereContrato(ProductoInfo producto)
        {
            try
            {
                Logger.Info();
                var configuracionParametrosPl = new ParametroGeneralBL();

                var configuracion = new ParametroGeneralInfo();
                configuracion =
                    configuracionParametrosPl.ObtenerPorClaveParametro(ParametrosEnum.SubProductosCrearContrato.ToString());

                if (configuracion != null)
                {
                    string productos = configuracion.Valor;

                    if (!string.IsNullOrEmpty(productos))
                    {
                        var arregloProductos = productos.Split('|');
                        foreach (var arregloProducto in arregloProductos)
                        {
                            if (arregloProducto != "")
                            {
                                var productoResultado = new ProductoInfo();
                                productoResultado.ProductoId = Convert.ToInt32(arregloProducto);
                                if (producto.ProductoId == productoResultado.ProductoId)
                                {
                                    producto = ObtenerPorID(productoResultado);
                                    return(producto);
                                }
                            }
                        }
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(null);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Obtiene una lista de productos validos para forraje por organizacion
        /// </summary>
        /// <returns></returns>
        internal List <ProductoInfo> ObtenerProductosValidosForraje()
        {
            try
            {
                Logger.Info();
                var listaProductos            = new List <ProductoInfo>();
                var configuracionParametrosPl = new ParametroGeneralBL();
                var configuracion             = new ParametroGeneralInfo();
                configuracion =
                    configuracionParametrosPl.ObtenerPorClaveParametro(ParametrosEnum.ProductosForraje.ToString());

                if (configuracion != null)
                {
                    string productos = configuracion.Valor;

                    if (!string.IsNullOrEmpty(productos))
                    {
                        var arregloProductos = productos.Split('|');
                        foreach (var arregloProducto in arregloProductos)
                        {
                            if (arregloProducto != "")
                            {
                                var producto = new ProductoInfo();
                                producto.ProductoId = Convert.ToInt32(arregloProducto);
                                producto            = ObtenerPorID(producto);

                                listaProductos.Add(producto);
                            }
                        }
                        return(listaProductos);
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(null);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Realiza la validacion de limite de credito de un cliente
        /// </summary>
        /// <param name="datosValidacion"></param>
        /// <returns>Objeto con el resultado de la validacion</returns>
        public ResultadoValidacion validarLimiteCredito(ParametrosValidacionLimiteCredito datosValidacion)
        {
            ResultadoValidacion  resultado    = new ResultadoValidacion();
            ParametroGeneralBL   parametroGen = new ParametroGeneralBL();
            ParametroGeneralInfo parametroGeneral;
            SI_OS_SBX_to_ECC_ValidaCreditoClientesRequest  request;
            SI_OS_SBX_to_ECC_ValidaCreditoClientesResponse response;

            SI_OS_SBX_to_ECC_ValidaCreditoClientesClient servicio;

            try
            {
                parametroGeneral = parametroGen.ObtenerPorClaveParametro(ParametrosEnum.FlagValidarLimiteCredito.ToString());
                if (parametroGeneral.Valor.Trim().CompareTo("1") == 0)
                {
                    servicio = obtenerInstanciaClienteValidaCredito();
                    request  = new SI_OS_SBX_to_ECC_ValidaCreditoClientesRequest();
                    response = new SI_OS_SBX_to_ECC_ValidaCreditoClientesResponse();

                    request.MT_SBK_ValidaCreditoClientes_Request = new DT_SBK_ValidaCreditoClientes_Request
                    {
                        Cliente  = datosValidacion.CodigoSAP,
                        Importe  = datosValidacion.Importe.ToString(),
                        Sociedad = datosValidacion.Sociedad,
                        Moneda   = datosValidacion.Moneda
                    };

                    response.MT_SBK_ValidaCreditoClientes_Response = servicio.SI_OS_SBX_to_ECC_ValidaCreditoClientes(request.MT_SBK_ValidaCreditoClientes_Request);
                    servicio.Close();

                    if (response.MT_SBK_ValidaCreditoClientes_Response != null)
                    {
                        resultado.TipoResultadoValidacion = TipoResultadoValidacion.Default;
                        if (response.MT_SBK_ValidaCreditoClientes_Response.Resultado.Trim().CompareTo("0") == 0)
                        {
                            resultado.Resultado = false;
                            resultado.Mensaje   = response.MT_SBK_ValidaCreditoClientes_Response.Mensaje;
                        }
                        else if (response.MT_SBK_ValidaCreditoClientes_Response.Resultado.Trim().CompareTo("1") == 0)
                        {
                            resultado.Resultado = true;
                            resultado.Mensaje   = response.MT_SBK_ValidaCreditoClientes_Response.Mensaje;
                        }
                        else
                        {
                            resultado.Resultado = false;
                            resultado.Mensaje   = Properties.ResourceServices.validarLimiteCredito_RespuestaServicioDesconocida.ToString().Trim();
                        }
                    }
                    else
                    {
                        resultado.Resultado = false;
                        resultado.Mensaje   = Properties.ResourceServices.validarLimiteCredito_SinRespuestaServicio.ToString().Trim();
                    }
                    GC.SuppressFinalize(servicio);
                    GC.SuppressFinalize(request);
                    GC.SuppressFinalize(response);
                }
                else
                {
                    resultado.Resultado = true;
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                resultado.Resultado = false;
                resultado.Mensaje   = Properties.ResourceServices.validarLimiteCredito_ErrorConsumoServicio.ToString().Trim();
                //throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(resultado);
        }