private void bt_gravar_aluguel_Click(object sender, EventArgs e)
        {
            tecnico_staico = new TecnicoRua();
            Usuario user = new Usuario();

            //Verifica se roteador está  foi levado pelo cliente ou por técnico.
            //Nota: 99% dos caso será pelo cliente.
            if (chk_tecnico.Checked == true)
            {
                frm_buscar_tecnico tec_rua = new frm_buscar_tecnico();
                frm_buscar_tecnico.filial_statico      = filial;
                frm_buscar_tecnico.is_atendimento_help = false;
                tec_rua.ShowDialog();
                //Confirma se há técnico escolhido
                if (tecnico_staico.Tec_ID == 0 || tecnico_staico == null)
                {
                    tecnico_staico.Usu_ID   = 0;
                    roteador_aluguel.status = 2;
                    user.Usu_ID             = 32;//SYSTEM_INTERNO ID INTERNO
                }
                else
                {
                    user.Usu_ID             = tecnico_staico.Usu_ID;
                    roteador_aluguel.status = 3;
                }
            }
            else if (chk_tecnico.Checked == false)
            {
                user.Usu_ID             = 32;//SYSTEM_INTERNO ID INTERNO
                roteador_aluguel.status = 2;
            }

            //Ordem de serviço

            //-> Dá seguimento ao salvamento.
            roteador_aluguel.cliente = cliente_aluguel;



            roteador_aluguel.Est_ID    = id_estoque_para_aluguel;
            roteador_aluguel.Qtd_atual = estoque_qtd_aluguel;

            //Dados do roteador.
            roteador_aluguel.usuario        = user;
            roteador_aluguel.modelo         = lbl_modelo.Text;
            roteador_aluguel.mac_adress     = lbl_mac.Text;
            roteador_aluguel.num_serie      = lbl_num_serie.Text;
            roteador_aluguel.num_patrimonio = lbl_patrimonio.Text;
            roteador_aluguel.data_saida     = DateTime.Now.ToString("yyyy-MM-dd");
            roteador_aluguel.preset         = lbl_preset.Text;



            string s_os = cx_os.Text;
            int    os   = 0;

            if (!String.IsNullOrEmpty(s_os) && !String.IsNullOrWhiteSpace(s_os))
            {
                os = Convert.ToInt32(s_os);
            }
            else
            {
                os = 0;
            }
            if (cliente_aluguel.Clie_ID > 0 || cliente_aluguel != null)
            {
                if (os > 0)
                {
                    roteador_aluguel.codigoOS = os;

                    int acao = 0;
                    if (estoque_qtd_aluguel > 0)
                    {
                        acao = regra_estoque.roteador_alugar_devolver(roteador_aluguel, user);
                    }
                    else
                    {
                        MessageBox.Show("[Estoque baixo]-> Equipamento não disponível para locação, comunique o estoquista.");
                    }

                    if (acao == 68)
                    {
                        mostrar_roteador_geral(filial, "", "");
                        mostrar_roteador_soDisponivel(filial, "", "");
                        //mostrar_roteador_soAlugado(filial, "", "");
                        //mostrar_roteador_soTecnico(filial, "", "");
                        //Limpa informações
                        lbl_mac.Text              = "???";
                        lbl_modelo.Text           = "???";
                        lbl_num_serie.Text        = "???";
                        lbl_patrimonio.Text       = "??";
                        lbl_preset.Text           = "???";
                        cx_cod_cliente.Text       = "";
                        cx_nome_cliente.Text      = "";
                        cliente_aluguel           = null;
                        tecnico_staico            = null;
                        roteador_aluguel          = null;
                        cx_os.Text                = "";
                        chk_tecnico.Checked       = false;
                        bt_gravar_aluguel.Enabled = false;
                        estoque_qtd_aluguel       = 0;
                        id_estoque_para_aluguel   = 0;
                    }
                    else
                    {
                        MessageBox.Show("[Desconhecido] : Ocorreu um erro durante o processo, \r\ncontato do desenvolvedor comunicando o código: [desconhecido]-Roteador");
                    }
                }
                else
                {
                    MessageBox.Show("Informe o código da ordem de serviço para continuar", "Código da O.S Inválido");
                    cx_os.Focus();
                }
            }
            else
            {
                MessageBox.Show("[Cliente]: Erro, cliente não informado!", "Cliente inválido");
            }
        }
        private void acoes_bt_finalizar(int condicoes)
        {
            switch (condicoes)
            {
            //DÁ BAIXA NA ORDEM DE SERVIÇO-finaliza
            case 0:
                var fechamento = cx_data_fechada.Text;
                try   { fechamento = Convert.ToDateTime(fechamento).ToString("yyyy-MM-dd"); }
                catch { fechamento = DateTime.Now.Date.ToString("yyyy-MM-dd"); }

                lbl_mudeAqui.Location    = new Point(243, 51);
                cx_data_fechada.Location = new Point(239, 69);
                var          obs        = cx_age_obs.Text;
                DialogResult per_fechar = MessageBox.Show("Concluir O.S de nº " + grid_num_OS + " Agora?", "..:: FINALIZAR AGENDAMENTO ::..", MessageBoxButtons.YesNo);
                if (per_fechar == DialogResult.Yes)
                {
                    obs = obs + " \r\nATENDIMENTO CONCLUIDO EM :" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + ".";
                    //atendimento.alterar_Agendamento_Concluir_OS(grid_cod, fechamento, obs,2);
                    atendimento.OS_ID = grid_cod;
                    atendimento.OS_aten_data_fechamento = fechamento;
                    atendimento.OS_desc_atendimento     = obs;
                    regra_atendimento.fechar_OS(atendimento);

                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }
                else
                {
                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }
                break;

            //REALIZA O AGENDAMENTO DO ATENDIMENTO
            case 1:
                var agendamento = cx_data_fechada.Text;
                try   { agendamento = Convert.ToDateTime(agendamento).ToString("yyyy-MM-dd"); }
                catch { agendamento = DateTime.Now.Date.ToString("yyyy-MM-dd"); }
                var age_obs = cx_age_obs.Text;
                lbl_mudeAqui.Location    = new Point(274, 51);
                cx_data_fechada.Location = new Point(270, 69);
                sub_id_os = subcategoria.Sub_ID;
                DialogResult per_agendar = MessageBox.Show("Agendar O.S de nº " + grid_num_OS + " Agora?", "..:: REALIZAR AGENDAMENTO ::..", MessageBoxButtons.YesNo);
                if (per_agendar == DialogResult.Yes)
                {
                    //atendimento.alterar_Agendamento_Tecnico_OS(grid_cod, agendamento, age_obs, idTecnicoAgendado,1,cat_id_os,sub_id_os);
                    atendimento.OS_ID = grid_cod;
                    atendimento.OS_data_agendamento = agendamento;
                    atendimento.OS_desc_atendimento = age_obs;
                    TecnicoRua tecnico = new TecnicoRua();
                    tecnico.Tec_ID              = idTecnicoAgendado;
                    atendimento.OS_categoria    = categoria;
                    atendimento.OS_subcategoria = subcategoria;
                    atendimento.tecnico         = tecnico;
                    regra_atendimento.encaminhar_para_tecnico_OS(atendimento);

                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }
                else
                {
                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }

                break;

            case 2:
                //BAIXA SEM EXECUÇÃO
                var fechamento_S = cx_data_fechada.Text;
                try   { fechamento_S = Convert.ToDateTime(fechamento_S).ToString("yyyy-MM-dd"); }
                catch { fechamento_S = DateTime.Now.Date.ToString("yyyy-MM-dd"); }

                var obs_S = cx_age_obs.Text;
                lbl_mudeAqui.Location    = new Point(243, 51);
                cx_data_fechada.Location = new Point(239, 69);
                DialogResult per_S = MessageBox.Show("Concluir O.S de nº " + grid_num_OS + " Agora?", "..:: FINALIZAR AGENDAMENTO ::..", MessageBoxButtons.YesNo);
                if (per_S == DialogResult.Yes)
                {
                    obs_S = obs_S + "\r\n BAIXADO SEM EXECUÇÃO EM :" + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss") + ".";
                    //atendimento.alterar_Agendamento_Concluir_OS(grid_cod, fechamento_S, obs_S,4);
                    atendimento.OS_ID = grid_cod;
                    atendimento.OS_aten_data_fechamento = fechamento_S;
                    atendimento.OS_desc_atendimento     = obs_S;

                    regra_atendimento.fechar_OS_sem_execucao(atendimento);

                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }
                else
                {
                    grid_cod           = 0;
                    grid_codigo        = null;
                    grid_nome          = null;
                    grid_data_abertura = null;
                    grid_num_OS        = null;
                    grid_categoria     = null;
                    grid_subcategoria  = null;
                    grid_obs           = null;
                    grid_helpdesk      = null;
                }
                break;

            //FINALIZA A ORDEM DE SERVIÇO SEM EXECUÇÃO
            default:
                MessageBox.Show("Opção não informado");
                break;
            }
        }