public void CambiarStatus(int status_actual, int status, int id_pedido)
        {
            C_pedidos c_pedidos = db.C_pedidos.Find(id_pedido);

            c_pedidos.id_tracking_status = status;
            if (status == 2)
            {
                RegistroMovimiento(id_pedido);
            }
            if (status == 5)
            {
                var repartidor_pedido = from rp in db.C_pedidos_empleados
                                        where rp.id_pedido == c_pedidos.id_pedido
                                        select rp;
                if (repartidor_pedido.Count() > 0)
                {
                    foreach (var item in repartidor_pedido)
                    {
                        C_pedidos_empleados c_pedidos_empleados = new C_pedidos_empleados();
                        c_pedidos_empleados.id_empleado    = item.id_empleado;
                        c_pedidos_empleados.id_pedido      = id_pedido;
                        c_pedidos_empleados.status         = true;
                        c_pedidos_empleados.entrada_salida = true;
                        c_pedidos_empleados.fecha          = DateTime.Now;
                        db.C_pedidos_empleados.Add(c_pedidos_empleados);
                    }
                }
            }
            db.SaveChanges();
            DateTime date1         = DateTime.Now;
            var      ultimo_cambio = db.C_tracking_status_log.Where(x => x.id_tracking_status2 == status_actual && x.id_pedido == id_pedido);
            C_tracking_status_log c_tracking_status_log = new C_tracking_status_log();

            c_tracking_status_log.fecha               = DateTime.Now;
            c_tracking_status_log.id_pedido           = id_pedido;
            c_tracking_status_log.id_tracking_status1 = status_actual;
            c_tracking_status_log.id_tracking_status2 = status;
            c_tracking_status_log.id_usuario          = (int)Session["LoggedId"];
            if (ultimo_cambio.Count() > 0)
            {
                foreach (var item in ultimo_cambio)
                {
                    DateTime date2         = Convert.ToDateTime(item.fecha);
                    var      tiempo_pedido = date1.Subtract(date2);
                    c_tracking_status_log.seg_recorridos = tiempo_pedido.Seconds;
                }
            }
            else
            {
                DateTime date2         = Convert.ToDateTime(c_pedidos.fecha_pedido);
                var      tiempo_pedido = date1.Subtract(date2);
                c_tracking_status_log.seg_recorridos = tiempo_pedido.Seconds;
            }
            db.C_tracking_status_log.Add(c_tracking_status_log);
            db.SaveChanges();
        }
Esempio n. 2
0
        public void AsignarRepartidor(int id_empleados, int id_pedido)
        {
            C_pedidos_empleados c_pedidos_empleados = new C_pedidos_empleados();

            c_pedidos_empleados.id_empleado     = id_empleados;
            c_pedidos_empleados.id_pedido       = id_pedido;
            c_pedidos_empleados.status          = true;
            c_pedidos_empleados.entrada_salida  = false;
            c_pedidos_empleados.fecha           = DateTime.Now;
            db.Entry(c_pedidos_empleados).State = EntityState.Added;
            db.SaveChanges();
        }