Exemple #1
0
        //
        public JsonResult pmp(int idmaquina, string horarios) // Prorgamacao Máquina Horário Post
        {
            string sRet = string.Empty;

            //
            try
            {
                string[] horarios_array = horarios.Split('*');
                //
                for (int i = 0; i < horarios_array.Length; i++)
                {
                    string[] linha = horarios_array[i].Split('$');
                    string   dia   = linha[0];
                    //
                    MaquinaHorario mmh = db.MaquinaHorario.Where(a => a.Id_Maquina == idmaquina && a.Descricao == dia).FirstOrDefault();
                    //
                    if (mmh != null)
                    {
                        int hora_inicio   = Convert.ToInt32(linha[1].Split(':')[0]);
                        int minuto_inicio = Convert.ToInt32(linha[1].Split(':')[1]);
                        int hora_fim      = Convert.ToInt32(linha[2].Split(':')[0]);
                        int minuto_fim    = Convert.ToInt32(linha[2].Split(':')[1]);
                        //
                        DateTime dt = DateTime.Now;
                        mmh.DataHoraInicio = new DateTime(2019, 1, 1, hora_inicio, minuto_inicio, 0);
                        mmh.DataHoraFim    = new DateTime(2019, 1, 1, hora_fim, minuto_fim, 0);
                        //
                        db.Entry(mmh).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
            catch (Exception exc)
            {
                sRet = exc.Message;
            }
            //
            return(Json(new { data = sRet }, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        //
        public JsonResult GetMaquinaHorario(string mac, int id)
        {
            string sRet       = string.Empty;
            string dia_semana = string.Empty;

            //
            switch (DateTime.Now.DayOfWeek)
            {
            case DayOfWeek.Monday:
                dia_semana = "Segunda";
                break;

            case DayOfWeek.Tuesday:
                dia_semana = "Terça";
                break;

            case DayOfWeek.Wednesday:
                dia_semana = "Quarta";
                break;

            case DayOfWeek.Thursday:
                dia_semana = "Quinta";
                break;

            case DayOfWeek.Friday:
                dia_semana = "Sexta";
                break;

            case DayOfWeek.Saturday:
                dia_semana = "Sábado";
                break;

            case DayOfWeek.Sunday:
                dia_semana = "Domingo";
                break;
            }
            //
            MaquinaHorario mmh = db.MaquinaHorario.Where(a => a.Id_Maquina == id && a.Descricao.ToLower() == dia_semana).FirstOrDefault();

            //Medidor mm = db.Medidor.Where( a => a.Id == )
            //
            if (mmh != null)
            {
                DateTime timeUtc  = DateTime.UtcNow;
                var      brasilia = TimeZoneInfo.FindSystemTimeZoneById("Central Brazilian Standard Time");
                //
                int ano  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Year;
                int mes  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Month;
                int dia  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Day;
                int hora = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Hour;
                int min  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Minute;
                int seg  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Second;
                //
                DateTime now = new DateTime(ano, mes, dia, hora, min, seg).AddHours(1);

                if (now.Hour > mmh.DataHoraInicio.Value.Hour)
                {
                    if (now.Hour < mmh.DataHoraFim.Value.Hour)
                    {
                        sRet = "1";
                    }
                    else
                    {
                        int hora2 = mmh.DataHoraFim.Value.Hour;
                        int minu  = mmh.DataHoraFim.Value.Minute;
                        int segun = mmh.DataHoraFim.Value.Second;
                        //
                        DateTime data_hoje_hora_banco = new DateTime(now.Year, now.Month, now.Day, hora2, minu, segun);
                        if (now <= data_hoje_hora_banco)
                        {
                            sRet = "1";
                        }
                        else
                        {
                            sRet = "0";
                        }
                    }
                }
                else if (now.Hour == mmh.DataHoraInicio.Value.Hour)
                {
                    sRet = "1";
                }
                else if (now.Hour < mmh.DataHoraInicio.Value.Hour)
                {
                    sRet = "0";
                }
            }
            else
            {
                sRet = "O id da máquna não foi encontrado: " + id;
            }
            //
            return(Json(
                       new
            {
                data = sRet,
                id
            },
                       JsonRequestBehavior.AllowGet
                       ));
        }
Exemple #3
0
        //
        public JsonResult ppm(int b) // pega programação máquina
        {
            string erro = string.Empty;
            List <MaquinaHorario>  list          = db.MaquinaHorario.Where(a => a.Id_Maquina == b).OrderBy(a => a.Descricao).ToList();
            List <maquina_horaios> lista_retonro = new List <maquina_horaios>();

            //
            if (list != null && list.Count > 0)
            {
                DateTime timeUtc  = DateTime.UtcNow;
                var      brasilia = TimeZoneInfo.FindSystemTimeZoneById("Central Brazilian Standard Time");
                //
                int ano  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Year;
                int mes  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Month;
                int dia  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Day;
                int hora = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Hour;
                int min  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Minute;
                int seg  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Second;
                //
                DateTime dt_now = new DateTime(2019, 1, 1, hora, min, seg).AddHours(1);
                DateTime dt_fim = new DateTime(2019, 1, 1, hora, min, seg).AddHours(1);
                //
                foreach (MaquinaHorario item in list)
                {
                    maquina_horaios novo = new maquina_horaios();
                    //
                    novo.dia = item.Descricao;
                    //
                    novo.horaon  = item.DataHoraInicio.Value.ToString("HH:mm");
                    novo.horafim = item.DataHoraFim.Value.ToString("HH:mm");
                    //
                    string sRet       = string.Empty;
                    string dia_semana = string.Empty;
                    //
                    switch (DateTime.Now.DayOfWeek)
                    {
                    case DayOfWeek.Monday:
                        dia_semana = "Segunda";
                        break;

                    case DayOfWeek.Tuesday:
                        dia_semana = "Terça";
                        break;

                    case DayOfWeek.Wednesday:
                        dia_semana = "Quarta";
                        break;

                    case DayOfWeek.Thursday:
                        dia_semana = "Quinta";
                        break;

                    case DayOfWeek.Friday:
                        dia_semana = "Sexta";
                        break;

                    case DayOfWeek.Saturday:
                        dia_semana = "Sábado";
                        break;

                    case DayOfWeek.Sunday:
                        dia_semana = "Domingo";
                        break;
                    }
                    //
                    if (item.Descricao.Equals(dia_semana))
                    {
                        DateTime dt_fim_banco = item.DataHoraFim.Value;
                        if (item.DataHoraInicio.Value.Hour > 20 && item.DataHoraFim.Value.Hour < 6) // debugar esse trecho durante a noite no intervalo de 23 e 00:30
                        {
                            if (dt_now.Ticks >= item.DataHoraInicio.Value.Ticks)                    // && dt_fim.Ticks <= dt_fim_banco.Ticks)
                            {
                                if (dt_now.Ticks <= item.DataHoraFim.Value.AddDays(1).Ticks)
                                {
                                    novo.ativo = true;
                                }
                                else
                                {
                                    novo.ativo = false;
                                }
                            }
                            else
                            {
                                novo.ativo = false;
                            }
                        }
                        else
                        {
                            if ((dt_now.Ticks >= item.DataHoraInicio.Value.Ticks && dt_fim.Ticks <= item.DataHoraFim.Value.Ticks))
                            {
                                novo.ativo = true;
                            }
                            else
                            {
                                novo.ativo = false;
                            }
                        }
                    }
                    else
                    {
                        DateTime dt_fim_banco = item.DataHoraFim.Value;
                        if (item.DataHoraInicio.Value.Hour > 20 && item.DataHoraFim.Value.Hour < 6)
                        {
                            dt_fim_banco = new DateTime(item.DataHoraFim.Value.Year,
                                                        item.DataHoraFim.Value.Month,
                                                        item.DataHoraFim.Value.Day + 1,
                                                        item.DataHoraFim.Value.Hour,
                                                        item.DataHoraFim.Value.Minute,
                                                        item.DataHoraFim.Value.Second);
                            //
                            if (item.Descricao != dia_semana)
                            {
                                dt_fim = new DateTime(2019, 1, 2, hora, min, seg).AddHours(1);
                            }
                            else
                            {
                                dt_fim = new DateTime(2019, 1, 1, hora, min, seg).AddHours(1);
                            }
                        }
                        //
                        //if ((dt_now.Ticks >= item.DataHoraInicio.Value.Ticks && dt_fim.Ticks <= dt_fim_banco.Ticks))
                        //{
                        //    novo.ativo = true;
                        //}
                        else
                        {
                            if (ValidaTrocaDia(item.Descricao, dia_semana))
                            {
                                if (item.DataHoraInicio.Value.Hour > 20 && item.DataHoraFim.Value.Hour < 6) // intervalo está entre dois dias
                                {
                                    if (dt_now.Hour <= 6)                                                   // valida se é depois da meia noite
                                    {
                                        dt_now = new DateTime(dt_now.Year, dt_now.Month, item.DataHoraFim.Value.Day, dt_now.Hour, dt_now.Minute, dt_now.Second);
                                        if (dt_now.Ticks <= item.DataHoraFim.Value.Ticks)
                                        {
                                            novo.ativo = true;
                                        }
                                        else
                                        {
                                            novo.ativo = false;
                                        }
                                    }
                                    else
                                    {
                                        if (dt_now.Ticks >= item.DataHoraInicio.Value.Ticks)
                                        {
                                            novo.ativo = true;
                                        }
                                        else
                                        {
                                            novo.ativo = false;
                                        }
                                    }
                                }
                                else
                                {
                                    novo.ativo = false;
                                }
                            }
                            else
                            {
                                novo.ativo = false;
                            }
                        }
                    }
                    //
                    lista_retonro.Add(novo);
                }
                ViewBag.ListaMaquinas = lista_retonro;
            }
            else
            {
                Maquina maquina = db.Maquina.Where(a => a.ID == b).FirstOrDefault();
                //
                if (maquina != null)
                {
                    DateTime timeUtc  = DateTime.UtcNow;
                    var      brasilia = TimeZoneInfo.FindSystemTimeZoneById("Central Brazilian Standard Time");
                    //
                    int ano  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Year;
                    int mes  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Month;
                    int dia  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Day;
                    int hora = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Hour;
                    int min  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Minute;
                    int seg  = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, brasilia).Second;
                    //
                    DateTime now = new DateTime(ano, mes, dia, hora, min, seg).AddHours(1);
                    //
                    MaquinaHorario mmh = new MaquinaHorario();
                    //
                    string[] dias = new[] { "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" };
                    //
                    DateTime dt       = DateTime.Now;
                    DateTime dt_hrini = new DateTime(2019, 1, 1, 13, 30, 0);
                    DateTime dt_hrfim = new DateTime(2019, 1, 1, 14, 30, 0);
                    for (int i = 0; i < dias.Length; i++)
                    {
                        try
                        {
                            mmh.Id_Maquina     = b;
                            mmh.Descricao      = dias[i];
                            mmh.DataHoraInicio = dt_hrini;
                            mmh.DataHoraFim    = dt_hrfim;
                            //
                            db.MaquinaHorario.Add(mmh);
                            db.SaveChanges();
                            //
                            maquina_horaios novo = new maquina_horaios();
                            novo.dia     = dias[i];
                            novo.horaon  = dt_hrini.ToString("HH:mm");
                            novo.horafim = dt_hrfim.ToString("HH:mm");
                            //
                            lista_retonro.Add(novo);
                        }
                        catch (Exception exc)
                        {
                            //sRet = exc.Message;
                        }
                    }
                }
                else
                {
                    erro = "1";
                }
            }
            //
            lista_retonro = AjustaDias(lista_retonro);
            //
            return(Json(new { data = lista_retonro, erro, results = 0, success = true }, JsonRequestBehavior.AllowGet));
        }