예제 #1
0
        public async Task <HttpResponseMessage> DeleteGuiaInspeccion(IdModelGuiaInspeccion Id)
        {
            using (db = new DBConnection())
            {
                try
                {
                    _guiaInspeccion = await db.GuiaInspeccion.FindAsync(Id.IdGuiaInspeccion);

                    if (_guiaInspeccion == null)
                    {
                        return(new HttpResponseMessage(HttpStatusCode.NoContent));
                    }
                    else
                    {
                        _guiaInspeccion.Activo_Inactivo = false;
                        db.Entry(_guiaInspeccion).State = EntityState.Modified;
                        await db.SaveChangesAsync();

                        return(new HttpResponseMessage(HttpStatusCode.OK));
                    }
                }
                catch (Exception ex)
                {
                    return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                    {
                        Content = new StringContent(ex.Message)
                    });
                }
            }
        }
예제 #2
0
        public async Task <HttpResponseMessage> GetGuiaInspeccion(IdModelGuiaInspeccion Id)
        {
            using (db = new DBConnection())
            {
                try
                {
                    _guiaInspeccion = await db.GuiaInspeccion.FindAsync(Id.IdGuiaInspeccion);

                    if (_guiaInspeccion == null)
                    {
                        return(new HttpResponseMessage(HttpStatusCode.NoContent));
                    }
                    else
                    {
                        return(new HttpResponseMessage(HttpStatusCode.OK)
                        {
                            Content = new StringContent(JsonConvert.SerializeObject(_guiaInspeccion), System.Text.Encoding.UTF8, "application/json")
                        });
                    }
                }
                catch (Exception ex)
                {
                    return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                    {
                        Content = new StringContent(ex.Message)
                    });
                }
            }
        }
예제 #3
0
        public async Task <HttpResponseMessage> PutGuiaInspeccion(GuiaInspeccion GuiaInspeccion)
        {
            using (db = new DBConnection())
            {
                try
                {
                    _guiaInspeccion = await db.GuiaInspeccion.FindAsync(GuiaInspeccion.IdGuiaInspeccion);

                    if (_guiaInspeccion == null)
                    {
                        return(new HttpResponseMessage(HttpStatusCode.NoContent));
                    }
                    else
                    {
                        _guiaInspeccion.FechaHora_GuiaInpeccion = GuiaInspeccion.FechaHora_GuiaInpeccion;
                        _guiaInspeccion.HoraInicial             = GuiaInspeccion.HoraInicial;
                        _guiaInspeccion.HoraFinal          = GuiaInspeccion.HoraFinal;
                        _guiaInspeccion.IdTrabajador       = GuiaInspeccion.IdTrabajador;
                        _guiaInspeccion.IdTurno            = GuiaInspeccion.IdTurno;
                        _guiaInspeccion.IdArea             = GuiaInspeccion.IdArea;
                        _guiaInspeccion.IdUnidad           = GuiaInspeccion.IdUnidad;
                        _guiaInspeccion.KilometrajeFinal   = GuiaInspeccion.KilometrajeFinal;
                        _guiaInspeccion.KilometrajeInicial = GuiaInspeccion.KilometrajeInicial;
                        _guiaInspeccion.Observaciones      = GuiaInspeccion.Observaciones;

                        await db.SaveChangesAsync();

                        return(new HttpResponseMessage(HttpStatusCode.OK));
                    }
                }
                catch (Exception ex)
                {
                    return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                    {
                        Content = new StringContent(ex.Message)
                    });
                }
            }
        }
예제 #4
0
        public async Task <HttpResponseMessage> PostGuiaInspeccion(GuiaInspeccion GuiaInspeccion)
        {
            using (db = new DBConnection())
            {
                try
                {
                    GuiaInspeccion.Activo_Inactivo = true;
                    db.GuiaInspeccion.Add(GuiaInspeccion);
                    await db.SaveChangesAsync().ConfigureAwait(false);

                    var unit = await db.Unidad.FindAsync(GuiaInspeccion.IdUnidad).ConfigureAwait(false);

                    if (db.OrdenTrabajo.Where(x => x.IdUnidad == unit.IdUnidad).Count() > 0)
                    {
                        var lastOrder = db.OrdenTrabajo.Where(x => x.IdUnidad == unit.IdUnidad).Max(x => x.IdOrdenTrabajo);
                        var lastServ  = await db.OrdenTrabajo.FindAsync(lastOrder).ConfigureAwait(false);

                        var listtIdSer = await db.GuiaServicio.Where(x => x.IdMarca == unit.IdMarca && x.IdModelo == unit.IdModelo).OrderBy(x => x.Km_Hr).ToListAsync().ConfigureAwait(false);

//                        var listtIdSer = await db.GuiaServicio.Where(x => x.IdArea == unit.IdArea && unit.IdMarca == x.IdMarca && x.IdModelo == unit.IdModelo).OrderBy(x => x.Km_Hr).ToListAsync().ConfigureAwait(false);


                        if (!unit.Km_Hr.Value)
                        {
                            //Kilometros
                            var nextSer = listtIdSer.Where(x => x.Km_Hr <= GuiaInspeccion.KilometrajeFinal).ToList().FirstOrDefault();
                            if (nextSer != null)
                            {
                                var dateini = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Min(x => x.FechaHora_GuiaInpeccion.Date);
                                var datefin = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Max(x => x.FechaHora_GuiaInpeccion.Date);
                                var dias    = (datefin - dateini).TotalDays;
                                var prom    = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Sum(x => x.KilometrajeFinal) / dias;

                                var diasRestantes = (nextSer.Km_Hr - GuiaInspeccion.KilometrajeFinal) / prom;
                                if (diasRestantes <= 30)
                                {
                                    if (!lastServ.DetalleOrdenTrabajo.ToList().Exists(x => x.IdGuiaServicio == nextSer.IdGuiaServicio))
                                    {
                                        var response = await new OrdenTrabajoController().AutomiticGeneration(new UnitInfo()
                                        {
                                            IdGuiaServicio = nextSer.IdGuiaServicio, IdUnidad = unit.IdUnidad
                                        }).ConfigureAwait(false);
                                        if (response.StatusCode == HttpStatusCode.OK)
                                        {
                                            //Mandar Notificacion
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Horas
                            //Kilometros
                            var nextSer = listtIdSer.Where(x => GuiaInspeccion.HoraFinal <= x.Km_Hr).ToList().FirstOrDefault();
                            if (nextSer != null)
                            {
                                var dateini = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Min(x => x.FechaHora_GuiaInpeccion.Date);
                                var datefin = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Max(x => x.FechaHora_GuiaInpeccion.Date);
                                var dias    = (datefin - dateini).TotalDays;
                                var prom    = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Sum(x => x.HoraFinal) / dias;

                                var diasRestantes = (nextSer.Km_Hr - GuiaInspeccion.HoraFinal) / prom;
                                if (diasRestantes <= 30)
                                {
                                    if (!lastServ.DetalleOrdenTrabajo.ToList().Exists(x => x.IdGuiaServicio == nextSer.IdGuiaServicio))
                                    {
                                        var response = await new OrdenTrabajoController().AutomiticGeneration(new UnitInfo()
                                        {
                                            IdGuiaServicio = nextSer.IdGuiaServicio, IdUnidad = unit.IdUnidad
                                        }).ConfigureAwait(false);
                                        if (response.StatusCode == HttpStatusCode.OK)
                                        {
                                            //Mandar Notificacion
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        var listtIdSer = await db.GuiaServicio.Where(x => x.IdMarca == unit.IdMarca && x.IdModelo == unit.IdModelo).OrderBy(x => x.Km_Hr).ToListAsync().ConfigureAwait(false);

                        if (!unit.Km_Hr.Value)
                        {
                            //Kilometros
                            var nextSer = listtIdSer.Where(x => x.Km_Hr <= GuiaInspeccion.KilometrajeFinal).ToList().FirstOrDefault();
                            if (nextSer != null)
                            {
                                var dateini = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Min(x => x.FechaHora_GuiaInpeccion.Date);
                                var datefin = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Max(x => x.FechaHora_GuiaInpeccion.Date);
                                var dias    = (datefin - dateini).TotalDays;
                                var prom    = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Sum(x => x.KilometrajeFinal) / dias;

                                var diasRestantes = (nextSer.Km_Hr - GuiaInspeccion.KilometrajeFinal) / prom;
                                if (diasRestantes <= 30)
                                {
                                    var response = await new OrdenTrabajoController().AutomiticGeneration(new UnitInfo()
                                    {
                                        IdGuiaServicio = nextSer.IdGuiaServicio, IdUnidad = unit.IdUnidad
                                    }).ConfigureAwait(false);
                                    if (response.StatusCode == HttpStatusCode.OK)
                                    {
                                        //Mandar Notificacion
                                    }
                                }
                            }
                        }
                        else
                        {
                            //Horas
                            //Kilometros
                            var nextSer = listtIdSer.Where(x => GuiaInspeccion.HoraFinal <= x.Km_Hr).ToList().FirstOrDefault();
                            if (nextSer != null)
                            {
                                var dateini = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).OrderBy(x => x.FechaHora_GuiaInpeccion).Select(x => x.FechaHora_GuiaInpeccion).FirstOrDefault();
                                var datefin = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).OrderByDescending(x => x.FechaHora_GuiaInpeccion).Select(x => x.FechaHora_GuiaInpeccion).FirstOrDefault();
                                var dias    = (datefin - dateini).TotalDays;
                                var prom    = db.GuiaInspeccion.Where(x => x.IdUnidad == unit.IdUnidad).Sum(x => x.HoraFinal) / dias;

                                var diasRestantes = (nextSer.Km_Hr - GuiaInspeccion.HoraFinal) / prom;
                                if (diasRestantes <= 30)
                                {
                                    var response = await new OrdenTrabajoController().AutomiticGeneration(new UnitInfo()
                                    {
                                        IdGuiaServicio = nextSer.IdGuiaServicio, IdUnidad = unit.IdUnidad
                                    }).ConfigureAwait(false);
                                    if (response.StatusCode == HttpStatusCode.OK)
                                    {
                                        //Mandar Notificacion
                                    }
                                }
                            }
                        }
                    }
                    return(new HttpResponseMessage(HttpStatusCode.OK));
                }
                catch (Exception ex)
                {
                    return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                    {
                        Content = new StringContent(ex.Message)
                    });
                }
            }
        }