Exemplo n.º 1
0
        static void TRG2017_LoadSistemaPastaCT()
        {
            string     sql        = File.ReadAllText(Gerais.Caminho_App() + @"\sql\TRG2017_LoadSistemaPastaCT.sql");
            Connection Connection = new Connection();

            Connection.Executar(sql);
            Connection.Dispose();
        }
Exemplo n.º 2
0
        public static void ALM_Defeitos_Aging()
        {
            string     sql        = File.ReadAllText(Gerais.Caminho_App() + @"\sql\ALM_Defeitos_Aging.sql");
            Connection Connection = new Connection();

            Connection.Executar(sql);
            Connection.Dispose();
        }
Exemplo n.º 3
0
        public void LoadData()
        {
            DateTime Dt_Inicio = DateTime.Now;

            ALMConnection ALMConn = new ALMConnection(this.database);
            Connection    SGQConn = new Connection();

            SqlMaker2 sqlMaker2 = new SqlMaker2()
            {
                sqlMaker2Param = this.sqlMaker2Param
            };

            if (typeUpdate == TypeUpdate.Increment || typeUpdate == TypeUpdate.IncrementFullUpdate)
            {
                if (typeUpdate == TypeUpdate.IncrementFullUpdate)
                {
                    SGQConn.Executar($"update SGQ_Parametros set Valor = '0000-00-00 00:00:00' where Nome='ALM_Usuarios_Update'");
                }

                string           Sql_Insert        = sqlMaker2.Get_Oracle_Insert().Replace("{Esquema}", this.database.scheme);
                OracleDataReader DataReader_Insert = ALMConn.Get_DataReader(Sql_Insert);
                if (DataReader_Insert != null && DataReader_Insert.HasRows == true)
                {
                    SGQConn.Executar(ref DataReader_Insert, 1);
                }

                string           Sql_Update        = sqlMaker2.Get_Oracle_Update().Replace("{Esquema}", this.database.scheme);
                OracleDataReader DataReader_Update = ALMConn.Get_DataReader(Sql_Update);
                if (DataReader_Update != null && DataReader_Update.HasRows == true)
                {
                    SGQConn.Executar(ref DataReader_Update, 1);
                }
            }
            else if (typeUpdate == TypeUpdate.Full)
            {
                SGQConn.Executar($"truncate table ALM_Usuarios");

                string           Sql_Insert        = sqlMaker2.Get_Oracle_Insert().Replace("{Esquema}", this.database.scheme);
                OracleDataReader DataReader_Insert = ALMConn.Get_DataReader(Sql_Insert);
                if (DataReader_Insert != null && DataReader_Insert.HasRows == true)
                {
                    SGQConn.Executar(ref DataReader_Insert, 1);
                }
            }

            SGQConn.Executar($"update SGQ_Parametros set Valor = '{Dt_Inicio.ToString("dddd-MM-yy HH:mm:ss")}' where Nome='ALM_Usuarios_Update'");

            Gerais.Enviar_Email_Atualizacao_Tabela(
                Assunto: string.Format($"[SGQLoader]{database.name} - Usuários - {this.typeUpdate}"),
                Dt_Inicio: Dt_Inicio,
                Dt_Fim: DateTime.Now
                );

            SGQConn.Dispose();
        }
Exemplo n.º 4
0
        public static void Historico_Valores()
        {
            string sql1 = File.ReadAllText(Gerais.Caminho_App() + @"\sql\Insert_SGQ_Historico_Valores_Execucao_Teste.sql");
            string sql2 = File.ReadAllText(Gerais.Caminho_App() + @"\sql\Insert_SGQ_Historico_Valores_Riscos.sql");
            string sql3 = File.ReadAllText(Gerais.Caminho_App() + @"\sql\Insert_SGQ_Historico_Valores_Status_Projeto_Release.sql");

            Connection Connection = new Connection();

            Connection.Executar(sql1);
            Connection.Executar(sql2);
            Connection.Executar(sql3);
            Connection.Dispose();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Método para verificar se o usuário e senha são válidos
        /// </summary>
        /// <param name="usuario">Login do Usuário</param>
        /// <returns>Retorna os atributos do UsuarioModel</returns>
        public Usuario Usuario_ValidarLogin(Usuario usuario)
        {
            try
            {
                string ImagePath           = new ParametroBLL().Parametro_GetValor("ImagePath");
                string physicalPath        = System.Web.HttpContext.Current.Server.MapPath(ImagePath + "default.png");
                System.Drawing.Image image = System.Drawing.Image.FromFile(physicalPath);

                using (SqlConnection conn = new SqlConnection(strConn))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand("STP_LOGIN", conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add(new SqlParameter("@usu_usuario", usuario.usu_usuario));
                    var senha = new Gerais().Encrypt(usuario.usu_senha);
                    cmd.Parameters.Add(new SqlParameter("@senhacrip", senha));
                    cmd.Parameters.Add(new SqlParameter("@ip", usuario.usu_ip));

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        Usuario _usuario = new Usuario();
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                _usuario.usu_id      = Convert.ToInt32(reader["usu_id"]);
                                _usuario.usu_usuario = usuario.usu_usuario;
                                _usuario.usu_senha   = senha; // senha criptografada
                                _usuario.usu_ip      = usuario.usu_ip;
                                _usuario.usu_nome    = reader["usu_nome"].ToString();
                                _usuario.usu_ativo   = Convert.ToInt32(reader["usu_ativo"]);
                                // _usuario.usu_foto = reader["usu_foto"].ToString();
                                // checa antes se existe foto
                                _usuario.usu_foto = reader["usu_foto"].ToString() == "" ? new Gerais().ImageToBase64(image) : reader["usu_foto"].ToString();

                                _usuario.usu_trocar_senha = Convert.ToInt32(reader["sen_mudar_senha"]);
                            }
                        }

                        return(_usuario);
                    }
                }
            }
            catch (Exception ex)
            {
                int id = 0;
                new LogSistemaDAO().InserirLogErro(new LogErro(ex, this.GetType().Name, new StackTrace().GetFrame(0).GetMethod().Name), out id);
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 6
0
        public List <T> GetProjects <T>()
        {
            //BD oBD = new BD(Lib.SGQ());
            // oBD.Executar(File.ReadAllText(Gerais.Caminho_App() + @"\SQLs\Insert_SGQ_Historico_Valores_Execucao_Teste.sql"));
            //oBD.Close();

            string sql = File.ReadAllText(Gerais.Caminho_App() + $@"\sql\{database.sqlListProjects}", System.Text.Encoding.Default);

            Connection SGQConn  = new Connection();
            List <T>   projetos = SGQConn.Executar <T>(sql);

            SGQConn.Dispose();

            return(projetos);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Envio de Email
        /// </summary>
        /// <param name="login">Login do usuário</param>
        /// <returns>string vazia se OK, ou mensagem de erro</returns>
        public string CriaEnviaEmailComSenha(string login)
        {
            // gera nova senha
            var dt    = DateTime.Now.ToString("ddmmyyyyhhmmss");
            var senha = new Gerais().Encrypt(login + "_" + dt);

            Usuario usuTemp = new Usuario();

            usuTemp.usu_usuario = login;
            usuTemp.usu_senha   = new Gerais().Encrypt(senha);
            usuTemp.usu_ip      = System.Web.HttpContext.Current.Request.UserHostAddress;

            // reseta a senha
            Usuario usu = new UsuarioDAO().Usuario_ResetarSenha(usuTemp);

            // envia email com a senha nova
            if (usu.usu_id >= 0)
            {
                ParamsEmail pEmail = new ParametroBLL().Parametro_ListAllParamsEmail()[0];

                pEmail.Para    = usu.usu_nome + "<" + usu.usu_email + ">";
                pEmail.Assunto = "Envio de Senha";


                // substitui parametros
                pEmail.Texto = pEmail.Texto.Replace("[param_USUARIO_NOME]", usu.usu_nome);
                pEmail.Texto = pEmail.Texto.Replace("[param_USUARIO]", usu.usu_usuario);
                pEmail.Texto = pEmail.Texto.Replace("[param_SENHA]", senha);
                pEmail.Texto = pEmail.Texto.Replace("[param_URL]", pEmail.URL_SISTEMA);


                // envia o email
                AlternateView av1 = null;
                if (pEmail.IsBodyHtml)
                {
                    av1 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                }

                string retorno = new Gerais().MandaEmail(av1, pEmail);
                return(retorno);
            }
            else
            {
                return("Usuário não cadastrado no sistema");
            }
        }
Exemplo n.º 8
0
        // *************** Usuario  *************************************************************

        /// <summary>
        /// Redimensiona e salva a imagem de Upload
        /// </summary>
        /// <param name="model">Variável do tipo UsuarioFoto</param>
        /// <returns>string</returns>
        public string Usuario_ImageUpload(UsuarioFoto model)
        {
            string base64String = "";
            var    file         = model.ImageFile;

            if ((file != null) && (model.usu_id > 0))
            {
                //nomeArquivo = model.usu_id.ToString() + "_" + file.FileName.Replace(" ", "_");
                var _image      = Image.FromStream(file.InputStream);
                var _thumbImage = new Gerais().imgResize(_image, maxHeight: 160);
                // string ImagePath = new ParametroBLL().Parametro_GetValor("ImagePath");

                base64String = new Gerais().ImageToBase64(_thumbImage);

                //_thumbImage.Save(System.Web.HttpContext.Current.Server.MapPath(ImagePath + nomeArquivo));

                //// apaga a foto anterior
                //if (!model.FotoAnterior.EndsWith("default.png"))
                //{
                //    // string ImagePath = System.Configuration.ConfigurationManager.AppSettings["ImagePath"];
                //    if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath(model.FotoAnterior)))
                //    {
                //        try
                //        {
                //            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath(model.FotoAnterior));
                //        }
                //        catch (Exception ex) { }
                //    }
                //}


                Usuario paramUsuario = (Usuario)System.Web.HttpContext.Current.Session["Usuario"];
                if (paramUsuario.usu_id == model.usu_id)
                {
                    paramUsuario.usu_foto = base64String;
                    //  paramUsuario.usu_foto = ImagePath + nomeArquivo;
                    System.Web.HttpContext.Current.Session["Usuario"] = paramUsuario;
                }

                int retorno = new UsuarioBLL().Usuario_AlterarFoto(base64String, model.usu_id);
            }

            return(base64String);
        }
Exemplo n.º 9
0
        public string Get_String_(string sql)
        {
            try
            {
                OracleCommand    oracleCommand = new OracleCommand(sql, this.oracleConnection);
                OracleDataReader DataReader    = oracleCommand.ExecuteReader();
                oracleCommand.Dispose();

                DataReader.Read();

                return(DataReader[0].ToString());
            }
            catch (Exception oEX)
            {
                //throw new Exception(oEX.Message);
                Gerais.Enviar_Email_Para_Administradores("Get_String_", oEX.Message.ToString());
                return(null);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Salva Parâmetro
        /// </summary>
        /// <param name="par">Nome do Parâmetro</param>
        /// <param name="usu_id">Id do Usuário logado</param>
        /// <param name="ip">IP do Usuário logado</param>
        /// <returns>int</returns>
        public int Parametro_Salvar(Parametro par, int usu_id, string ip)
        {
            try
            {
                var par_valor = par.par_valor;
                if (par.par_id == "email_Senha")
                {
                    par_valor = new Gerais().Encrypt(par.par_valor);
                }

                using (SqlConnection con = new SqlConnection(strConn))
                {
                    con.Open();
                    SqlCommand com = new SqlCommand();

                    com.CommandText = "STP_UPD_PARAMETRO";
                    com.Connection  = con;
                    com.CommandType = CommandType.StoredProcedure;
                    com.Parameters.Clear();

                    System.Data.SqlClient.SqlParameter p_return = new System.Data.SqlClient.SqlParameter();
                    p_return.Direction = System.Data.ParameterDirection.ReturnValue;
                    com.Parameters.Add(p_return);
                    com.Parameters[0].Size = 32000;

                    com.Parameters.AddWithValue("@par_id", par.par_id);

                    com.Parameters.AddWithValue("@par_valor", par_valor);
                    com.Parameters.AddWithValue("@par_descricao", par.par_descricao);
                    com.Parameters.AddWithValue("@usu_id", usu_id);
                    com.Parameters.AddWithValue("@ip", ip);

                    com.ExecuteScalar();
                    return(Convert.ToInt32(p_return.Value));
                }
            }
            catch (Exception ex)
            {
                int id = 0;
                new LogSistemaDAO().InserirLogErro(new LogErro(ex, this.GetType().Name, new StackTrace().GetFrame(0).GetMethod().Name), out id);
                throw new Exception(ex.Message);
            }
        }
Exemplo n.º 11
0
 public OracleDataReader Get_DataReader(string sql)
 {
     try
     {
         OracleCommand oracleCommand = new OracleCommand(this.database.prefix + this.storedProcedureName, this.oracleConnection);
         oracleCommand.CommandType = CommandType.StoredProcedure;
         oracleCommand.Parameters.Add(new OracleParameter(this.inputParameterName, OracleDbType.Clob));
         oracleCommand.Parameters.Add(this.outputParameterName, OracleDbType.RefCursor);
         oracleCommand.Parameters[0].Value     = sql;
         oracleCommand.Parameters[1].Direction = ParameterDirection.Output;
         OracleDataReader DataReader = oracleCommand.ExecuteReader();
         oracleCommand.Dispose();
         return(DataReader);
     }
     catch (Exception oEX)
     {
         //throw new Exception(oEX.Message);
         Gerais.Enviar_Email_Para_Administradores(this.database.name + ": " + this.database.prefix + this.storedProcedureName, oEX.Message.ToString() + "<br/><br/>" + sql);
         // Gerais.Enviar_Email_Para_Administradores("Open GET_QCALM11SQL_V2", oEX.Message.ToString() + "<br/><br/>" + sql);
         return(null);
     }
 }
Exemplo n.º 12
0
        public void loadDefectsTimes()
        {
            DateTime Dt_Inicio_Geral = DateTime.Now;

            var SGQConn = new Connection();

            var List_Nome_Projetos = new List <String>();

            List <Projeto_Template_05> projectList = this.GetProjects <Projeto_Template_05>();

            foreach (var project in projectList)
            {
                DateTime Dt_Inicio = DateTime.Now;

                Defeitos_Tempos.LoadData(project, typeUpdate, database);

                DateTime Dt_Fim = DateTime.Now;

                long   Tempo             = DataEHora.DateDiff(DataEHora.DateInterval.Second, Dt_Inicio, Dt_Fim);
                string Nome_Projeto_BITI = SGQConn.Get_String($"select Nome from biti_subprojetos where id = '{project.Subprojeto}'");
                List_Nome_Projetos.Add(Tempo.ToString().PadLeft(4, '0') + " seg, " + project.Nome + " - " + Nome_Projeto_BITI);
            }

            SGQConn.Dispose();

            DateTime Dt_Fim_Geral = DateTime.Now;

            if (projectList.Count > 0)
            {
                List_Nome_Projetos.Sort();
                Gerais.Enviar_Email_Atualizacao_Projetos(
                    Assunto: string.Format($"[SGQLoader]{database.name} - Defeitos Tempos - {this.typeUpdate}"),
                    projectList: List_Nome_Projetos,
                    Dt_Inicio: Dt_Inicio_Geral,
                    Dt_Fim: Dt_Fim_Geral
                    );
            }
        }
Exemplo n.º 13
0
        static private void RunMain()
        {
            DateTime Dt_Inicio_Geral = DateTime.Now;

            String   Mensagem = "";
            DateTime Dt_Inicio;
            DateTime Dt_Fim;
            long     Tempo = 0;

            Connection SGQConn = new Connection();

            Dt_Inicio = DateTime.Now;
            var projetos = new Projetos(TypeUpdate.IncrementFullUpdate);

            projetos.LoadData();
            Dt_Fim    = DateTime.Now;
            Tempo     = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Projetos.<br/>";

            //// Com Chave, Insert + Update
            //Dt_Inicio = DateTime.Now;
            //         //SGQConn.Executar("truncate table BITI_Sistemas");
            //         Sistemas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Sistemas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Ideias");
            //         Ideias.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Ideias.<br/>";

            //         //Dt_Inicio = DateTime.Now;
            //         //SGQConn.Executar("truncate table BITI_Projetos");
            //         //Projetos.Atualizar(TypeUpdate.Full);
            //         //Dt_Fim = DateTime.Now;
            //         //Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         //Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Projetos.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Subprojetos");
            //         Subprojetos.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Subprojetos.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_CRs");
            //         CRs.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: CRs.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Entregas");
            //         Entregas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Entregas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Frentes_Trabalho");
            //         Frentes_Trabalho.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Frentes_Trabalho.<br/>";

            //Dt_Inicio = DateTime.Now;
            //SGQConn.Executar("truncate table BITI_Desenhos");
            //Desenhos.Atualizar(TypeUpdate.Full);
            //Dt_Fim = DateTime.Now;
            //Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Desenho.<br/>";

            //Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Execucoes");
            //         Execucoes.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Execucoes.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Aprovacoes_Financeiras");
            //         Aprovacoes_Financeiras.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Aprovacoes_Financeiras.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Aprovacoes_Financeiras_FT");
            //         Aprovacoes_Financeiras_FT.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Aprovacoes_Financeiras_FT.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Propostas");
            //         Propostas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Propostas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Metricas");
            //         Metricas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Metricas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Fases_Contratadas");
            //         Fases_Contratadas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Fases_Contratadas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Macro_Estimativas");
            //         Macro_Estimativas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Macro_Estimativas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Documentos_Controlados");
            //         Documentos_Controlados.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Documentos_Controlados.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Usuarios");
            //         Usuarios.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Usuarios.<br/>";


            //         // Sem Chave, truncate + Insert
            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Cronogramas_Subprojetos");
            //         Cronogramas_Subprojetos.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Cronogramas_Subprojetos.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Cronogramas_Entregas");
            //         Cronogramas_Entregas.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Cronogramas_Entregas.<br/>";

            //         Dt_Inicio = DateTime.Now;
            //         SGQConn.Executar("truncate table BITI_Mudancas_Estados");
            //         Mudancas_Estados.Atualizar(TypeUpdate.Full);
            //         Dt_Fim = DateTime.Now;
            //         Tempo = DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio, Dt_Fim);
            //         Mensagem += Tempo.ToString().PadLeft(4, '0') + " min, Tabela: Mudancas_Estados.<br/>";

            //         Subprojetos.Atualizar_Classificacao();
            //         Entregas.Atualizar_Release();


            DateTime Dt_Fim_Geral = DateTime.Now;

            SGQConn.Dispose();

            Mensagem =
                @"<br/>Início: " + Dt_Inicio_Geral.ToString("dd-MM-yyyy HH:mm:ss") +
                @"<br/>Fim:   " + Dt_Fim_Geral.ToString("dd-MM-yyyy HH:mm:ss") +
                @"<br/>Tempo: " + DataEHora.DateDiff(DataEHora.DateInterval.Minute, Dt_Inicio_Geral, Dt_Fim_Geral).ToString() + " min<br/><br/>" +
                Mensagem;

            Gerais.Enviar_Email(Gerais.Get_Lista_To_Aviso_Carga(), Gerais.Get_Lista_CC_Aviso_Carga(), "SGQ-BITI: Atualizou - Tipo Atualização: COMPLETA", Mensagem);
        }
Exemplo n.º 14
0
        /// <summary>
        /// Preenche a Ficha de Inspeção Especial em Excel e disponibiliza para download
        /// </summary>
        /// <param name="ord_id">Id da O.S pertinente ao objeto</param>
        /// <param name="origem">Tela que chamou o evento</param>
        /// <returns>string</returns>
        public string FichaInspecaoEspecialAnomalias_ExportarXLS(int ord_id, string origem)
        {
            string arquivo_modelo_caminhoFull = System.Web.HttpContext.Current.Server.MapPath("~/Reports/Ficha_Cadastramento_Anomalias.xlsx");
            string arquivo_saida                 = "Ficha_Cadastramento_Anomalias_" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + ".xlsx";
            string arquivo_saida_caminhoFull     = System.Web.HttpContext.Current.Server.MapPath("~/temp/") + "/" + arquivo_saida;
            string arquivo_saida_caminho_virtual = HttpContext.Current.Request.Url.Host + "/temp/" + arquivo_saida;
            string saida = "";

            List <string> Headers = new List <string>();

            try
            {
                Gerais ger = new Gerais();

                limpaArquivosAntigos();

                File.Copy(arquivo_modelo_caminhoFull, arquivo_saida_caminhoFull);

                // faz busca os DADOS no banco
                List <InspecaoAnomalia> lstDADOS = new InspecaoDAO().InspecaoAnomalias_Valores_ListAll(ord_id);

                // Abre a planilha para edicao
                using (SpreadsheetDocument doc = SpreadsheetDocument.Open(arquivo_saida_caminhoFull, true))
                {
                    // LEITURA DA PLANILHA
                    Worksheet worksheet       = ger.GetWorksheet(doc, "Ficha_Cadastramento_Anomalias");
                    Worksheet worksheetRodape = ger.GetWorksheet(doc, "Rodape");

                    // ======= PREENCHE OS DADOS ===============================================
                    if (lstDADOS.Count > 0)
                    {
                        if (origem == "OrdemServico") // remove cabecalho e oculta coluna A
                        {
                            // remove cabecalhos
                            Cell cell_A1 = ger.InsertCellInWorksheet("A", 1, worksheet);

                            string letra = "A";
                            for (int t = 82; t < 88; t++)
                            {
                                if (t > 82)
                                {
                                    letra = ((char)t).ToString();
                                }

                                for (int m = 5; m <= 7; m++)
                                {
                                    ger.copyCell(doc, worksheet, cell_A1, letra, Convert.ToUInt32(m));
                                }
                            }

                            DocumentFormat.OpenXml.Spreadsheet.Columns columns = worksheet.Elements <DocumentFormat.OpenXml.Spreadsheet.Columns>().FirstOrDefault();
                            DocumentFormat.OpenXml.Spreadsheet.Column  col     = columns.GetFirstChild <DocumentFormat.OpenXml.Spreadsheet.Column>();
                            //col.Width = 0;
                            col.Hidden = DocumentFormat.OpenXml.BooleanValue.FromBoolean(true);
                        }


                        for (int li = 0; li < lstDADOS.Count; li++)
                        {
                            for (int col = 65; col < 87; col++) // VARRE as COLUNAS A até V
                            {
                                if ((origem == "OrdemServico") && (col >= 83))
                                {
                                    break;
                                }


                                Cell cell = ger.InsertCellInWorksheet(((char)col).ToString(), Convert.ToUInt32(li + 9), worksheet);
                                cell.DataType   = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                                cell.StyleIndex = cell_estilo(lstDADOS[li].clo_id, false, ref worksheetRodape);

                                switch (col)
                                {
                                case 65: if (origem == "Inspecao")
                                    {
                                        cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].obj_codigo));
                                    }
                                    else
                                    {
                                        cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                    }
                                    break;

                                case 66: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].item)); break;

                                case 67: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].obj_descricao)); break;
                                }

                                if (lstDADOS[li].ian_id > 0)
                                {
                                    cell.StyleIndex = cell_estilo(lstDADOS[li].clo_id, true, ref worksheetRodape);

                                    switch (col)
                                    {
                                    case 68: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ian_localizacao_especifica)); break;

                                    case 69: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ian_numero)); break;

                                    case 70: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].leg_codigo)); break;

                                    case 71: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].atp_codigo)); break;

                                    case 72: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ale_codigo)); break;

                                    case 73:
                                        if (ger.IsNumeric(lstDADOS[li].ian_quantidade))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_quantidade)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }

                                        break;

                                    case 74:
                                        if (ger.IsNumeric(lstDADOS[li].ian_espacamento))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_espacamento)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }

                                        break;

                                    case 75:
                                        if (ger.IsNumeric(lstDADOS[li].ian_largura))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_largura)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }

                                        break;

                                    case 76:
                                        if (ger.IsNumeric(lstDADOS[li].ian_comprimento))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_comprimento)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }

                                        break;

                                    case 77:
                                        if (ger.IsNumeric(lstDADOS[li].ian_abertura_minima))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_abertura_minima)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }

                                        break;

                                    case 78:
                                        if (ger.IsNumeric(lstDADOS[li].ian_abertura_maxima))
                                        {
                                            cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                            cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_abertura_maxima)));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;

                                    case 79: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].aca_codigo)); break;

                                    case 80: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ian_fotografia)); break;

                                    case 81: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ian_croqui)); break;

                                    case 82: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].ian_observacoes)); break;


                                    case 83:
                                        if (origem == "Inspecao")
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstDADOS[li].rpt_id_sugerido_codigo));
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;

                                    case 84:
                                        if (origem == "Inspecao")
                                        {
                                            if (lstDADOS[li].ian_quantidade_sugerida > 0)
                                            {
                                                //cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                                //cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_quantidade_sugerida)));

                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[li].ian_quantidade_sugerida.ToString() + " " + lstDADOS[li].rpt_id_sugerido_unidade);
                                            }
                                            else
                                            {
                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                            }
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;

                                    case 85:
                                        if (origem == "Inspecao")
                                        {
                                            if ((ger.IsNumeric(lstDADOS[li].rpt_id_adotado)) && (Convert.ToDecimal(lstDADOS[li].rpt_id_adotado) > 0))
                                            {
                                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].rpt_id_adotado)));
                                            }
                                            else
                                            {
                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                            }
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;

                                    case 86:
                                        if (origem == "Inspecao")
                                        {
                                            if (lstDADOS[li].ian_quantidade_adotada > 0)
                                            {
                                                // cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                                // cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].ian_quantidade_adotada)));
                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[li].ian_quantidade_adotada.ToString() + " " + lstDADOS[li].rpt_id_adotado_unidade);
                                            }
                                            else
                                            {
                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                            }
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;

                                    case 87:
                                        if (origem == "Inspecao")
                                        {
                                            if (lstDADOS[li].apt_id > 0)
                                            {
                                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstDADOS[li].apt_id)));
                                            }
                                            else
                                            {
                                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                            }
                                        }
                                        else
                                        {
                                            cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue("");
                                        }
                                        break;
                                    }
                                }
                            } // for col
                        }     // for li



                        // ============ coloca o rodape ================================================

                        uint LinhaDestino = (uint)lstDADOS.Count + 8;

                        for (int li = 1; li <= 3; li++)
                        {
                            for (int col = 65; col < 87; col++) // VARRE as COLUNAS A até V
                            {
                                // copia o Quadro A da planilha "Rodape" para o rodape dos dados
                                Cell cellOrigem = ger.InsertCellInWorksheet(((char)col).ToString(), Convert.ToUInt32(li), worksheetRodape);
                                ger.copyCell(doc, worksheet, cellOrigem, ((char)col).ToString(), Convert.ToUInt32(li + LinhaDestino));
                            }

                            // mescla as celulas
                            if (li == 1)
                            {
                                ger.MergeCells(worksheet, "B" + (li + LinhaDestino).ToString(), "V" + (li + LinhaDestino).ToString());
                            }
                            else
                            {
                                ger.MergeCells(worksheet, "A" + (li + LinhaDestino).ToString(), "E" + (li + LinhaDestino).ToString());
                                ger.MergeCells(worksheet, "F" + (li + LinhaDestino).ToString(), "V" + (li + LinhaDestino).ToString());
                            }
                        }

                        // preenche os valores
                        Cell cell2 = ger.InsertCellInWorksheet("C", 2, worksheet);
                        cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                        cell2.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[0].obj_codigo_TipoOAE);

                        cell2           = ger.InsertCellInWorksheet("R", 2, worksheet);
                        cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                        cell2.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[0].ins_anom_data);

                        cell2           = ger.InsertCellInWorksheet("C", 3, worksheet);
                        cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                        cell2.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[0].ins_anom_Responsavel);

                        cell2           = ger.InsertCellInWorksheet("G", (LinhaDestino + 2), worksheet);
                        cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                        cell2.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[0].ins_anom_quadroA_1);
                        //  cell2.StyleIndex = cell_Modelo4.StyleIndex;

                        cell2           = ger.InsertCellInWorksheet("G", (LinhaDestino + 3), worksheet);
                        cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                        cell2.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(lstDADOS[0].ins_anom_quadroA_2);
                        // cell2.StyleIndex = cell_Modelo4.StyleIndex;



                        // ============ coloca o rodape Observacoes ================================================

                        int li2 = 4;
                        for (int col = 65; col < 87; col++) // VARRE as COLUNAS A até V
                        {
                            // copia Obs da planilha "Rodape" para o rodape dos dados
                            Cell cellOrigem = ger.InsertCellInWorksheet(((char)col).ToString(), Convert.ToUInt32(li2), worksheetRodape);
                            ger.copyCell(doc, worksheet, cellOrigem, ((char)col).ToString(), Convert.ToUInt32(li2 + LinhaDestino));
                        }

                        // mescla as celulas
                        ger.MergeCells(worksheet, "A" + (li2 + LinhaDestino).ToString(), "V" + (li2 + LinhaDestino + 6).ToString());

                        // ajusta a altura da linha
                        Row linhaObs = ger.GetRow(worksheet, 4 + LinhaDestino);
                    }


                    // fecha o arquivo e retorna
                    doc.Save();
                    doc.Close();
                } // using


                return(arquivo_saida);
            } // try
            catch (Exception ex)
            {
                saida = ex.ToString();
            }

            return("");
        }
Exemplo n.º 15
0
        /// <summary>
        /// Preenche Orcamento em Excel e disponibiliza para download
        /// </summary>
        /// <param name="orc_id">Id do Orçamento</param>
        /// <returns>string</returns>
        public string Orcamento_ExportarXLS(int orc_id)
        {
            string arquivo_modelo_caminhoFull = System.Web.HttpContext.Current.Server.MapPath("~/Reports/Modelo_Orcamento.xlsx");
            string arquivo_saida             = "Orcamento_" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + ".xlsx";
            string arquivo_saida_caminhoFull = System.Web.HttpContext.Current.Server.MapPath("~/temp/") + "/" + arquivo_saida;

            string arquivo_saida_caminho_virtual = HttpContext.Current.Request.Url.Host + "/temp/" + arquivo_saida;
            string saida = "";

            List <string> Headers = new List <string>();

            int nLinhaVisivel = 99;
            int ultimaLinha   = 352;
            int desloc_linha  = 131;

            Gerais ger = new Gerais();

            try
            {
                // apaga arquivos antigos da pasta temp
                new ObjetoBLL().limpaArquivosAntigos();

                File.Copy(arquivo_modelo_caminhoFull, arquivo_saida_caminhoFull);


                // faz busca os DADOS no banco
                List <OrcamentoDetalhes>   lstOrcamentoDetalhes = new OrcamentoDAO().OrcamentoDetalhes_ListAll(orc_id, 1);
                List <ServicosAdicionados> lstOrcamento_Servicos_Adicionados = new OrcamentoDAO().Orcamento_Servicos_Adicionados_ListAll(orc_id, 0);

                // Abre a planilha para edicao
                using (SpreadsheetDocument doc = SpreadsheetDocument.Open(arquivo_saida_caminhoFull, true))
                {
                    // LEITURA DA PLANILHA
                    Worksheet worksheet = ger.GetWorksheet(doc, "Orcamento");

                    // ======= PREENCHE OS DADOS ===============================================
                    string  valor          = "";
                    decimal qtAdotadaValor = -1;

                    // pega o estilo da planilha estilos: borda direita preta e borda direita +fonte vermelha
                    Worksheet worksheet_estilos = ger.GetWorksheet(doc, "estilos");
                    Cell      cell_BordaDireita = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(1));
                    Cell      cell_BordaDireita_Fonte_Vermelha = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(2));
                    Cell      cell_Fonte_Vermelha_Centralizado = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(3));
                    Cell      cell_BordaDireita_Centralizado   = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(4));
                    Cell      cell_BordaDireita_Fonte_Vermelha_Centralizado = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(5));
                    Cell      cell_Fonte_Vermelha_Direita = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(6));
                    Cell      cell_Borda_Superior         = ger.GetCell(worksheet_estilos, "B", Convert.ToUInt32(7));


                    // preenchimento do grid Tabelao
                    for (int li = 0; li < lstOrcamentoDetalhes.Count; li++)
                    {
                        // TABELA HEADER COM OS DADOS DA 1A LINHA
                        if (li == 0)
                        {
                            for (int li2 = 4; li2 <= 11; li2++)
                            {
                                Cell cell = ger.GetCell(worksheet, "B", Convert.ToUInt32(li2));
                                cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;

                                switch (li2)
                                {
                                case 4: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_cod_orcamento)); break;

                                case 5: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_versao)); break;

                                case 6: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_descricao)); break;

                                case 7: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].ocs_descricao)); break;

                                case 8: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_objetos_associados)); break;

                                case 9: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_data_validade)); break;

                                case 10: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_data_base)); break;

                                case 11: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[0].orc_ativo)); break;
                                }
                            }
                            Cell cellTitulo = ger.GetCell(worksheet, "A", Convert.ToUInt32(2));
                            cellTitulo.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;
                            cellTitulo.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString("Orçamento " + lstOrcamentoDetalhes[0].orc_cod_orcamento + " versão " + lstOrcamentoDetalhes[0].orc_versao.ToString()));

                            Cell cell1 = ger.GetCell(worksheet, "D", Convert.ToUInt32(124));
                            cell1.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                            cell1.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[0].valor_total_adotado)));

                            Cell cell2 = ger.GetCell(worksheet, "D", Convert.ToUInt32(126));
                            cell2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                            cell2.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[0].valor_total_sugerido)));
                        }


                        // VARRE as COLUNAS A até X para preenchimento do tabelao
                        for (int col = 65; col <= 88; col++)
                        {
                            Cell cell = ger.GetCell(worksheet, ((char)col).ToString(), Convert.ToUInt32(li + desloc_linha));
                            cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;

                            // coloca os valores
                            switch (col)
                            {
                            case 65: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].obj_codigoOAE)); break;

                            case 67: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].obj_codigoElemento)); break;

                            case 69: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].ian_numero)); break;

                            case 70: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].atp_codigo)); break;

                            case 71: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].leg_codigo)); break;

                            case 72: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].ale_codigo)); break;

                            case 73: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].aca_codigo)); break;

                            case 74:
                                cell.DataType   = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.StyleIndex = cell_BordaDireita_Centralizado.StyleIndex;
                                cell.CellValue  = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade)));
                                break;

                            case 75: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].rpt_id_sugerido_codigo)); break;

                            case 76:
                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_sugerida)));
                                break;

                            case 77: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamentoDetalhes[li].rpt_id_sugerido_unidade)); break;

                            case 78:
                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_preco_unitario_sugerido)));
                                break;

                            case 80:
                                cell.DataType   = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.StyleIndex = cell_BordaDireita.StyleIndex;
                                cell.CellValue  = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_valor_total_linha_sugerido)));
                                break;

                            case 81:
                                cell.StyleIndex = cell_BordaDireita.StyleIndex;
                                break;

                            case 82:
                                valor          = lstOrcamentoDetalhes[li].rpt_id_adotado_codigo;
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    valor = lstOrcamentoDetalhes[li].rpt_id_sugerido_codigo;
                                }

                                if (lstOrcamentoDetalhes[li].rpt_id_adotado_codigo != lstOrcamentoDetalhes[li].rpt_id_sugerido_codigo)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Centralizado.StyleIndex;
                                }

                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(valor));
                                break;

                            case 83:
                                decimal valor1 = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    valor1 = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_sugerida);
                                }

                                if (lstOrcamentoDetalhes[li].ian_quantidade_adotada != lstOrcamentoDetalhes[li].ian_quantidade_sugerida)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Centralizado.StyleIndex;
                                }

                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(valor1)));
                                break;

                            case 84:
                                valor          = lstOrcamentoDetalhes[li].rpt_id_adotado_unidade;
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    valor = lstOrcamentoDetalhes[li].rpt_id_sugerido_unidade;
                                }

                                if (lstOrcamentoDetalhes[li].rpt_id_adotado_unidade != lstOrcamentoDetalhes[li].rpt_id_sugerido_unidade)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Centralizado.StyleIndex;
                                }

                                cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(valor));
                                break;

                            case 85:
                                decimal valor2 = Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_preco_unitario_adotado);
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    valor2 = Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_preco_unitario_sugerido);
                                }

                                if (lstOrcamentoDetalhes[li].rtu_preco_unitario_adotado != lstOrcamentoDetalhes[li].rtu_preco_unitario_sugerido)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Direita.StyleIndex;
                                }

                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(valor2)));
                                break;

                            case 87:
                                decimal valor3 = Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_valor_total_linha_adotado);
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    valor3 = Convert.ToDecimal(lstOrcamentoDetalhes[li].rtu_valor_total_linha_sugerido);
                                }

                                if (lstOrcamentoDetalhes[li].rtu_valor_total_linha_adotado != lstOrcamentoDetalhes[li].rtu_valor_total_linha_sugerido)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Direita.StyleIndex;
                                }

                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(valor3)));
                                break;

                            case 88:
                                qtAdotadaValor = Convert.ToDecimal(lstOrcamentoDetalhes[li].ian_quantidade_adotada);
                                if (qtAdotadaValor == 0)
                                {
                                    cell.StyleIndex = cell_Fonte_Vermelha_Direita.StyleIndex;
                                }
                                break;
                            }
                        }
                    }

                    // coloca borda inferior na ultima linha
                    for (int col = 65; col <= 88; col++)
                    {
                        Cell cell = ger.GetCell(worksheet, ((char)col).ToString(), Convert.ToUInt32(lstOrcamentoDetalhes.Count + desloc_linha));
                        cell.StyleIndex = cell_Borda_Superior.StyleIndex;
                    }


                    // **** PREENCHIMENTO DO GRID SERVICOS ADICIONADOS *********************************************
                    desloc_linha = 19;
                    for (int li = 0; li < lstOrcamento_Servicos_Adicionados.Count; li++)
                    {
                        for (int col = 65; col <= 78; col++) // VARRE as COLUNAS A até N
                        {
                            Cell cell = ger.GetCell(worksheet, ((char)col).ToString(), Convert.ToUInt32(li + desloc_linha));
                            cell.DataType = DocumentFormat.OpenXml.Spreadsheet.CellValues.String;

                            // coloca os valores
                            switch (col)
                            {
                            case 65: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].obj_codigo)); break;

                            case 67: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].ose_quantidade)); break;

                            case 68: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].UnidMed)); break;

                            case 69: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].CodSubItem)); break;

                            case 70: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].NomeSubItem)); break;

                            case 74: cell.CellValue = new DocumentFormat.OpenXml.Spreadsheet.CellValue(Convert.ToString(lstOrcamento_Servicos_Adicionados[li].ose_fase)); break;

                            case 75:
                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamento_Servicos_Adicionados[li].PrecoUnit)));
                                break;

                            case 77:
                                cell.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                                cell.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamento_Servicos_Adicionados[li].valor_total_linha)));
                                break;
                            }
                        }
                    }

                    // coloca borda inferior na ultima linha
                    for (int col = 65; col <= 78; col++)
                    {
                        Cell cell = ger.GetCell(worksheet, ((char)col).ToString(), Convert.ToUInt32(lstOrcamento_Servicos_Adicionados.Count + desloc_linha));
                        cell.StyleIndex = cell_Borda_Superior.StyleIndex;
                    }


                    // oculta as linhas em branco a mais
                    for (int k = lstOrcamento_Servicos_Adicionados.Count + desloc_linha + 1; k < 123; k++)
                    {
                        Row refRow = ger.GetRow(worksheet, Convert.ToUInt16(k));
                        refRow.Hidden = new BooleanValue(true); // oculta a linha
                    }


                    // prenche os totais dos servicos adicionados
                    if (lstOrcamento_Servicos_Adicionados.Count > 0)
                    {
                        decimal valorGeral = Convert.ToDecimal(lstOrcamento_Servicos_Adicionados[0].valor_total) + Convert.ToDecimal(lstOrcamentoDetalhes[0].valor_total_adotado);

                        Cell cellTitulo1 = ger.GetCell(worksheet, "B", Convert.ToUInt32(13));
                        cellTitulo1.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                        cellTitulo1.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(valorGeral)));

                        Cell cellTitulo2 = ger.GetCell(worksheet, "D", Convert.ToUInt32(15));
                        cellTitulo2.DataType  = DocumentFormat.OpenXml.Spreadsheet.CellValues.Number;
                        cellTitulo2.CellValue = new CellValue(DocumentFormat.OpenXml.DecimalValue.FromDecimal(Convert.ToDecimal(lstOrcamento_Servicos_Adicionados[0].valor_total)));
                    }


                    // fecha o arquivo e retorna
                    doc.Save();
                    doc.Close();
                }

                return(arquivo_saida);
            }
            catch (Exception ex)
            {
                saida = "erro:" + ex.ToString();
            }

            return("");
        }
Exemplo n.º 16
0
        /// <summary>
        /// Copia o estilo de uma celula modelo
        /// </summary>
        /// <param name="clo_id">Id da classe do objeto</param>
        /// <param name="ehCentralizado">Centralizar?</param>
        /// <param name="worksheetRodape">Planilha modelo</param>
        /// <returns></returns>
        public DocumentFormat.OpenXml.UInt32Value cell_estilo(int clo_id, bool ehCentralizado, ref Worksheet worksheetRodape)
        {
            Gerais ger = new Gerais();

            DocumentFormat.OpenXml.UInt32Value retorno;

            if (!ehCentralizado)
            {
                Cell cell_Modelo1 = ger.InsertCellInWorksheet("A", 5, worksheetRodape);
                Cell cell_Modelo2 = ger.InsertCellInWorksheet("A", 6, worksheetRodape);
                Cell cell_Modelo3 = ger.InsertCellInWorksheet("A", 7, worksheetRodape);
                Cell cell_Modelo4 = ger.InsertCellInWorksheet("A", 8, worksheetRodape);

                if (clo_id == 6)
                {
                    retorno = cell_Modelo1.StyleIndex;
                }
                else
                if ((clo_id == 7) || (clo_id == 8))
                {
                    retorno = cell_Modelo2.StyleIndex;
                }
                else
                if (clo_id == 9)
                {
                    retorno = cell_Modelo3.StyleIndex;
                }
                else
                {
                    retorno = cell_Modelo4.StyleIndex;
                }
            }
            else
            {
                Cell cell_Modelo1_centralizado = ger.InsertCellInWorksheet("B", 5, worksheetRodape);
                Cell cell_Modelo2_centralizado = ger.InsertCellInWorksheet("B", 6, worksheetRodape);
                Cell cell_Modelo3_centralizado = ger.InsertCellInWorksheet("B", 7, worksheetRodape);
                Cell cell_Modelo4_centralizado = ger.InsertCellInWorksheet("B", 8, worksheetRodape);

                if (clo_id == 6)
                {
                    retorno = cell_Modelo1_centralizado.StyleIndex;
                }
                else
                if ((clo_id == 7) || (clo_id == 8))
                {
                    retorno = cell_Modelo2_centralizado.StyleIndex;
                }
                else
                if (clo_id == 9)
                {
                    retorno = cell_Modelo3_centralizado.StyleIndex;
                }
                else
                {
                    retorno = cell_Modelo4_centralizado.StyleIndex;
                }
            }

            return(retorno);
        }
Exemplo n.º 17
0
        /// <summary>
        ///  Altera os dados da Ordem de Servico no Banco
        /// </summary>
        /// <param name="ord">Ordem de Servico</param>
        /// <returns>string</returns>
        public string OrdemServico_Salvar(OrdemServico ord)
        {
            int sos_id_anterior = new OrdemServicoDAO().StatusOS(ord.ord_id);

            Usuario paramUsuario = (Usuario)System.Web.HttpContext.Current.Session["Usuario"];
            int     retorno      = new OrdemServicoDAO().OrdemServico_Salvar(ord, paramUsuario.usu_id, paramUsuario.usu_ip);

            string         sretorno            = "";
            List <OSEmail> email               = null;
            int            email_Enviar_Emails = Convert.ToInt16(new ParametroDAO().Parametro_GetValor("email_Enviar_Emails"));

            if (sos_id_anterior != ord.sos_id)
            {
                // se O.S. Orcamento for de "Em Revisao" para "Encerrada", o sistema informa que a OAE com dados em revisão será excluída da OS de Orçamento através de mensagem na tela e no e-mail
                if ((sos_id_anterior == 18) && (ord.sos_id == 14) && (ord.tos_id == 11))
                {
                    // busca a mensagem de tela para retornar
                    email    = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 24); // id da mensagem
                    sretorno = email[0].mensagem;

                    // enviar email
                    if (retorno > 0)
                    {
                        if (email_Enviar_Emails != 0)
                        {
                            ParamsEmail pEmail       = new ParametroBLL().Parametro_ListAllParamsEmail()[0];
                            string      retornoEmail = "";
                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 25); // id da mensagem

                            // envia o email
                            pEmail.Para    = email[0].destinatarios;
                            pEmail.Assunto = email[0].assunto;
                            pEmail.Texto   = email[0].mensagem;

                            AlternateView av2 = null;
                            if (pEmail.IsBodyHtml)
                            {
                                av2 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                            }

                            if (pEmail.Para.Trim() != "")
                            {
                                retornoEmail = new Gerais().MandaEmail(av2, pEmail);
                            }
                        }
                    }
                }
                else
                {
                    // se retorno > 0 entao verifica se tem que mandar email
                    if (email_Enviar_Emails != 0)
                    {
                        if (retorno > 0) // salvou com sucesso
                        {
                            // checa sincronizacao OAEs e Regionais por conta dos emails das Regionais
                            List <OAE>      oaes      = new IntegracaoDAO().get_OAEs();
                            List <Regional> regionais = new IntegracaoDAO().get_Regionais();

                            ParamsEmail   pEmail       = new ParametroBLL().Parametro_ListAllParamsEmail()[0];
                            AlternateView av1          = null;
                            string        retornoEmail = "";

                            // "E" = 14 = encerrada
                            if ((ord.sos_codigo == "E") || (ord.sos_id == 14))
                            {
                                // cadastral(7), rotineira(8) : email para Regional id mensagem #1
                                if ((ord.tos_id == 7) || (ord.tos_id == 8))
                                {
                                    // verifica se tem apontamentos de serviços e quantitativos na OS
                                    int qt = new OrdemServicoDAO().OrdemServico_ChecaApontamentoServicos(ord.ord_id);

                                    // se tem, entao manda o email
                                    if (qt > 0)
                                    {
                                        email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 1); // id da mensagem = 1

                                        // envia o email
                                        pEmail.Para    = email[0].destinatarios;
                                        pEmail.Assunto = email[0].assunto;
                                        pEmail.Texto   = email[0].mensagem;

                                        AlternateView av2 = null;
                                        if (pEmail.IsBodyHtml)
                                        {
                                            av2 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                                        }

                                        if (pEmail.Para.Trim() != "")
                                        {
                                            retornoEmail = new Gerais().MandaEmail(av2, pEmail);
                                        }
                                    }
                                }

                                // cadastral(7), rotineira(8)
                                if ((ord.tos_id == 7) || (ord.tos_id == 8))
                                {
                                    // Sistema notifica a Seção de OAE da Sede  o encerramento da OS
                                    email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 2); // id mensagem #2
                                }
                                else
                                if (ord.tos_id == 9) // O.S. especial(9)
                                {
                                    // Sistema notifica a Seção de OAE da Sede  o encerramento da OS
                                    email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 8); // id mensagem #8
                                }
                                else
                                if (ord.tos_id == 11)// Orçamento (11)
                                {
                                    // Sistema notifica a Seção de OAE da Sede o encerramento da OS
                                    email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 13); // id da mensagem = 13
                                }
                                else
                                if ((ord.tos_id == 5) || (ord.tos_id == 10) ||  //  Inspeção Extraordinária, Monitoramento, Ensaios, Levantamento Cadastral, Conserva,Projeto de OAE
                                    (ord.tos_id == 16) || (ord.tos_id == 17) || (ord.tos_id == 22) || (ord.tos_id == 24))
                                {
                                    // Sistema notifica a Seção de OAE da Sede o encerramento da OS
                                    email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 3); // id da mensagem = 3
                                }
                                else
                                if (ord.tos_id == 18)          // ocorrencia (18)
                                {
                                    // enviar e-mail para a seção de OAE e para a Regional
                                    email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 5); // id da mensagem = 5
                                }
                                else
                                {
                                    int mudouNotas = new OrdemServicoDAO().MudouNotas(ord.ord_id);
                                    if ((mudouNotas == 0) && ((ord.tos_id == 14) || (ord.tos_id == 23)))
                                    {
                                        if (ord.tos_id == 14) //  Recuperação/Reparo(14)
                                        {
                                            // enviar e-mail para a seção de OAEl
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 17);
                                        }
                                        else
                                        if (ord.tos_id == 23)    // Execucao de Obra Nova
                                        {
                                            // enviar e-mail para a seção de OAE
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 18);
                                        }
                                    }
                                    else
                                    {
                                        if ((ord.tos_id == 14) || (ord.tos_id == 13))  //  Recuperação/Reparo(14) //  Projeto de Reforço(13)
                                        {
                                            // enviar e-mail para a seção de OAE e para a Regional
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 15); // id da mensagem = 15
                                        }
                                        else
                                        if (ord.tos_id == 23)     // Execucao de Obra Nova
                                        {
                                            // enviar e-mail para a seção de OAE e para a Regional
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 16); // id da mensagem = 16
                                        }
                                    }
                                }
                                // envia o email
                                if (email != null)
                                {
                                    pEmail.Para    = email[0].destinatarios;
                                    pEmail.Assunto = email[0].assunto;
                                    pEmail.Texto   = email[0].mensagem;

                                    if (pEmail.IsBodyHtml)
                                    {
                                        av1 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                                    }

                                    retornoEmail = new Gerais().MandaEmail(av1, pEmail);
                                }
                            }
                            else
                            {
                                // "EXEC = 11 = executada
                                if ((ord.sos_codigo == "EXEC") || (ord.sos_id == 11))
                                {
                                    //Recuperação / Reparo(14), Execução de Obras(23)
                                    if ((ord.tos_id == 13) || (ord.tos_id == 14) || (ord.tos_id == 23))
                                    {
                                        //Enviar e-mail para a seção de OAE
                                        if ((ord.tos_id == 14) || (ord.tos_id == 13))  //  Recuperação/Reparo(14) //  Projeto de Reforço(13)
                                        {
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 6);
                                        }
                                        else
                                        {
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, 14);
                                        }

                                        pEmail.Para    = email[0].destinatarios;
                                        pEmail.Assunto = email[0].assunto;
                                        pEmail.Texto   = email[0].mensagem;

                                        // envia o email
                                        if (pEmail.IsBodyHtml)
                                        {
                                            av1 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                                        }

                                        retornoEmail = new Gerais().MandaEmail(av1, pEmail);
                                    }
                                }
                                else
                                {
                                    if ((ord.sos_codigo == "CORR") || (ord.sos_id == 13))  // Reaberta para Correção
                                    {
                                        // cadastral(7), rotineira(8), Especial(9)
                                        if ((ord.tos_id == 9) || (ord.tos_id == 7) || (ord.tos_id == 8))
                                        {
                                            int msgid = 7;
                                            if (ord.tos_id == 9) // Especial(9)
                                            {
                                                msgid = 9;
                                            }

                                            //Enviar e-mail para a seção de OAE
                                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, msgid); // mensagem id #7 para cadastral/rotineira; #9 para especial

                                            pEmail.Para    = email[0].destinatarios;
                                            pEmail.Assunto = email[0].assunto;
                                            pEmail.Texto   = email[0].mensagem;

                                            // envia o email
                                            if (pEmail.IsBodyHtml)
                                            {
                                                av1 = AlternateView.CreateAlternateViewFromString(pEmail.Texto, null, "text/html");
                                            }

                                            retornoEmail = new Gerais().MandaEmail(av1, pEmail);
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if ((ord.tos_id == 9) && (ord.sos_id == 13)) // Especial(9) Reaberta para Correção
                    {
                        if (retorno < 0)
                        {
                            // busca a mensagem de tela para retornar
                            email = new OrdemServicoDAO().OSEmail_ID(ord.ord_id, -retorno); // id da mensagem

                            sretorno = email[0].mensagem;
                        }
                    }
                }
            }

            return(sretorno);
        }