public async Task <OrdenEntrega> GetOrdenEntregaById(Guid ordenEntregaId)
        {
            OrdenEntrega obj =
                await _context.OrdenEntregas.Where(o => o.Id == ordenEntregaId).FirstOrDefaultAsync();

            return(obj);
        }
示例#2
0
        public async Task <IHttpActionResult> PostMotivoNoEntrega(MotivoNoEntrega motivoNoEntrega)
        {
            if (motivoNoEntrega == null)
            {
                return(BadRequest("El modelo esta vacio"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.MotivosNoEntrega.Add(motivoNoEntrega);
            MarcacionEntrega marcacionEntrega = db.MarcacionesEntrega.FirstOrDefault(x => x.Id == motivoNoEntrega.MarcacionEntregaId);
            OrdenEntrega     orden            = db.OrdenesEntrega.FirstOrDefault(x => x.Id == marcacionEntrega.OrdenEntregaId);

            orden.Estado = "No Entregado";
            await db.SaveChangesAsync();

            var hubContext = GlobalHost.ConnectionManager.GetHubContext <hubPrueba>();

            hubContext.Clients.All.Send("actualizarEntregas");
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = motivoNoEntrega.Id }, motivoNoEntrega));
        }
示例#3
0
        public async Task <ActionResult> AddorEdit(int id = 0)
        {
            List <Itinerario> itinerarios;

            itinerarios = await itinerariosService.obtenerItinerarios();

            List <Cliente> clientes;

            clientes = await clientesService.obtenerClientes();

            List <string> estados;

            estados = new List <string> {
                "Pendiente", "Entregado", "No Entregado"
            };

            ViewBag.ItinerariosListItems = itinerarios;
            ViewBag.ClientesListItems    = clientes;
            ViewBag.EstadosListItems     = estados;

            if (id == 0)
            {
                return(View(new OrdenEntrega()));
            }
            else
            {
                OrdenEntrega orden = await ordenesService.obtenerOrdenEntrega(id);

                return(View(orden));
            }
        }
示例#4
0
        public IHttpActionResult PutOrdenEntrega(int id, OrdenEntrega ordenEntrega)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != ordenEntrega.Id)
            {
                return(BadRequest());
            }

            db.Entry(ordenEntrega).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrdenEntregaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#5
0
        public async Task <IActionResult> InsertOrder([FromBody] OrdenEntregaViewModel ordenEntrega)
        {
            try
            {
                List <ItemEntrega> items = new List <ItemEntrega>();
                foreach (var item in ordenEntrega.Items)
                {
                    items.Add(new ItemEntrega(item.Codigo, item.Descripcion));
                }

                OrdenEntrega obj = new OrdenEntrega(ordenEntrega.NombreCliente,
                                                    ordenEntrega.Telefono,
                                                    ordenEntrega.LatitudDestino,
                                                    ordenEntrega.LongitudDestino,
                                                    items
                                                    );

                await _ordenEntregaRepository.Insert(obj);

                await _unitOfWork.Commit();

                return(Ok());
            }
            catch (Exception ex)
            {
            }
            return(BadRequest());
        }
        public async Task AnularEntrega(Guid ordenEntregaId)
        {
            OrdenEntrega obj =
                await _context.OrdenEntregas.Where(o => o.Id == ordenEntregaId).FirstOrDefaultAsync();

            obj.AnularEntrega();
        }
        public IHttpActionResult PostMotivoNoEntrega(MotivoNoEntrega motivoNoEntrega)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.MotivoNoEntregas.Add(motivoNoEntrega);

            MarcacionEntrega marcacion_asociada = db.MarcacionEntregas.FirstOrDefault(x => x.Id == motivoNoEntrega.MarcacionId);


            OrdenEntrega orden_asociada = db.OrdenEntregas.FirstOrDefault(x => x.Id == marcacion_asociada.OrdenEntregaId);

            orden_asociada.Estado = "NEntregado";

            //A Prueba
            var hub = GlobalHost.ConnectionManager.GetHubContext <hubPrueba>();

            hub.Clients.All.actualizar("Se actualizo No Entrega");



            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = motivoNoEntrega.Id }, motivoNoEntrega));
        }
        public async Task Insert(OrdenEntrega ordenEntrega)
        {
            await _context.OrdenEntregas.AddAsync(ordenEntrega);

            foreach (var item in ordenEntrega.Items)
            {
                await _context.ItemEntregas.AddAsync(item);
            }
        }
        public async Task ConsolidarEntrega(Guid ordenEntregaId, ViajeEntrega viajeEntrega)
        {
            OrdenEntrega obj =
                await _context.OrdenEntregas.Where(o => o.Id == ordenEntregaId).FirstOrDefaultAsync();

            ViajeEntrega objViaje = new ViajeEntrega(obj, viajeEntrega.FechaProgramado);
            await _context.ViajesEntrega.AddAsync(objViaje);

            obj.ConsolidarOrdenEntrega();
        }
        public async Task <IHttpActionResult> GetOrdenEntrega(int id)
        {
            OrdenEntrega ordenEntrega = await db.OrdenesEntrega.FindAsync(id);

            if (ordenEntrega == null)
            {
                return(NotFound());
            }

            return(Ok(ordenEntrega));
        }
示例#11
0
        public IHttpActionResult GetOrdenEntrega(int id)
        {
            OrdenEntrega ordenEntrega = db.OrdenEntregas.Find(id);

            if (ordenEntrega == null)
            {
                return(NotFound());
            }

            return(Ok(ordenEntrega));
        }
示例#12
0
        public async Task <ActionResult> Delete(int?id)
        {
            OrdenEntrega registro = new OrdenEntrega();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            registro = await ordenesService.obtenerOrdenEntrega(id);

            return(View(registro));
        }
示例#13
0
        public IHttpActionResult PostOrdenEntrega(OrdenEntrega ordenEntrega)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ordenEntrega.FechaEmision = DateTime.Now;
            db.OrdenEntregas.Add(ordenEntrega);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = ordenEntrega.Id }, ordenEntrega));
        }
示例#14
0
        public IHttpActionResult DeleteOrdenEntrega(int id)
        {
            OrdenEntrega ordenEntrega = db.OrdenEntregas.Find(id);

            if (ordenEntrega == null)
            {
                return(NotFound());
            }

            db.OrdenEntregas.Remove(ordenEntrega);
            db.SaveChanges();

            return(Ok(ordenEntrega));
        }
        public async Task <IHttpActionResult> DeleteOrdenEntrega(int id)
        {
            OrdenEntrega ordenEntrega = await db.OrdenesEntrega.FindAsync(id);

            if (ordenEntrega == null)
            {
                return(NotFound());
            }

            db.OrdenesEntrega.Remove(ordenEntrega);
            await db.SaveChangesAsync();

            return(Ok(ordenEntrega));
        }
 public async Task <OrdenEntrega> adicionarOrdenEntrega(OrdenEntrega orden)
 {
     using (HttpResponseMessage response = await Helpers.ConnectionHelper.httpClient.PostAsJsonAsync(urlBase, orden))
     {
         if (response.IsSuccessStatusCode)
         {
             OrdenEntrega registro = response.Content.ReadAsAsync <OrdenEntrega>().Result;
             return(registro);
         }
         else
         {
             throw new Exception(response.ReasonPhrase);
         }
     }
 }
 public async Task <OrdenEntrega> eliminarOrdenEntrega(int?id)
 {
     using (HttpResponseMessage response = await Helpers.ConnectionHelper.httpClient.DeleteAsync(urlBase + id.ToString()))
     {
         if (response.IsSuccessStatusCode)
         {
             OrdenEntrega registro = response.Content.ReadAsAsync <OrdenEntrega>().Result;
             return(registro);
         }
         else
         {
             throw new Exception(response.ReasonPhrase);
         }
     }
 }
示例#18
0
        public async Task <ActionResult> AddorEdit(OrdenEntrega rol)
        {
            if (rol.Id == 0)
            {
                await ordenesService.adicionarOrdenEntrega(rol);

                TempData["SuccessMessage"] = "Saved Successfully";
            }
            else
            {
                await ordenesService.modificarOrdenEntrega(rol.Id, rol);

                TempData["SuccessMessage"] = "Updated Successfully";
            }

            return(RedirectToAction("Index"));
        }
        public async Task <IHttpActionResult> PutOrdenEntrega(int id, OrdenEntrega ordenEntrega)
        {
            if (ordenEntrega == null)
            {
                return(BadRequest("El modelo esta vacio"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (ordenEntrega.Id == 0 && id > 0)
            {
                ordenEntrega.Id = id;
            }

            db.Entry(ordenEntrega).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrdenEntregaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            OrdenEntrega o = db.OrdenesEntrega.Find(id);

            return(Ok(o));
            //return StatusCode(HttpStatusCode.NoContent);
        }
示例#20
0
        public async Task <HttpResponseMessage> Post([FromBody] OrdenEntrega data, [FromUri] Int64?idCliente)
        {
            try
            {
                if (data == null || idCliente == null)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Parámetro nulo"));
                }
                else
                {
                    OrdenEntregaModel model = new OrdenEntregaModel();
                    data.idCliente      = idCliente;
                    data.idOrdenEntrega = await model.Insert(data); //return IDOrdenEntrega

                    return(Request.CreateResponse(HttpStatusCode.Created, data));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex));
            }
        }
        public async Task <IHttpActionResult> PostOrdenEntrega(OrdenEntrega ordenEntrega)
        {
            if (ordenEntrega == null)
            {
                return(BadRequest("El modelo esta vacio"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                db.OrdenesEntrega.Add(ordenEntrega);
                await db.SaveChangesAsync();
            }
            catch (Exception e) {
                var a = e.Message;
            }

            return(CreatedAtRoute("DefaultApi", new { id = ordenEntrega.Id }, ordenEntrega));
        }
        public async Task <ActionResult> ReporteMotivosNoEntrega()
        {
            string fechaInicio       = Request.QueryString["i"];
            string fechaFinalizacion = Request.QueryString["f"];



            List <ReporteMotivoNoEntrega> modelos = new List <ReporteMotivoNoEntrega>();

            IEnumerable <OrdenEntrega> ordenes;

            ordenes = await ordenesService.obtenerOrdenesEntrega();

            IEnumerable <Itinerario> itinerarios;

            itinerarios = await itinerariosService.obtenerItinerarios();

            IEnumerable <MarcacionEntrega> marcaciones;

            marcaciones = await marcacionesService.obtenerMarcacionesEntrega();

            IEnumerable <MotivoNoEntrega> motivos;

            motivos = await motivosService.obtenerMotivosNoEntrega();

            foreach (var motivo in motivos)
            {
                ReporteMotivoNoEntrega modelo = new ReporteMotivoNoEntrega();

                //buscar marcacionEntrega Asociada
                MarcacionEntrega me = new MarcacionEntrega();
                me = marcaciones.FirstOrDefault(x => x.Id == motivo.MarcacionEntregaId);

                //buscar ordendeEntrega Asociada
                OrdenEntrega o = new OrdenEntrega();
                o = ordenes.FirstOrDefault(x => x.Id == me.OrdenEntregaId);

                //buscar itinerario Asociada
                Itinerario it = new Itinerario();
                it = itinerarios.FirstOrDefault(x => x.Id == o.ItinerarioId);

                modelo.OrdenEntrega = o.Id;
                modelo.Factura      = o.NroFactura;

                modelo.Itinerario = it.Descripcion;
                modelo.Fecha      = me.Hora;
                modelo.Motivo     = motivo.Descripcion;

                modelos.Add(modelo);
            }


            if (fechaInicio != null && fechaFinalizacion != null)
            {
                DateTime FechaInicio       = DateTime.Parse(fechaInicio);
                DateTime FechaFinalizacion = DateTime.Parse(fechaFinalizacion);

                modelos = modelos.Where(x => x.Fecha >= FechaInicio && x.Fecha <= FechaFinalizacion).ToList();
            }


            #region datos prueba

            //List<ReporteMotivoNoEntrega> datos = new List<ReporteMotivoNoEntrega>();
            //datos.Add(new ReporteMotivoNoEntrega {
            //    OrdenEntrega = 15,                                  //id                    OrdenEntrega
            //    Factura = 6854,                                     //nroFactura            OrdenEntrega
            //    Itinerario = "Itinerario Sirari",                   //descripcion           Itinerario
            //    Fecha = new DateTime(2018, 03, 12, 8, 30, 12),      //hora                  MarcacionEntrega
            //    Motivo = "Cliente en vacaciones"                    //descripcion           MotivoNoEntrega
            //});

            //datos.Add(new ReporteMotivoNoEntrega {
            //    OrdenEntrega = 16,
            //    Factura = 6854,
            //    Itinerario = "Itinerario Urbari",
            //    Fecha = new DateTime(2018,03,15,8,45,12),
            //    Motivo = "Cliente desconoce la visita"
            //});

            //datos.Add(new ReporteMotivoNoEntrega
            //{
            //    OrdenEntrega = 16,
            //    Factura = 6854,
            //    Itinerario = "Itinerario Polanco",
            //    Fecha = new DateTime(2018, 03, 19, 8, 45, 12),
            //    Motivo = "Cliente en Reunion"
            //});

            //datos.Add(new ReporteMotivoNoEntrega
            //{
            //    OrdenEntrega = 17,
            //    Factura = 6854,
            //    Itinerario = "Itinerario La Salle",
            //    Fecha = new DateTime(2018, 03, 24, 8, 45, 12),
            //    Motivo = "Cliente no recibe al personal"
            //});

            //datos.Add(new ReporteMotivoNoEntrega
            //{
            //    OrdenEntrega = 18,
            //    Factura = 6854,
            //    Itinerario = "Itinerario Banzer",
            //    Fecha = new DateTime(2018, 03, 25, 9, 4, 4),
            //    Motivo = "Cliente cambio la fecha"
            //});


            //datos.Add(new ReporteMotivoNoEntrega
            //{
            //    OrdenEntrega = 21,
            //    Factura = 6854,
            //    Itinerario = "Itinerario Alemana",
            //    Fecha = new DateTime(2018, 03, 27, 7, 38, 12),
            //    Motivo = "Cliente cambio de direccion"
            //});

            #endregion



            return(View(modelos));
        }