public Guid InsertarAdeudo(FormCollection form, float TipoCambio, Guid IdAcesor, Guid IdProveedor, Clientes cliente, Guid IdFactura)
        {
            Usuarios usuario         = db.Usuarios.Where(x => x.Usuario == User.Identity.Name).First();
            Guid     IdPaquete       = Guid.NewGuid();
            Guid     IdAdeudoIngreso = new Guid();
            double   Total           = 0;

            for (int i = 0; i < int.Parse(form["CantidadConceptos"]); i++)
            {
                string Cantidad      = form["Cantidad" + i],
                       Concepto      = form["Concepto" + i],
                       Descripcion   = form["Descripcion" + i],
                       Unidad        = form["Unidad" + i],
                       Comentario    = form["Comentario"],
                       Cargo         = form["Cargo" + i],
                       valorUnitario = form["ValorUnitario" + i],
                       MetodoPago    = form["MetodoPago"],
                       FormaPago     = form["FormaPago"],
                       UsoCFDI       = form["UsoCFDI"];
                Total = double.Parse(Cantidad) * double.Parse(valorUnitario);
                bool Facturacion;
                IdAdeudoIngreso = Guid.NewGuid();
                string IdConceoncepto = form["IdConcepto" + i] == string.Empty || form["IdConcepto" + i] == null?Guid.NewGuid().ToString() : form["IdConcepto" + i];

                string        ClaveProdServ      = form["ClaveProdServ" + i];
                ClaveProdServ clave              = db.ClaveProdServ.Where(x => x.c_ClaveProdServ == ClaveProdServ).FirstOrDefault();
                Guid          IdMonitoreoIngreso = Guid.Parse(IdConceoncepto);
                bool          Pagado             = !(((float.Parse(valorUnitario) * float.Parse(Cantidad)) - float.Parse(Cargo)) > 0);
                if (form["Facturar"] == "on")
                {
                    Facturacion = true;
                }
                else
                {
                    Facturacion = false;
                }
                bool Envio = form["Envio"] == "on" ? true : false;
                db.InsertAdeudosInstalacion(IdAdeudoIngreso, IdProveedor, cliente.IdCliente, null, null,
                                            IdAcesor, IdPaquete, null, int.Parse(Cantidad), Concepto, Descripcion,
                                            Unidad, Total, clave.c_ClaveProdServ, null, IdAcesor,
                                            Comentario, double.Parse(Cargo), Pagado, false, Facturacion,
                                            false, Envio, false, DateTime.Now, usuario.Id, true);
                if (form["Moneda"].Contains("MXN"))
                {
                    db.InsertMonitoreoIngresos(IdMonitoreoIngreso, IdAdeudoIngreso, null, double.Parse(Cargo), 0,
                                               0, 0, MetodoPago, FormaPago, UsoCFDI, usuario.Id, TipoCambio, form["Moneda"],
                                               Comentario, DateTime.Now, true);
                }
                else
                {
                    db.InsertMonitoreoIngresos(IdMonitoreoIngreso, IdAdeudoIngreso, null, 0, 0,
                                               double.Parse(Cargo), 0, MetodoPago, FormaPago, UsoCFDI, usuario.Id, TipoCambio, form["Moneda"],
                                               Comentario, DateTime.Now, true);
                }
            }
            return(IdAdeudoIngreso);
        }
        public IActionResult GetProductosByFilter([FromRoute] string filter)
        {
            var claveProdServ = new ClaveProdServ();
            var lstClaves     = claveProdServ.GetList();

            var productos = lstClaves
                            .Where(p => p.Descripcion.Contains(filter))
                            .Take(15)
                            .ToArray();

            return(this.OkResponse(productos));
        }
        public IActionResult GetClaveSat([FromRoute] string claveSat)
        {
            var claveProdServ = new ClaveProdServ();
            var lstClaves     = claveProdServ.GetList();

            var productos = lstClaves
                            .FirstOrDefault(p => p.Codigo == claveSat);

            //.Where(p => p.Descripcion.Contains(claveSat))
            //.Take(15)
            //.ToArray();

            return(this.OkResponse(productos));
        }