public JsonResult GetbyID(int?ID)
        {
            var Entrada = (from E in db.Entries
                           where E.EntradaId == ID
                           select E).ToList();

            EDEntry EDEntry = new EDEntry();

            if (Entrada != null)
            {
                foreach (var item in Entrada)
                {
                    FuncUsuarios          FuncUsuarios   = new FuncUsuarios();
                    List <EDProvider>     ListaProveedor = new List <EDProvider>();
                    List <EDEntryDetails> ListaDetalle   = new List <EDEntryDetails>();
                    ListaProveedor        = FuncUsuarios.ListaProveedores();
                    EDEntry.EntryId       = item.EntradaId;
                    EDEntry.FechaIngreso  = item.FechaIngreso.ToString("dd/MM/yyyy");
                    EDEntry.Aprobado      = item.Aprobado;
                    EDEntry.TerceroId     = item.TerceroId;
                    EDEntry.ListaTerceros = ListaProveedor;
                    ListaDetalle          = FuncUsuarios.ListaDetalleEntrada(item.EntradaId);
                    EDEntry.ListaEntradas = ListaDetalle;
                }
            }
            return(Json(EDEntry, JsonRequestBehavior.AllowGet));
        }
        public ActionResult RepEntries()
        {
            List <EDEntry> ListaEDEntry = new List <EDEntry>();
            var            Listaux      = (from E in db.Entries
                                           join T in db.Providers on E.TerceroId equals T.TerceroId
                                           orderby E.FechaIngreso descending
                                           select new { E, T }).ToList();

            if (Listaux != null)
            {
                foreach (var item in Listaux)
                {
                    EDEntry EDEntry = new EDEntry();
                    EDEntry.EntryId       = item.E.EntradaId;
                    EDEntry.FechaIngreso  = item.E.FechaIngreso.ToString("dd/MM/yyyy");
                    EDEntry.TerceroId     = item.E.TerceroId;
                    EDEntry.NombreTercero = item.T.NombreTercero;
                    ListaEDEntry.Add(EDEntry);
                }
            }
            ReportDocument rd = new ReportDocument();

            rd.FileName = Server.MapPath("~/Reports/IngresoProductos.rpt");
            //rd.Load(Server.MapPath("~/Reports/IngresoProductos.rpt"));
            rd.SetDatabaseLogon("sa", "Giovanni1979*", "SQLSERVER", "DrogSystem");
            //rd.Load(Path.Combine(Server.MapPath("~/Reports"), "IngresoProductos.rpt"));
            rd.SetDataSource(ListaEDEntry);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();

            Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);

            stream.Seek(0, SeekOrigin.Begin);

            return(File(stream, "application/pdf", "IngresoProductos.pdf"));
        }
        public JsonResult List()
        {
            List <EDEntry> ListaEDEntry = new List <EDEntry>();
            var            Listaux      = (from E in db.Entries
                                           join T in db.Providers on E.TerceroId equals T.TerceroId
                                           where E.Aprobado == "N"
                                           orderby E.FechaIngreso descending
                                           select new { E, T }).ToList();

            if (Listaux != null)
            {
                foreach (var item in Listaux)
                {
                    EDEntry EDEntry = new EDEntry();
                    EDEntry.EntryId       = item.E.EntradaId;
                    EDEntry.FechaIngreso  = item.E.FechaIngreso.ToString("dd/MM/yyyy");
                    EDEntry.TerceroId     = item.E.TerceroId;
                    EDEntry.NombreTercero = item.T.NombreTercero;
                    ListaEDEntry.Add(EDEntry);
                }
                //ListaEDEntry = ListaEDEntry.OrderBy(o => o.FechaIngreso).ToList();
            }
            return(Json(ListaEDEntry, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Crear(List <EDEntryDetails> DetalleEntrada, EDEntry Entradas, List <int> IdABorrar)
        {
            bool    Probar  = true;
            string  Mensaje = "";
            EDEntry EDEntry = new EDEntry();

            EDEntry.EntryId      = Entradas.EntryId;
            EDEntry.FechaIngreso = Entradas.FechaIngreso;
            EDEntry.Aprobado     = Entradas.Aprobado;
            EDEntry.TerceroId    = Entradas.TerceroId;

            List <EDEntryDetails> EDEntryDetails = new List <EDEntryDetails>();

            foreach (var item in DetalleEntrada)
            {
                EDEntryDetails EDEntryDetail = new EDEntryDetails();
                EDEntryDetail.EntryDetailId   = item.EntryDetailId;
                EDEntryDetail.Cantidad        = item.Cantidad;
                EDEntryDetail.Lote            = item.Lote;
                EDEntryDetail.FechaVence      = item.FechaVence;
                EDEntryDetail.ProductDetailId = item.ProductDetailId;
                EDEntryDetails.Add(EDEntryDetail);
            }
            try
            {
                Entry Entry = new Entry();
                if (EDEntry.EntryId > 0)
                {
                    Entry entrada = db.Entries.Find(EDEntry.EntryId);
                    Entry = entrada;
                }
                Entry.FechaIngreso = DateTime.Parse(EDEntry.FechaIngreso);
                Entry.TerceroId    = EDEntry.TerceroId;
                Entry.Aprobado     = EDEntry.Aprobado = Entradas.Aprobado;
                if (EDEntry.EntryId > 0)
                {
                    db.Entry(Entry).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else
                {
                    db.Entries.Add(Entry);
                    db.SaveChanges();
                }
                int IdEntrada = Entry.EntradaId;
                if (IdABorrar != null)
                {
                    foreach (var detalle in IdABorrar)
                    {
                        EntryDetail EntradaDetalle = db.EntryDetails.Find(detalle);
                        db.EntryDetails.Remove(EntradaDetalle);
                        db.SaveChanges();
                    }
                }

                foreach (var item1 in EDEntryDetails)
                {
                    EntryDetail EntryDetail = new EntryDetail();
                    if (item1.EntryDetailId > 0)
                    {
                        EntryDetail entradaDetalle = db.EntryDetails.Find(item1.EntryDetailId);
                        EntryDetail = entradaDetalle;
                    }
                    EntryDetail.Cantidad        = item1.Cantidad;
                    EntryDetail.Lote            = item1.Lote;
                    EntryDetail.FechaVence      = DateTime.Parse(item1.FechaVence);
                    EntryDetail.EntradaId       = IdEntrada;
                    EntryDetail.ProductDetailId = item1.ProductDetailId;
                    if (EntryDetail.EntryDetailId > 0)
                    {
                        db.Entry(EntryDetail).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        db.EntryDetails.Add(EntryDetail);
                        db.SaveChanges();
                    }
                    if (Entry.Aprobado == "S")
                    {
                        ProductDetail ProductDetail = db.ProductDetails.Find(EntryDetail.ProductDetailId);
                        ProductDetail.Existencias    += EntryDetail.Cantidad;
                        db.Entry(ProductDetail).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                Mensaje = " Registro Agregado con exito.";
            }
            catch (Exception)
            {
                Probar  = false;
                Mensaje = " Se produjo un error al agregar el registro.";
            }
            return(Json(new { Probar, Mensaje }, JsonRequestBehavior.AllowGet));
        }