/// <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; } } } }
/// <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> /// /// </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); } }
/// <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); }
/// <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); }
/// <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); }