private void LiberarAcesso()
        {
            ConfiguracaoDAO configDAO = new ConfiguracaoDAO();

            if (this.UsarSenhaPadrao)
            {
                if (txtSenha.Text == Convert.ToString(DateTime.Now.Day +
                                                      DateTime.Now.Month +
                                                      DateTime.Now.Year))
                {
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("Senha Inválida!", this.Name, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtSenha.Focus();
                }
            }
            else
            {
                if (configDAO.VerificaSenha(txtSenha.Text))
                {
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("Senha Inválida!", this.Name, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtSenha.Text = "";
                    txtSenha.Focus();
                }
            }
        }
Exemple #2
0
 private void Principal_Load(object sender, EventArgs e)
 {
     CarregaInformacoes();
     int[] atualizacao = ConfiguracaoDAO.RetornaAtualizacao();
     config             = new Configuracao();
     config.atualizacao = atualizacao[0];
     config.intervalo   = atualizacao[1];
     if (config.atualizacao == 3)
     {
         string dataUltimaAtualizacao = ObterUltimaAtualizacao();
         if (dataUltimaAtualizacao != "")
         {
             DateTime data = new DateTime(int.Parse(dataUltimaAtualizacao.Substring(6, 4)),
                                          int.Parse(dataUltimaAtualizacao.Substring(3, 2)),
                                          int.Parse(dataUltimaAtualizacao.Substring(0, 2)),
                                          int.Parse(dataUltimaAtualizacao.Substring(11, 2)),
                                          int.Parse(dataUltimaAtualizacao.Substring(14, 2)), 0);
             if (DateTime.Now > data.AddMinutes(config.intervalo))
             {
                 AtualizaCiclo();
             }
         }
         intervaloAtualizacao = int.Parse(TimeSpan.FromMinutes(config.intervalo).TotalMilliseconds.ToString());
         VerificaAtualizacao  = new Thread(VerificaTempoTimerAtualizacao);
         VerificaAtualizacao.Start();
         timerAtualizacao.Start();
     }
 }
Exemple #3
0
        private void ConfiguracoesGerais_Load(object sender, EventArgs e)
        {
            Configuracao config = ConfiguracaoDAO.retornaConfiguracao();

            if (config != null)
            {
                for (int i = 0; i < cmbPorta.Items.Count; i++)
                {
                    if (cmbPorta.Items[i].ToString() == config.porta)
                    {
                        cmbPorta.SelectedIndex = i;
                    }
                }
                switch (config.atualizacao)
                {
                case 1:
                    Individual.Checked = true;
                    break;

                case 3:
                    Automatica.Checked = true;
                    intervalo.Text     = config.intervalo.ToString();
                    intervalo.Enabled  = true;
                    break;

                case 4:
                    Desativada.Checked = true;
                    break;
                }
            }
        }
Exemple #4
0
        static void Main(String[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            ConfiguracaoDAO configDAO = new ConfiguracaoDAO();
            BaseDeDadosDAO  bdDAO     = new BaseDeDadosDAO();

            bool _usaSenhaPadrao = false;

            bdDAO.AtualizarBaseDeDados();

            if (args.Length > 0)
            {
                _usaSenhaPadrao = (args[0] == "esqueciminhasenha");
            }

            if (configDAO.ExigirSenha())
            {
                LoginSenha window = new LoginSenha(_usaSenhaPadrao);
                window.ShowDialog();

                Application.Run(new Principal());
            }
            else
            {
                Application.Run(new Principal());
            }
        }
Exemple #5
0
        private void btnReceber_Click(object sender, EventArgs e)
        {
            lvSecagens.Items.Clear();
            var porta = ConfiguracaoDAO.retornaPorta();

            var listaRetorno = SecagensBO.ListarSecagens(Convert.ToInt32(cmbCRG.SelectedItem), porta);

            if (listaRetorno == null)
            {
                var erro = ErrorHandler.GetLastError;
                if (erro != null)
                {
                    MessageBox.Show(erro.ErrorMessage, "Erro (" + erro.Identifier + ")", MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    ErrorHandler.RemoveLastError();
                }
                else
                {
                    MessageBox.Show("Não foi possível listar as secagens! Tente novamente.", "Erro desconhecido",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                return;
            }
            UltimosDAO.SetarUltimoCRG(Convert.ToInt32(cmbCRG.SelectedItem));
            listaSecagens = listaRetorno;
            lvSecagens.Items.Clear();
            foreach (var item in listaRetorno)
            {
                var listItem = new ListViewItem(item.Id.ToString());
                listItem.SubItems.Add(item.NumeroLeituras.ToString());
                listItem.SubItems.Add(item.Data.ToString("dd/MM/yyyy HH:mm"));

                lvSecagens.Items.Add(listItem);
            }
        }
 public async Task <JsonResult> SaveConfiguracao([FromBody] Configuracao Configuracao, string token)
 {
     if (await Seguranca.validaTokenAsync(token))
     {
         if (Configuracao.idCliente != 0)
         {
             if (ConfiguracaoDAO.Save(Configuracao))
             {
                 return(Json("Configuracao salva com sucesso"));
             }
             else
             {
                 return(Json("Encontramos algum problema ao salvar a Configuracao. Entre em contato com o suporte"));
             }
         }
         else
         {
             return(Json("Conteudo de Configuracao esta incompleto"));
         }
     }
     else
     {
         return(Json("Você nao tem acesso a este plugin"));
     }
 }
        private void frmConfiguracoesRelatorio_Load(object sender, EventArgs e)
        {
            var config = ConfiguracaoDAO.PegarConfigRelatorio();

            udLinhasAntes.Value  = config.LeiturasAntes;
            udLinhasTrat.Value   = config.LeiturasTrat;
            udLinhasDepois.Value = config.LeiturasDepois;
        }
        private void CarregarNomeDaEmpresa()
        {
            ConfiguracaoDAO configDAO = new ConfiguracaoDAO();
            Configuracao    config    = configDAO.GetData();

            config = configDAO.GetData();

            lblBarra.Text = config.NomeDaEmpresa.Replace("&", "&&");
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            var lAntes  = Convert.ToInt32(udLinhasAntes.Value);
            var lTrat   = Convert.ToInt32(udLinhasTrat.Value);
            var lDepois = Convert.ToInt32(udLinhasDepois.Value);

            ConfiguracaoDAO.GravarConfigRelatorio(lAntes, lTrat, lDepois);
            Close();
        }
 public async Task <IEnumerable <Configuracao> > GetAllConfiguracao(int idCliente, string token)
 {
     if (await Seguranca.validaTokenAsync(token))
     {
         return(ConfiguracaoDAO.GetAll().Where(x => x.idCliente == idCliente).ToList());
     }
     else
     {
         return(new List <Configuracao>());
     }
 }
Exemple #11
0
        private void Ciclos_Load(object sender, EventArgs e)
        {
            int[]        atualizacao = ConfiguracaoDAO.RetornaAtualizacao();
            Configuracao config      = new Configuracao();

            config.atualizacao = atualizacao[0];
            if (config.atualizacao == 3 || config.atualizacao == 4)
            {
                Atualizar.Enabled = false;
            }
            CarregaCiclos();
        }
Exemple #12
0
        public void ligarCRG(int numEquipamento)
        {
            limpaTela();
            Ligar.Enabled = false;
            int ultEquip = ObterUltimoEquipamento();

            if (numEquipamento != ultEquip)
            {
                AtualizaUltimoEquipamento(numEquipamento);
            }
            string porta = ConfiguracaoDAO.retornaPorta();

            SrpComm.PortName = porta;
            var aux = numEquipamento + 63;

            infoPorta.Text = "Porta: " + porta;
            InfoCRG.Text   = "CRG Nº " + numEquipamento.ToString();
            try
            {
                SrpComm.Open();
            }
            catch (Exception exception)
            {
                MessageBox.Show("Erro ao abrir a COM.");
                toggleBotaoLigar(false);
                toggleBotoesNavegacao(false);
                para_looping_envios = true;
                Thread.Sleep(2000);
                Ligar.Text        = "Ligar";
                Ligar.Enabled     = true;
                CRGCursor.Enabled = false;
                InfoCRG.Text      = "CRG Nº -- (offline)";
                infoPorta.Text    = "Porta: -- (offline)";
                limpaTela();
                Configura_LEDs(0xFF);
                principal.RetomaAtualizacao();
                return;
            }
            para_looping_envios = false;
            threadLoopingEnvios = new Thread(loop_enviaExistentes);
            threadLoopingEnvios.Start();
            envios.Fila.Add(19);
            envios.Fila.Add(17);
            envios.Fila.Add(Convert.ToByte(aux));
            aguardando_conexao = true;
            conexao_sucesso    = false;
            Ligar.Text         = "Desligar";
            posinicial         = 128;
            ultimo_cursor      = 128;
            CRGCursor.Enabled  = true;
        }
Exemple #13
0
 public void RetomaAtualizacao()
 {
     int[] atualizacao = ConfiguracaoDAO.RetornaAtualizacao();
     config             = new Configuracao();
     config.atualizacao = atualizacao[0];
     config.intervalo   = atualizacao[1];
     if (config.atualizacao == 3)
     {
         timerAtualizacao.Reset();
         VerificaAtualizacao = new Thread(VerificaTempoTimerAtualizacao);
         VerificaAtualizacao.Start();
         timerAtualizacao.Start();
     }
 }
        public async Task <JsonResult> DeletarConfiguracao([FromBody] object Configuracao, string token)
        {
            dynamic objEn = Configuracao;
            string  a     = objEn.idConfiguracao.ToString();

            if (await Seguranca.validaTokenAsync(token))
            {
                Configuracao obj = ConfiguracaoDAO.GetAll().Where(x => x.ID == Convert.ToInt32(a)).FirstOrDefault();
                return(Json(new { msg = ConfiguracaoDAO.Remove(obj) }));
                //return Json(new { msg = false });
            }
            else
            {
                return(Json(new { msg = false }));
            }
        }
Exemple #15
0
        public async System.Threading.Tasks.Task <bool> EnviaSimplesEmailAsync(Email email, string remetente, string destinatario, int idCliente)
        {
            var paramentros = ConfiguracaoDAO.GetParametros(idCliente);

            var message = new MimeMessage();

            message.From.Add(new MailboxAddress("Contato", remetente));
            message.To.Add(new MailboxAddress(destinatario));
            message.Subject = email.Titulo;

            message.Body = new TextPart("plain")
            {
                Text = email.Conteudo
            };

            try
            {
                RestClient client = new RestClient();
                client.BaseUrl       = new Uri("https://api.mailgun.net/v3");
                client.Authenticator =
                    new HttpBasicAuthenticator("api",
                                               "34f01503b964fc6058eb634dbe2b0600-9525e19d-57d02faf");
                RestRequest request = new RestRequest();
                request.AddParameter("domain", "mundowebpix.com.br", ParameterType.UrlSegment);
                request.Resource = "{domain}/messages";
                request.AddParameter("from", "Site <*****@*****.**>");
                request.AddParameter("to", destinatario);
                request.AddParameter("subject", email.Titulo);
                request.AddParameter("text", email.Conteudo);
                request.Method = Method.POST;
                var response = await client.ExecuteTaskAsync(request);

                return(true);
            }
            catch (Exception e)
            {
                string fileName = @"D:\Web\Logs\logs.txt";
                using (StreamWriter sw = File.AppendText(fileName))
                {
                    sw.WriteLine("--------- Append Text Start ----------");
                    sw.WriteLine(e.Message);
                    sw.WriteLine("--------- Append Text End ----------");
                }
                return(false);
            }
        }
Exemple #16
0
        private void OpcoesImpressao_Load(object sender, EventArgs e)
        {
            List <string> empresas = ProdutoCicloDAO.retornaEmpresasdoCiclo(ciclo);

            foreach (var em in empresas)
            {
                if (!cmbEmpresas.Items.Contains(em))
                {
                    cmbEmpresas.Items.Add(em);
                }
            }
            var configRelatorio = ConfiguracaoDAO.PegarConfigRelatorio();

            txtLinhasAntes.Value      = configRelatorio.LeiturasAntes;
            txtLinhasTratamento.Value = configRelatorio.LeiturasTrat;
            txtLinhasDepois.Value     = configRelatorio.LeiturasDepois;
        }
Exemple #17
0
        private void ListaDePedidosRelatorio_Load(object sender, EventArgs e)
        {
            PedidoDAO       pedidoDAO = new PedidoDAO();
            ConfiguracaoDAO configDAO = new ConfiguracaoDAO();
            Pedido          pedido    = new Pedido();
            Configuracao    config    = new Configuracao();

            pedido = pedidoDAO.GetDataById(this.PedidoId);
            config = configDAO.GetData();

            var itens      = pedidoDAO.GetAllItensDoPedido(this.PedidoId).ToArray();
            var dataSource = new ReportDataSource("DataSetListaDePedidos", itens);

            this.ValorTotal = pedido.Valor;

            this.rptListaDePedidos.LocalReport.DataSources.Clear();
            this.rptListaDePedidos.LocalReport.DataSources.Add(dataSource);

            ReportParameterCollection reportParameters = new ReportParameterCollection();

            reportParameters.Add(new ReportParameter("ValorTotal", this.ValorTotal.ToString("c")));
            reportParameters.Add(new ReportParameter("NomeEmpresa", config.NomeDaEmpresa));
            reportParameters.Add(new ReportParameter("Cabecalho", config.CabecalhoRelatorio));
            reportParameters.Add(new ReportParameter("Telefone", config.TelefoneRelatorio));
            if (!config.LogoTipo.Equals(String.Empty))
            {
                reportParameters.Add(new ReportParameter("Imagem", new Uri(config.LogoTipo).AbsoluteUri));
            }
            this.rptListaDePedidos.LocalReport.EnableExternalImages = true;
            this.rptListaDePedidos.LocalReport.SetParameters(reportParameters);

            rptListaDePedidos.SetDisplayMode(DisplayMode.PrintLayout);
            rptListaDePedidos.ZoomMode    = ZoomMode.Percent;
            rptListaDePedidos.ZoomPercent = 100;

            System.Drawing.Printing.PageSettings pg = new System.Drawing.Printing.PageSettings();
            pg.Margins.Top    = 0;
            pg.Margins.Bottom = 0;
            pg.Margins.Left   = 25;
            pg.Margins.Right  = 25;
            rptListaDePedidos.SetPageSettings(pg);

            this.rptListaDePedidos.RefreshReport();
        }
Exemple #18
0
        public IActionResult CadastrarNovaSenha(string senha)
        {
            ConfiguracaoDAO dao = new ConfiguracaoDAO();

            bool valor = dao.AlterarSenha(senha, Convert.ToString(HttpContext.Session.GetString("idUsuario")));

            dao.Dispose();

            if (valor)
            {
                //variavel session com msg de erro
                return(RedirectToAction("Perfil"));
            }
            else
            {
                //variavel session com msg de erro
                return(RedirectToAction("Perfil"));
            }
        }
Exemple #19
0
        public IActionResult Perfil()
        {
            if (HttpContext.Session.GetString("usuarioLogado") == "logado" && HttpContext.Session.GetString("usuarioTipo") != "paciente")
            {
                ConfiguracaoDAO dao = new ConfiguracaoDAO();

                Usuario usuario = new Usuario();

                usuario = dao.BuscarUsuarioDados(Convert.ToString(HttpContext.Session.GetString("idUsuario")));

                dao.Dispose();

                ViewBag.ID = usuario.id_user;

                ViewBag.Nome = usuario.nome;

                ViewBag.Dt_Nasc = usuario.dt_nasc;

                ViewBag.Tipo = usuario.tipo;

                ViewBag.Layout = HttpContext.Session.GetString("usuarioLayout");

                return(View());
            }
            else
            {
                ViewBag.ID = HttpContext.Session.GetString("idUsuario");

                ViewBag.Nome = HttpContext.Session.GetString("nomeUsuario");

                ViewBag.Dt_Nasc = HttpContext.Session.GetString("usuarioData");

                ViewBag.Tipo = "Paciente";

                ViewBag.Layout = HttpContext.Session.GetString("usuarioLayout");

                return(View());
            }
        }
Exemple #20
0
        public IActionResult AlterarDados(string nome, string data)
        {
            if (HttpContext.Session.GetString("usuarioTipo") == "paciente")
            {
                PacienteDAO dao = new PacienteDAO();

                bool valor = dao.AlterarDadosPaciente(nome, data, HttpContext.Session.GetString("idUsuario"));

                dao.Dispose();

                return(RedirectToAction("Perfil"));
            }
            else
            {
                ConfiguracaoDAO dao = new ConfiguracaoDAO();

                bool valor = dao.AlterarDadosUsuario(nome, data, HttpContext.Session.GetString("idUsuario"));

                dao.Dispose();

                return(RedirectToAction("Perfil"));
            }
        }
Exemple #21
0
 private void tabCiclos_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (tabCiclos.SelectedIndex >= 0)
     {
         if (tabCiclos.TabPages[tabCiclos.SelectedIndex].Name == "CiclosFinalizados")
         {
             Atualizar.Text = "Alterar";
             Finalizar.Text = "Filtrar";
         }
         else if (tabCiclos.TabPages[tabCiclos.SelectedIndex].Name == "CiclosAndamento")
         {
             Atualizar.Text = "Atualizar";
             Finalizar.Text = "Enviar Finalizadas";
             int[]        atualizacao = ConfiguracaoDAO.RetornaAtualizacao();
             Configuracao config      = new Configuracao();
             config.atualizacao = atualizacao[0];
             if (config.atualizacao == 3 || config.atualizacao == 4)
             {
                 Atualizar.Enabled = false;
             }
         }
     }
 }
        private void CadastroConfiguracao_Load(object sender, EventArgs e)
        {
            Configuracao    config    = new Configuracao();
            ConfiguracaoDAO configDAO = new ConfiguracaoDAO();

            config = configDAO.GetData();

            chkExigeSenha.Checked      = config.ExigeSenha;
            txtSenha.Text              = config.Senha;
            txtNomeDaEmpresa.Text      = config.NomeDaEmpresa;
            txtRelatorioTelefone.Text  = config.TelefoneRelatorio;
            txtRelatorioCabecalho.Text = config.CabecalhoRelatorio;
            txtCaminhoLogo.Text        = config.LogoTipo;

            if (chkExigeSenha.Checked)
            {
                txtSenha.Enabled = true;
            }
            else
            {
                txtSenha.Text    = "";
                txtSenha.Enabled = false;
            }
        }
        private void SalvarConfiguracao()
        {
            if (MessageBox.Show("Deseja salvar?", CadastroConfiguracao.ActiveForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.Yes))
            {
                Configuracao    config    = new Configuracao();
                ConfiguracaoDAO configDAO = new ConfiguracaoDAO();

                config.ExigeSenha         = chkExigeSenha.Checked;
                config.Senha              = txtSenha.Text;
                config.NomeDaEmpresa      = txtNomeDaEmpresa.Text;
                config.TelefoneRelatorio  = txtRelatorioTelefone.Text;
                config.CabecalhoRelatorio = txtRelatorioCabecalho.Text;
                config.LogoTipo           = txtCaminhoLogo.Text;

                if (!Validacao())
                {
                    return;
                }

                try
                {
                    if (configDAO.Count() == 0)
                    {
                        configDAO.Save(config);
                    }
                    else
                    {
                        configDAO.Update(config);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, CadastroConfiguracao.ActiveForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
Exemple #24
0
        public bool AtualizaCiclo()
        {
            List <string> mensagens = new List <string>();
            //Lista ciclos em Andamento
            List <VO.Ciclos> ciclos = CicloDAO.listaCiclosPorSituacaoAll(0);

            t = new Thread(new ThreadStart(carregarAguarde));
            //this.Enabled = false;

            try
            {
                for (int i = 0; i < ciclos.Count; i++)
                {
                    VO.Ciclos           cic           = ciclos[i];
                    List <ProdutoCiclo> listaProdutos = ProdutoCicloDAO.listaProdutosCiclo(cic);
                    VO.Ciclos           ciclo         = new VO.Ciclos();

                    string porta    = ConfiguracaoDAO.retornaPorta();
                    bool   continua = false;
                    if (!t.IsAlive)
                    {
                        t.Start();
                    }

                    var srpComm = new SerialPort(porta, 19200, Parity.None, 8, StopBits.One);
                    srpComm.DtrEnable       = true;
                    srpComm.RtsEnable       = false;
                    srpComm.ReadBufferSize  = 100000;
                    srpComm.WriteBufferSize = 100000;

                    Conexao.srpComm = srpComm;
                    Conexao.srpComm.Open();
                    Thread.Sleep(100);

                    int numBytes = 0;
                    int aux      = cic.crg + 63;
                    Conexao.srpComm.Write(((char)19).ToString());
                    Thread.Sleep(100);
                    Conexao.srpComm.Write(((char)17).ToString());
                    Thread.Sleep(100);
                    Conexao.srpComm.Write(((char)aux).ToString());
                    Thread.Sleep(100);

                    if (Conexao.srpComm.BytesToRead != 0)
                    {
                        numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                        Conexao.buffer = new byte[numBytes];
                        Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                    }
                    continua = true;
                    if (continua)
                    {
                        // int cont = 0;
                        //Verifica se é aparelho novo ou antigo
                        switch (Conexao.buffer[0])
                        {
                        //Versão nova até 150ºC
                        case 167:
                            string binario = decimalParaBinario(cic.nTrat);
                            numTrat1 = binarioParaDecimal(binario.Substring(0, 8));
                            numTrat2 = binarioParaDecimal(binario.Substring(8, 8));

                            Conexao.srpComm.Write(((char)5).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat1).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat2).ToString());
                            Thread.Sleep(8000);

                            int contador = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                contador++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int checksum = 0;
                            //Verifica se o ciclo ainda está na memória do equipamento
                            if (Conexao.buffer.Length > 2)
                            {
                                for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                                {
                                    checksum ^= Conexao.buffer[j];
                                }
                                if (checksum == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    cic.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) +
                                        "/" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) +
                                        " " +
                                        string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) +
                                        ":" +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16));
                                    cic.dataInicio = Convert.ToDateTime(dataInicio);
                                    cic.dataColeta = DateTime.Now;

                                    bool retorno = false;


                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id,
                                                                                               cic.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id, cic.crg);
                                    retorno = ConexaoBO.EnviaBancodeDados(cic, Conexao.buffer, true,
                                                                          listaProdutos, indiceLeitCiclo, indiceLeitTrat, true);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Erro no checksum.", "Erro", MessageBoxButtons.OK,
                                                    MessageBoxIcon.Information);
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " nao está mais na memória do equipamento.");
                            }
                            break;

                        //Versão nova até 102ºC
                        case 166:
                            string binario1 = decimalParaBinario(cic.nTrat);
                            numTrat1 = binarioParaDecimal(binario1.Substring(0, 8));
                            numTrat2 = binarioParaDecimal(binario1.Substring(8, 8));

                            Conexao.srpComm.Write(((char)5).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat1).ToString());
                            Thread.Sleep(100);
                            Conexao.srpComm.Write(((char)numTrat2).ToString());
                            Thread.Sleep(8000);

                            int contador1 = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                contador1++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int checksum1 = 0;
                            //Verifica se o ciclo ainda está na memória do equipamento
                            if (Conexao.buffer.Length > 2)
                            {
                                for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                                {
                                    checksum1 ^= Conexao.buffer[j];
                                }
                                if (checksum1 == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    ciclo.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                     ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    ciclo.nTrat = (Conexao.buffer[0] * 256) + Conexao.buffer[1];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) +
                                        "/" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[9] / 16), (Conexao.buffer[9] % 16)) +
                                        " " +
                                        string.Concat((Conexao.buffer[5] / 16), (Conexao.buffer[5] % 16)) +
                                        ":" +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16));
                                    ciclo.dataInicio = Convert.ToDateTime(dataInicio);
                                    ciclo.dataColeta = DateTime.Now;

                                    bool retorno = false;


                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(ciclo.id,
                                                                                               ciclo.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(ciclo.id, ciclo.crg);
                                    retorno = ConexaoBO.EnviaBancodeDados(ciclo, Conexao.buffer, true,
                                                                          listaProdutos, indiceLeitCiclo, indiceLeitTrat, false);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat +
                                                  " do aparelho nº " + cic.crg + ". Erro de Checksum.");
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " nao está mais na memória do equipamento.");
                            }
                            break;

                        //Versão antiga até 102ºC apenas
                        case 165:
                            Conexao.srpComm.Write(((char)6).ToString());
                            Thread.Sleep(8000);

                            int cont = 0;
                            do
                            {
                                if (Conexao.srpComm.BytesToRead != 0)
                                {
                                    numBytes       = int.Parse(Conexao.srpComm.BytesToRead.ToString());
                                    Conexao.buffer = new byte[numBytes];
                                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                                }
                                cont++;
                            } while (Conexao.srpComm.BytesToRead != 0);

                            int chk = 0;
                            for (int j = 0; j < Conexao.buffer.Length - 2; j++)
                            {
                                chk ^= Conexao.buffer[j];
                            }

                            if (((Conexao.buffer[5] * 256) + Conexao.buffer[2]) == cic.nTrat)
                            {
                                if (chk == Conexao.buffer[Conexao.buffer.Length - 2])
                                {
                                    int aux2 = Conexao.buffer.Length - 10;
                                    cic.numSerie = ((char)Conexao.buffer[aux2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 1]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 2]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 3]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 4]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 5]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 6]).ToString() +
                                                   ((char)Conexao.buffer[aux2 + 7]).ToString();
                                    cic.nTrat = (Conexao.buffer[5] * 256) + Conexao.buffer[2];
                                    string dataInicio =
                                        string.Concat((Conexao.buffer[6] / 16), (Conexao.buffer[6] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[7] / 16), (Conexao.buffer[7] % 16)) + "/20" +
                                        string.Concat((Conexao.buffer[8] / 16), (Conexao.buffer[8] % 16)) + " " +
                                        string.Concat((Conexao.buffer[4] / 16), (Conexao.buffer[4] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[3] / 16), (Conexao.buffer[3] % 16));
                                    cic.dataInicio = Convert.ToDateTime(dataInicio);
                                    cic.dataColeta = DateTime.Now;

                                    bool retorno = false;

                                    int indiceLeitCiclo = LeiturasCicloDAO.retornaQtdeLeituras(cic.id,
                                                                                               cic.crg);
                                    int indiceLeitTrat = LeiturasTratDAO.retornaQtdeLeituras(cic.id,
                                                                                             cic.crg);
                                    retorno = ConexaoBO.EnviaBancodeDadosAntigo(cic, Conexao.buffer, true,
                                                                                listaProdutos, indiceLeitCiclo, indiceLeitTrat);
                                    if (retorno)
                                    {
                                        AtualizaUltimo(cic.operador, cic.responsavel);
                                        mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                                      " foi atualizado com sucesso.");
                                    }
                                }
                                else
                                {
                                    mensagens.Add("Não foi possível atualizar o ciclo nº " + cic.nTrat +
                                                  " do aparelho nº " + cic.crg + ". Erro de Checksum.");
                                }
                            }
                            else
                            {
                                mensagens.Add("O ciclo nº " + cic.nTrat + " do aparelho nº " + cic.crg +
                                              " não está mais no histórico.");
                            }


                            break;
                        }
                    }
                    Conexao.srpComm.Close();
                    Thread.Sleep(100);
                }
                t.Abort();

                if (mensagens.Count > 0)
                {
                    StatusAtualizacao frm = new StatusAtualizacao(mensagens);
                    frm.ShowDialog(this);
                }
                return(true);
            }
            catch (Exception error)
            {
                VO.LogErro logErro = new VO.LogErro();
                logErro.crg          = 0;
                logErro.descricao    = "Erro ao tentar receber o ciclo";
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                logErro.data         = DateTime.Now;
                LogErroDAO.inserirLogErro(logErro, logErro.crg);
                t.Abort();
                return(false);
            }
        }
Exemple #25
0
        private void Receber_Click(object sender, EventArgs e)
        {
            dtgHistorico.Rows.Clear();
            int    numEquipamento = cmbCRG.SelectedIndex + 1;
            string porta          = ConfiguracaoDAO.retornaPorta();
            bool   continua       = false;
            byte   numBytes       = 0;

            try
            {
                t = new Thread(new ThreadStart(carregarAguarde));
                t.Start();
                var srpComm = new SerialPort(porta, 19200, Parity.None, 8, StopBits.One);
                srpComm.DtrEnable       = true;
                srpComm.RtsEnable       = false;
                srpComm.ReadBufferSize  = 50000;
                srpComm.WriteBufferSize = 50000;

                Conexao.srpComm = srpComm;

                if (Conexao.srpComm.IsOpen == false)
                {
                    Conexao.srpComm.Open();
                    Thread.Sleep(100);
                }

                int aux = numEquipamento + 63;
                Conexao.srpComm.Write(((char)19).ToString());
                Thread.Sleep(100);
                Conexao.srpComm.Write(((char)17).ToString());
                Thread.Sleep(100);
                Conexao.srpComm.Write(((char)aux).ToString());
                Thread.Sleep(100);

                if (Conexao.srpComm.BytesToRead != 0)
                {
                    numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                    Conexao.buffer = new byte[numBytes];
                    Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                }
                continua = true;

                if (continua)
                {
                    int contador = 0;

                    switch (Conexao.buffer[0])
                    {
                    case 167:
                        Conexao.srpComm.Write(((char)15).ToString());
                        Thread.Sleep(500);
                        do
                        {
                            if (Conexao.srpComm.BytesToRead != 0)
                            {
                                numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                                Conexao.buffer = new byte[numBytes];
                                Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                            }
                        } while (contador < 3 && Conexao.srpComm.BytesToRead != 0);

                        int checksum = 0;
                        for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                        {
                            checksum ^= Conexao.buffer[i];
                        }

                        if (checksum == Conexao.buffer[Conexao.buffer.Length - 2])
                        {
                            for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                            {
                                VO.Ciclos ciclo = new VO.Ciclos();
                                ciclo.nTrat      = (Conexao.buffer[i] * 256) + Conexao.buffer[i + 1];
                                ciclo.nl         = (Conexao.buffer[i + 2] * 256) + Conexao.buffer[i + 3];
                                ciclo.dataInicio =
                                    Convert.ToDateTime(
                                        string.Concat((Conexao.buffer[i + 7] / 16), (Conexao.buffer[i + 7] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[i + 8] / 16), (Conexao.buffer[i + 8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[i + 9] / 16), (Conexao.buffer[i + 9] % 16)) + " " +
                                        string.Concat((Conexao.buffer[i + 5] / 16), (Conexao.buffer[i + 5] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[i + 4] / 16), (Conexao.buffer[i + 4] % 16)));
                                ciclo.crg = numEquipamento;
                                bool noBanco = CicloDAO.testanoBanco(ciclo);
                                if (!noBanco)
                                {
                                    dtgHistorico.Rows.Add(ciclo.nTrat, ciclo.nl,
                                                          ciclo.dataInicio.ToString("dd/MM/yyyy HH:mm"));
                                }
                                i = i + 9;
                            }
                            t.Abort();
                            Thread.Sleep(100);
                            if (dtgHistorico.Rows.Count == 0)
                            {
                                MessageBox.Show("Não há nenhum histórico novo");
                            }
                            Conexao.srpComm.Close();
                        }
                        else
                        {
                            MessageBox.Show("Erro de checksum.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Conexao.srpComm.Close();
                        }

                        break;

                    case 166:
                        Conexao.srpComm.Write(((char)15).ToString());
                        Thread.Sleep(500);
                        do
                        {
                            if (Conexao.srpComm.BytesToRead != 0)
                            {
                                numBytes       = byte.Parse(Conexao.srpComm.BytesToRead.ToString());
                                Conexao.buffer = new byte[numBytes];
                                Conexao.srpComm.Read(Conexao.buffer, 0, numBytes);
                            }
                        } while (contador < 3 && Conexao.srpComm.BytesToRead != 0);

                        int checksum1 = 0;
                        for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                        {
                            checksum1 ^= Conexao.buffer[i];
                        }

                        if (checksum1 == Conexao.buffer[Conexao.buffer.Length - 2])
                        {
                            for (int i = 0; i < Conexao.buffer.Length - 2; i++)
                            {
                                VO.Ciclos ciclo = new VO.Ciclos();
                                ciclo.nTrat      = (Conexao.buffer[i] * 256) + Conexao.buffer[i + 1];
                                ciclo.nl         = (Conexao.buffer[i + 2] * 256) + Conexao.buffer[i + 3];
                                ciclo.dataInicio =
                                    Convert.ToDateTime(
                                        string.Concat((Conexao.buffer[i + 7] / 16), (Conexao.buffer[i + 7] % 16)) + "/" +
                                        string.Concat((Conexao.buffer[i + 8] / 16), (Conexao.buffer[i + 8] % 16)) +
                                        "/20" +
                                        string.Concat((Conexao.buffer[i + 9] / 16), (Conexao.buffer[i + 9] % 16)) + " " +
                                        string.Concat((Conexao.buffer[i + 5] / 16), (Conexao.buffer[i + 5] % 16)) + ":" +
                                        string.Concat((Conexao.buffer[i + 4] / 16), (Conexao.buffer[i + 4] % 16)));
                                ciclo.crg = numEquipamento;
                                bool noBanco = CicloDAO.testanoBanco(ciclo);
                                if (!noBanco)
                                {
                                    dtgHistorico.Rows.Add(ciclo.nTrat, ciclo.nl,
                                                          ciclo.dataInicio.ToString("dd/MM/yyyy HH:mm"));
                                }
                                i = i + 9;
                            }
                            t.Abort();
                            Thread.Sleep(100);
                            if (dtgHistorico.Rows.Count == 0)
                            {
                                MessageBox.Show("Não há nenhum histórico novo", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            Conexao.srpComm.Close();
                        }
                        else
                        {
                            MessageBox.Show("Erro de checksum.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Conexao.srpComm.Close();
                        }
                        break;

                    case 165:
                        t.Abort();
                        Thread.Sleep(100);
                        if (dtgHistorico.Rows.Count > 0)
                        {
                            dtgHistorico.Rows.Clear();
                        }
                        MessageBox.Show("Essa função não está disponivel para esse equipamento.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Conexao.srpComm.Close();
                        break;
                    }
                    inserir.Enabled = true;
                }
            }
            catch (Exception error)
            {
                if (t.IsAlive)
                {
                    t.Abort();
                    Thread.Sleep(100);
                }
                VO.LogErro logErro = new VO.LogErro();
                logErro.crg          = numEquipamento;
                logErro.data         = DateTime.Now;
                logErro.descricao    = "Erro ao decodificar os dados do histórico, aparelho nº " + numEquipamento;
                logErro.maisDetalhes = error.Message + " " + error.StackTrace;
                LogErroDAO.inserirLogErro(logErro, logErro.crg);
                MessageBox.Show("Erro durante a comunicação com o equipamento", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Exemple #26
0
 public ConfiguracaoRN()
 {
     dao = new ConfiguracaoDAO();
 }
Exemple #27
0
        public void CarregaInformacoes()
        {
            string opcao = ObterDadosUltimo();

            if (opcao == "Empresa")
            {
                VO.Empresa empresa = EmpresaDAO.retornaEmpresa();
                if (empresa.Logo != null)
                {
                    MemoryStream mStream = new MemoryStream();
                    byte[]       pData   = empresa.Logo;
                    mStream.Write(pData, 0, Convert.ToInt32(pData.Length));
                    Bitmap bm = new Bitmap(mStream, false);
                    mStream.Dispose();

                    pictureBox1.Image = bm;
                }
            }
            else
            {
                pictureBox1.Image = CRG08.Properties.Resources.LogoDigiComNome;
            }

            lblPorta.Text = "A porta de comunicação é a " + ConfiguracaoDAO.retornaPorta();

            Configuracao config = ConfiguracaoDAO.retornaConfiguracao();

            if (config != null)
            {
                switch (config.atualizacao)
                {
                case 1:
                    lblAtualizacao.Text = "A atualização está como individual";
                    break;

                case 2:
                    lblAtualizacao.Text = "A atualização está ativada para todas";
                    break;

                case 3:
                    lblAtualizacao.Text = "A atualização está como automática a cada " + config.intervalo.ToString() + " minutos";
                    break;

                case 4:
                    lblAtualizacao.Text = "A atualização está desativada";
                    break;
                }
            }

            VO.Backup backup = BackupDAO.RetornaBackup();
            if (backup == null)
            {
                lblBackup.Text = "Não há backup configurado";
            }
            else
            {
                switch (backup.Periodo)
                {
                case 0:
                    lblBackup.Text = "O Backup está configurado para diariamente";
                    break;

                case 1:
                    lblBackup.Text = "O Backup está configurado para semanalmente";
                    break;

                case 2:
                    lblBackup.Text = "O Backup está configurado para mensalmente";
                    break;
                }
            }
        }
 private void lblPadraoDepoisTrat_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     udLinhasDepois.Value = ConfiguracaoDAO.PadraoConfigRelatorio().LeiturasDepois;
 }
Exemple #29
0
        private void Alterar_Click(object sender, EventArgs e)
        {
            if (Atualizar.Text == "Atualizar")
            {
                var frmTipoCom = new frmSelecionarMeioComunicacao();
                frmTipoCom.ShowDialog(this);
                var tipoCom = frmTipoCom.comunicacao;
                if (string.IsNullOrWhiteSpace(tipoCom))
                {
                    return;
                }
                MessageBox.Show(tipoCom);
                return;


                int[]        atualizacao = ConfiguracaoDAO.RetornaAtualizacao();
                Configuracao config      = new Configuracao();
                config.atualizacao = atualizacao[0];
                if (config.atualizacao == 1)
                {
                    var checados = DtgChecked(dtgAndamento);
                    if (checados.Count > 0)
                    {
                        foreach (var item in checados)
                        {
                            var ciclo = CicloDAO.buscaCiclo(Convert.ToInt32(item.Cells[2].Value),
                                                            Convert.ToInt32(item.Cells[1].Value));
                            var novoCiclo = new NovoCiclo(true, Convert.ToInt32(item.Cells[4].Value), ciclo,
                                                          Convert.ToInt32(item.Cells[2].Value) - 1, false);
                            novoCiclo.ShowDialog(this);
                        }
                        CarregaCiclos();
                    }
                    else
                    {
                        MessageBox.Show("Não há nenhum ciclo selecionado!", "Atenção", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                    }

                    /*for (int i = 0; i < dtgAndamento.Rows.Count; i++)
                     * {
                     *  var rows = dtgAndamento.Rows;
                     *  if ((bool) dtgAndamento.Rows[i].Cells[0].Value)
                     *  {
                     *      VO.Ciclos ciclo = CicloDAO.buscaCiclo(Convert.ToInt32(dtgAndamento.Rows[i].Cells[2].Value),
                     *          Convert.ToInt32(dtgAndamento.Rows[i].Cells[1].Value));
                     *      NovoCiclo novoCiclo = new NovoCiclo(true,Convert.ToInt32(dtgAndamento.Rows[i].Cells[4].Value),
                     *          ciclo, Convert.ToInt32(dtgAndamento.Rows[i].Cells[2].Value) - 1, false);
                     *      novoCiclo.ShowDialog(this);
                     *  }
                     * }*/
                }
            }
            else
            {
                var checados = DtgChecked(dtgFinalizados);
                if (checados.Count > 0)
                {
                    foreach (var item in checados)
                    {
                        var ciclo = CicloDAO.buscaCiclo(Convert.ToInt32(item.Cells[2].Value),
                                                        Convert.ToInt32(item.Cells[1].Value));
                        var novoCiclo = new NovoCiclo(true, Convert.ToInt32(item.Cells[4].Value), ciclo,
                                                      Convert.ToInt32(item.Cells[2].Value) - 1, false);
                        novoCiclo.ShowDialog(this);
                    }
                    CarregaCiclos();
                }
                else
                {
                    MessageBox.Show("Não há nenhum ciclo selecionado!", "Atenção", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                }
            }
        }
Exemple #30
0
        private void btnInserir_Click(object sender, EventArgs e)
        {
            var id   = Convert.ToInt32(lvSecagens.SelectedItems[0].Text);
            var item = listaSecagens.FirstOrDefault(x => x.Id == id);
            var crg  = Convert.ToInt32(cmbCRG.Text);

            var func = new funcaoAssincrona(() => SecagensBO.ReceberSecagem(id, crg, ConfiguracaoDAO.retornaPorta()));

            this.Enabled = false;
            var frmCarregar = new Carregar();

            frmCarregar.Show(this);
            var asyncResult = func.BeginInvoke((ar) =>
            {
            }, null);

            while (asyncResult.IsCompleted == false)
            {
                Application.DoEvents();
                Thread.Sleep(50);
            }

            frmCarregar.Invoke(new MethodInvoker(() => frmCarregar.Close()));

            var listaRetorno = func.EndInvoke(asyncResult);

            if (listaRetorno == null)
            {
                MessageBox.Show("");
                return;
            }

            var secagem = SecagensBO.DescriptografarSecagem(listaRetorno);

            if (secagem == null)
            {
                var msg = "Não foi possível carregar este ciclo!";
                if (ErrorHandler.GetLastError != null)
                {
                    msg += Environment.NewLine + Environment.NewLine + "Detalhes:" + Environment.NewLine +
                           ErrorHandler.GetLastError.ErrorMessage;
                    ErrorHandler.ClearErrors();
                }
                MessageBox.Show(msg, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                goto Fim;
            }

            secagem.ciclo.crg = crg;


            var status = SecagensBO.SalvarSecagem(false, secagem, null, this);

            Enabled = true;

            if (status.Cancelado)
            {
                return;
            }

            if (status.Sucesso)
            {
                MessageBox.Show("Ciclo " + secagem.ciclo.nTrat + " " + (status.Salvo ? "salvo" : "atualizado") +
                                " com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                goto Fim;
            }

            var ultimoErro = ErrorHandler.GetLastError;

            if (ultimoErro != null)
            {
                MessageBox.Show(ultimoErro.ErrorMessage, ultimoErro.Identifier == 0 ? "Erro" : "Informação",
                                MessageBoxButtons.OK,
                                ultimoErro.Identifier == 0 ? MessageBoxIcon.Error : MessageBoxIcon.Information);
                goto Fim;
            }

            MessageBox.Show(
                "Ciclo " + id + " atualizado com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information);

Fim:
            //ciclos.Activate();
            ciclos?.CarregaCiclos();
        }