Ejemplo n.º 1
0
        //public IHttpActionResult Postbt_solicitudes(Models.solicitudesModel solicitud)
        public IHttpActionResult Postbt_solicitudes(Models.solicitudesModel solicitud)
        {
            bt_solicitudes bt_solicitudes = Models.solicitudesModel.ConvertToBD(solicitud);

            if (bt_solicitudes.os_id == 0)
            {
                db.bt_solicitudes.Add(bt_solicitudes);

                db.SaveChanges();
                solicitud.fh_cierre   = ((DateTime)(bt_solicitudes.fh_cierre)).ToString("yyyy-MM-dd");;
                solicitud.fh_creacion = ((DateTime)(bt_solicitudes.fh_creacion)).ToString("yyyy-MM-dd");;
                solicitud.os_id       = bt_solicitudes.os_id;
                solicitud.estado_id   = 1;
                solicitud.estado_desc = _osService.buscarEstado(1).estado_desc;

                // Creo la el estado 1 para la orden
                Models.os_statusModel st = new Models.os_statusModel();
                st.estado_sk   = 1;
                st.os_id       = bt_solicitudes.os_id;
                st.comentarios = "Nueva Orden";
                bt_os_status bt_os_status = Models.os_statusModel.ConvertToBD(st);


                db.bt_os_status.Add(bt_os_status);
                db.SaveChanges();


                return(CreatedAtRoute("DefaultApi", new { id = bt_solicitudes.os_id }, solicitud));
            }
            else
            {
                bt_solicitudes solpe = db.bt_solicitudes.Where(x => x.os_id == bt_solicitudes.os_id).FirstOrDefault();

                solpe.fh_creacion = bt_solicitudes.fh_creacion;
                solpe.fh_cierre   = bt_solicitudes.fh_cierre;
                solpe.tipo        = bt_solicitudes.tipo;
                solpe.descripcion = bt_solicitudes.descripcion;

                db.SaveChanges();
                solicitud.fh_creacion = ((DateTime)(solpe.fh_creacion)).ToString("yyyy-MM-dd");;
                solicitud.fh_cierre   = ((DateTime)(solpe.fh_cierre)).ToString("yyyy-MM-dd");
                solicitud.estado_id   = _osService.buscarUltEstado(solicitud.os_id).estado_sk;
                solicitud.estado_desc = _osService.buscarEstado(solicitud.estado_id).estado_desc;


                return(CreatedAtRoute("DefaultApi", new { id = solpe.os_id }, solicitud));
            }
        }
Ejemplo n.º 2
0
        public IHttpActionResult Getbt_os_status(int os_id)
        {
            //List<bt_os_status> estados = db.bt_os_status.Where(x => x.os_id == os_id).ToList();
            //if (estados == null)
            //{
            //    return NotFound();
            //}

            //List<Models.os_statusModel> modelEstados = Models.os_statusModel.ListConvertTo(estados);
            //Models.os_statusModel ult_estado = modelEstados.OrderByDescending(x => x.timestamp).FirstOrDefault();

            //return Ok(ult_estado);

            Data.bt_os_status     ult_estado  = _osService.buscarUltEstado(os_id);
            Models.os_statusModel modelEstado = Models.os_statusModel.ConvertTo(ult_estado);

            return(Ok(modelEstado));
        }
Ejemplo n.º 3
0
        public IHttpActionResult Postbt_os_status(Models.os_statusModel estado)
        {
            string       notificacion_desc, notificacion_texto;
            bt_os_status bt_os_status = Models.os_statusModel.ConvertToBD(estado);

            db.bt_os_status.Add(bt_os_status);
            db.SaveChanges();

            estado.tiempo_sk = bt_os_status.tiempo_sk.ToString("yyyy-MM-dd");
            estado.hh_mm_ss  = bt_os_status.hh_mm_ss;
            estado.timestamp = string.Concat(bt_os_status.tiempo_sk.ToString("yyyy-MM-dd"), " ", bt_os_status.hh_mm_ss);

            // Agrego notificacion en caso de que la orden se cierre
            if (estado.estado_sk == 3 || estado.estado_sk == 2)
            {
                // actualizo el estado de cierre de la OT
                Data.bt_solicitudes os = db.bt_solicitudes.Where(x => x.os_id == estado.os_id).FirstOrDefault();

                if (estado.estado_sk == 3)
                {
                    os.fh_cierre = DateTime.Today;
                    db.SaveChanges();

                    notificacion_desc  = string.Concat("Solicitud ", estado.os_id.ToString(), " finalizada");
                    notificacion_texto = string.Concat("La solicitud ", estado.os_id.ToString(), " ha sido resuelta, ante cualquier consulta no dude en informarnos");
                }
                else
                {
                    // EN CURSO

                    notificacion_desc  = string.Concat("Solicitud ", estado.os_id.ToString(), " en curso");
                    notificacion_texto = "";// string.Concat("El reclamo ", estado.ot_id.ToString(), " esta en curso");
                }


                // Doy de alta la notificacion en la LK
                Data.lk_notificacion noti = new Data.lk_notificacion();
                noti.notificacion_desc  = notificacion_desc;
                noti.notificacion_texto = notificacion_texto;
                noti.notificacion_tipo  = "OT y OS";
                db.lk_notificacion.Add(noti);
                db.SaveChanges();

                // Busco los usuarios del cliente de la OT
                List <usuario> usuarios = _clienteService.findUsersByClient(os.cliente_sk);

                // Armo una notificacion por cada Usuario
                foreach (usuario u in usuarios)
                {
                    Data.bt_notificaciones bt_not = new Data.bt_notificaciones();
                    bt_not.usuario_sk      = u.usuario_sk;
                    bt_not.cliente_sk      = u.cliente_sk;
                    bt_not.notificacion_sk = noti.notificacion_sk;
                    bt_not.tiempo_sk       = DateTime.Today;
                    //bt_not.ot_id = estado.os_id;
                    bt_not.ot_id = 0;//PORQUE ES UNA SOLICITUD

                    db.bt_notificaciones.Add(bt_not);
                }
                db.SaveChanges();

                // Mando Notificacion Push
                Service.FirebaseService.notificacion_mensaje m = new Service.FirebaseService.notificacion_mensaje();
                m.cliente_sk = os.cliente_sk;
                m.usuario_sk = 0;
                m.titulo     = noti.notificacion_desc;
                fb.EnviarAFCM(m);
            }


            return(CreatedAtRoute("DefaultApi", new { id = estado.os_id }, estado));
        }