public static decimal ObtenerValorPagoTotalProducto(long numeroProducto)
        {
            try
            {
                string url = "Productos/ObtenerValorPagoTotal/" + numeroProducto;

                var     jsonResult     = ConsumosServicios.ConsumirServicioGet(url);
                decimal valorPagoTotal = JsonConvert.DeserializeObject <decimal>(jsonResult);

                return(valorPagoTotal);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static decimal ObtenerCupoAvanceProducto(long numeroProducto)
        {
            try
            {
                string url = "Productos/ObtenerCupoAvance/" + numeroProducto;

                var     jsonResult = ConsumosServicios.ConsumirServicioGet(url);
                decimal cupoAvance = JsonConvert.DeserializeObject <decimal>(jsonResult);

                return(cupoAvance);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static List <Movimiento> ObtenerMovimientosProducto(long numeroProducto, int dias)
        {
            try
            {
                string url = "Movimientos/ObtenerMovimientosProducto/" + numeroProducto + "/" + dias;

                var jsonResult = ConsumosServicios.ConsumirServicioGet(url);
                List <Movimiento> Movimientos = JsonConvert.DeserializeObject <List <Movimiento> >(jsonResult);

                return(Movimientos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static List <Producto> ObtenerProductosActivosCliente(long identificacion)
        {
            try
            {
                string url = "Productos/ObtenerProductosActivosCliente/" + identificacion;

                var             jsonResult = ConsumosServicios.ConsumirServicioGet(url);
                List <Producto> Productos  = JsonConvert.DeserializeObject <List <Producto> >(jsonResult);

                return(Productos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static Cliente AutenticarCliente(long identificacion, string ClaveO4UltDigProd, bool conClave)
        {
            try
            {
                string claveOProducto = conClave ? HashMD5.ToHexString(ClaveO4UltDigProd) : ClaveO4UltDigProd;

                string operacion = conClave ? "AutenticarClienteConClave" : "AutenticarClienteConProducto";

                string url = "Clientes/" + operacion + "/" + identificacion + "/" + claveOProducto;

                var     jsonResult = ConsumosServicios.ConsumirServicioGet(url);
                Cliente cliente    = JsonConvert.DeserializeObject <Cliente>(jsonResult);

                return(cliente);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static bool ActualizarEstadoProducto(long numeroProducto, string estado)
        {
            try
            {
                if (!Enum.GetNames(typeof(EstadosProducto)).Contains(estado))
                {
                    throw new Exception("El estado no es valido.");
                }

                string url = "Productos/ActualizarEstadoProducto/" + numeroProducto + "/" + estado;

                var jsonResult = ConsumosServicios.ConsumirServicioGet(url);

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static bool ActualizarDatosCliente(Cliente c)
        {
            try
            {
                string url = string.Format("Clientes/ActualizarCliente/{0}/{1}/{2}/{3}/{4}/{5}/{6}/{7}",
                                           c.Identificacion,
                                           string.IsNullOrEmpty(c.CorreoElectronico) ? "null" : c.CorreoElectronico,
                                           string.IsNullOrEmpty(c.Celular) ? "null" : c.Celular,
                                           string.IsNullOrEmpty(c.TelFijo) ? "null" : c.TelFijo,
                                           c.Direccion.Replace("#", "NRO"),
                                           c.Barrio,
                                           c.Municipio,
                                           c.Departamento);

                var jsonResult = ConsumosServicios.ConsumirServicioGet(url);

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }