/// <summary> /// Carregando as informações da tabela para a classe de OS. /// </summary> /// <param name="ID">I.</param> public static OrdemServico Carregar(int ID) { System.Data.DataTable tabela = new DataTable("OrdemDeServico"); OrdemServico OSBase = new OrdemServico(); Spartacus.Database.Generic database; Spartacus.Database.Command cmd = new Spartacus.Database.Command(); cmd.v_text = "Select * from OrdemDeServico Where ID = #id#"; cmd.AddParameter("id", Spartacus.Database.Type.INTEGER); cmd.SetValue("id", ID.ToString()); try { database = new Spartacus.Database.Sqlite(DB.GetStrConection()); tabela = database.Query(cmd.GetUpdatedText(), "OrdemDeServico"); OSBase = PreencherOS(tabela); } catch (Spartacus.Database.Exception ex) { ControllerArquivoLog.GeraraLog(ex); } return OSBase; }
/// <summary> /// Finalizando Ordem de serviço (Botão). /// </summary> private void finalizarToolStripMenuItem_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Txt_OS.Text)) { OrdemServico OSbase = new OrdemServico(); Servico ServicoBase = new Servico(); ControllerOrdemServico controllerOS = new ControllerOrdemServico(); ControllerServico controllerServico = new ControllerServico(); ControllerEmail controllerEmail = new ControllerEmail(); bool Resultado = false; if (controllerOS.Verificar(Txt_OS.Text))//Verifica se a OS existe ou não { Resultado = controllerOS.FinalizarOS(Txt_OS.Text); if (Resultado) { MessageBox.Show("Ordem de serviço Finalizada com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Ocorreu um problema ao finalizar sua Ordem de serviço, informações foram salvas no arquivo log no diretorio do sue software", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } //Gerando o serviço controllerServico.Save(Txt_Descricao.Text, double.Parse(Txt_Valor.Text), Txt_OS.Text); if (MessageBox.Show("Enviar E-mail para o cliente informando sobre o término do serviço?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { Model.Email EmailBase = new Model.Email(); //Decodificando Email Base para enviar! String EmailDecoficado = controllerEmail.DecodificarEmailBase(RecuperandoEmailBase(), NomeEmpresa(), InformacaoCliente()[0]); string ResultadoEnvio = controllerEmail.Enviar(InformacaoCliente()[0], InformacaoCliente()[1], NomeEmpresa(), EmailDecoficado); MessageBox.Show(ResultadoEnvio, "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { MessageBox.Show("Informe o numero da ordem de serviço!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Recuperando informações do cliente. /// </summary> /// <returns>Nome e E-mail do cliente</returns> private string[] InformacaoCliente() { OrdemServico OSBase = new OrdemServico(); Fisica PessoaFisicaBase = new Fisica(); Juridica PessoaJuridicaBase = new Juridica(); ControllerOrdemServico controllerOS = new ControllerOrdemServico(); ControllerFisica controllerPF = new ControllerFisica(); ControllerJuridica controllerPJ = new ControllerJuridica(); string NomeDoCliente = "Não Econtrado"; string EmailCliente = "Não encontrado"; string[] Informacoes = new string[2]; NomeDoCliente = controllerOS.LoadOSFinalizada(Txt_OS.Text).Cliente; //TODO:Arrumar para verificar o tipo de pessoa //Verificando o tipo e o Email do usuario if (true) //Verifica se é PessoaFisica { EmailCliente = controllerPF.Load(NomeDoCliente).Email; NomeDoCliente = controllerPF.Load(NomeDoCliente).Nome; Informacoes[0] = NomeDoCliente; Informacoes[1] = EmailCliente; } else if (controllerPJ.Verificar(NomeDoCliente)) //Verifica se é pessoa Juridica { PessoaJuridicaBase = controllerPJ.Load(NomeDoCliente); EmailCliente = PessoaFisicaBase.Email; NomeDoCliente = PessoaFisicaBase.Nome; Informacoes[0] = NomeDoCliente; Informacoes[1] = EmailCliente; } return Informacoes; }
/// <summary> /// Enviando Email inicial, quando e aberto uma Ordem de Serviço /// </summary> /// <param name="NomeUsuario"></param> public static string EnviarOrdemDeServiço(OrdemServico OS, Empresa InfoEmpresa, Pessoa cliente) { string Saida = " "; string MenssagemBase = string.Format("Olá {0}, sua ordem de serviço n° {1} foi criado com sucesso! O arquivo segue em anexo a este e-mail", cliente.Nome, OS.ID); Email EmailBase = new Email(); EmailBase = ControllerEmail.CarregarInformacoesLoginServidor();//Carregando informações do servidor. SmtpClient smtp = new SmtpClient(EmailBase.Host, EmailBase.Port); //Servidor MailMessage mail = new MailMessage(); //Menssagem mail.From = new MailAddress(EmailBase.email); //Configurando servidor. smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential(EmailBase.email, EmailBase.Senha);//Passando Login e senha do e-mail da empresa(para enviar) //Assunto do email. mail.Subject = String.Format("Ordem de serviço [ {0} ]", InfoEmpresa.Nome); //Informando sobre o corpo. mail.IsBodyHtml = true; //Conteúdo do email. mail.Body = MenssagemBase; //Adicionando E-mail do cliente para enviar. mail.To.Add(cliente.Email); //Prioridade de Envio. mail.Priority = MailPriority.High; // Criar o arquivo anexo para esse e-mail. string file = String.Format("{0}/OS.pdf", Path.GetTempPath());//TODO:Rever Esse Código. Attachment data = new Attachment(file); data.Name = String.Format("{0}.pdf", OS.ID); //Mudando o nome do arquivo antes de enviar o E-mail. //Inclui o arquivo anexo. mail.Attachments.Add(data); //Caminho de onde o arquivo da Ordem de serviço é salvo. try { //Envia o email. smtp.Send(mail); Saida = "E-mail enviado com sucesso!"; } catch (System.Exception exc) { //Gerando arquivo de Log ControllerArquivoLog.GeraraLog(exc); Saida = "Ocorreu um erro ao enviar o Email " + exc.Message; } return Saida; }
/// <summary> /// Carregando as informações dos TxtBox para a Classe Cliente. /// </summary> /// <returns></returns> private OrdemServico PreencherOS() { OrdemServico OSBase = new OrdemServico(); OSBase.dataEntradaServico = Txt_DataEntrada.Text; OSBase.Defeito = Txt_Defeito.Text; OSBase.Descricao = Txt_Descricao.Text; OSBase.Equipamento = Txt_Equipamento.Text; OSBase.IDCliente = ControllerPessoa.VerificarID(Txt_Clientes.Text); OSBase.IDTecnico = IDTecnico; OSBase.NumeroSerie = Txt_Nserie.Text; OSBase.Observacao = Txt_Observacoes.Text; OSBase.Situacao = Txt_Situacao.Text; return OSBase; }
/// <summary> /// Preenchendo a classe OS com as informações do DataTable /// </summary> /// <param name="tabela">todo: describe tabela parameter on PreencherOS</param> /// <returns>The cliente.</returns> private static OrdemServico PreencherOS(DataTable tabela) { List<string> OSBaseLista = new List<string>(); OrdemServico OSBase = new OrdemServico(); try { foreach (DataRow r in tabela.Rows) { foreach (DataColumn c in tabela.Columns) { OSBaseLista.Add(r[c].ToString()); } } OSBase.ID = Convert.ToInt32(OSBaseLista[0]); OSBase.Situacao = OSBaseLista[1]; OSBase.Defeito = OSBaseLista[2]; OSBase.Descricao = OSBaseLista[3]; OSBase.Observacao = OSBaseLista[4]; OSBase.NumeroSerie = OSBaseLista[5]; OSBase.Equipamento = OSBaseLista[6]; OSBase.dataEntradaServico = OSBaseLista[7]; OSBase.IDCliente = Convert.ToInt32(OSBaseLista[8]); OSBase.IDTecnico = Convert.ToInt32(OSBaseLista[9]); } catch (Exception ex) { ControllerArquivoLog.GeraraLog(ex); } return OSBase; }
/// <summary> /// Editando Ordem de serviço /// </summary> /// <param name="OS">O.</param> public static string Editar(OrdemServico Os) { string Saida = ""; Spartacus.Database.Generic database; Spartacus.Database.Command cmd = new Spartacus.Database.Command(); cmd.v_text = @"update OrdemDeServico set Situacao = #situacao#, Defeito = #defeito#, Descricao = #descricao#, Observacao = #observacao#, NumeroDeSerie = #numerodeserie#, Equipamento = #equipamento#, DataEntradaServico = #dataentradaservico#, IdCliente = #idcliente#, IdTecnico = #idtecnico# Where ID = #id#"; cmd.AddParameter("ID", Spartacus.Database.Type.INTEGER); cmd.AddParameter("Situacao", Spartacus.Database.Type.STRING); cmd.AddParameter("Defeito", Spartacus.Database.Type.STRING); cmd.AddParameter("Descricao", Spartacus.Database.Type.STRING); cmd.AddParameter("Observacao", Spartacus.Database.Type.STRING); cmd.AddParameter("NumeroDeSerie", Spartacus.Database.Type.STRING); cmd.AddParameter("Equipamento", Spartacus.Database.Type.STRING); cmd.AddParameter("DataEntradaServico", Spartacus.Database.Type.STRING); cmd.AddParameter("IdCliente", Spartacus.Database.Type.INTEGER); cmd.AddParameter("IdTecnico", Spartacus.Database.Type.INTEGER); // valor com acento será mantido por causa do false cmd.SetValue("id", Os.ID.ToString()); cmd.SetValue("situacao", Os.Situacao, false); cmd.SetValue("defeito", Os.Defeito, false); cmd.SetValue("descricao", Os.Descricao, false); cmd.SetValue("observacao", Os.Observacao, false); cmd.SetValue("numeroDeSerie", Os.NumeroSerie); cmd.SetValue("equipamento", Os.Equipamento, false); cmd.SetValue("dataEntradaServico", Os.dataEntradaServico); cmd.SetValue("idCliente", Os.IDCliente.ToString()); cmd.SetValue("idTecnico", Os.IDTecnico.ToString()); try { database = new Spartacus.Database.Sqlite(DB.GetStrConection()); // desabilitando seguranca de execucao de comandos database.SetExecuteSecurity(false); database.Execute(cmd.GetUpdatedText()); Saida = "A Ordem de serviço foi editada com sucesso!"; } catch (Exception exc) { ControllerArquivoLog.GeraraLog(exc); Saida = "Ocorreu um erro inesperado: " + exc.Message; } return Saida; }
/// <summary> /// Salvando Ordem De Serviço /// </summary> /// <param name="Os">Os.</param> public static string Criar(OrdemServico Os) { Spartacus.Database.Generic database; Spartacus.Database.Command cmd = new Spartacus.Database.Command(); cmd.v_text = @"insert into OrdemDeServico (Situacao,Defeito,Descricao,Observacao,NumeroDeSerie,Equipamento,DataEntradaServico,IdCliente,IdTecnico) values(#situacao#,#defeito#,#descricao#,#observacao#,#numerodeserie#,#equipamento#,#dataentradaservico#,#idcliente#,#idtecnico#)"; cmd.AddParameter("situacao", Spartacus.Database.Type.STRING); cmd.AddParameter("defeito", Spartacus.Database.Type.STRING); cmd.AddParameter("descricao", Spartacus.Database.Type.STRING); cmd.AddParameter("observacao", Spartacus.Database.Type.STRING); cmd.AddParameter("numeroDeSerie", Spartacus.Database.Type.STRING); cmd.AddParameter("equipamento", Spartacus.Database.Type.STRING); cmd.AddParameter("dataEntradaServico", Spartacus.Database.Type.STRING); cmd.AddParameter("idCliente", Spartacus.Database.Type.INTEGER); cmd.AddParameter("idTecnico", Spartacus.Database.Type.INTEGER); // valor com acento será mantido por causa do false cmd.SetValue("situacao", Os.Situacao, false); cmd.SetValue("defeito", Os.Defeito, false); cmd.SetValue("descricao", Os.Descricao, false); cmd.SetValue("observacao", Os.Observacao, false); cmd.SetValue("numeroDeSerie", Os.NumeroSerie); cmd.SetValue("equipamento", Os.Equipamento, false); cmd.SetValue("dataEntradaServico", Os.dataEntradaServico); cmd.SetValue("idCliente", Os.IDCliente.ToString()); cmd.SetValue("idTecnico", Os.IDTecnico.ToString()); try { database = new Spartacus.Database.Sqlite(DB.GetStrConection()); // desabilitando seguranca de execucao de comandos database.SetExecuteSecurity(false); database.Execute(cmd.GetUpdatedText()); return "Ordem de serviço numero foi salva com sucesso!"; } catch (Exception ex) { ControllerArquivoLog.GeraraLog(ex); return String.Format("Ocorreu um erro ao tental salvar a Ordem de serviço:{0}", ex.Message); } }
/// <summary> /// Salvando a ordem de serviço em arquivo de Texto. /// </summary> /// <param name="Identificador"></param> /// <param name="Referencia"></param> /// <param name="Situacao"></param> /// <param name="Defeito"></param> /// <param name="Descricao"></param> /// <param name="Observacao"></param> /// <param name="NumeroSerie"></param> /// <param name="Equipamento"></param> /// <param name="DataEntradaServico"></param> /// <param name="Cliente"></param> /// <returns></returns> public string Save(string Identificador, string Referencia, string Situacao, string Defeito, string Descricao, string Observacao, string NumeroSerie, string Equipamento, string DataEntradaServico, string Cliente) { OrdemServico OSBase = new OrdemServico(); string Saida = null; OSBase.Identificador = Identificador; OSBase.Equipamento = Equipamento; OSBase.Situacao = Situacao; OSBase.NumeroSerie = NumeroSerie; OSBase.Defeito = Defeito; OSBase.Referencia = Referencia; OSBase.DataEntradaServico = DataEntradaServico; OSBase.Observacao = Observacao; OSBase.Descricao = Descricao; OSBase.Cliente = Cliente; StreamWriter sw = null; if (Verificar(OSBase.Identificador) == false) { try { sw = new StreamWriter(String.Format("OS/{0}.os", Identificador)); sw.WriteLine(OSBase.Identificador); sw.WriteLine(OSBase.Cliente); sw.WriteLine(OSBase.Equipamento); sw.WriteLine(OSBase.Situacao); sw.WriteLine(OSBase.NumeroSerie); sw.WriteLine(OSBase.Defeito); sw.WriteLine(OSBase.Referencia); sw.WriteLine(OSBase.DataEntradaServico); sw.WriteLine(OSBase.Observacao); sw.WriteLine(OSBase.Descricao); } catch (System.Exception Exc) { Arquivos.ArquivoLog Log = new Arquivos.ArquivoLog(); Log.ArquivoExceptionLog(Exc); Saida = "Ocorreu um erro inesperado! Um arquivo com as informações desse erro foi criado no diretorio do seu software"; } finally { if (sw != null) { sw.Close(); Saida = "Ordem de Serviço registrada com sucesso!"; } } } else { //Chamara a função de salvar novamente se for verificado que o numero "sorteado já existe na base de dados." Save(OSBase.Identificador, OSBase.Referencia, OSBase.Situacao, OSBase.Defeito, OSBase.Descricao, OSBase.Observacao, OSBase.NumeroSerie, OSBase.Equipamento, OSBase.DataEntradaServico, OSBase.Cliente); } return Saida; }
/// <summary> /// Carregando a ordem de serviço(Finalizada) atraves do arquivo de texto. /// </summary> /// <param name="_Identificador"></param> /// <returns>Ordem de serviço</returns> public OrdemServico LoadOSFinalizada(string _Identificador) { OrdemServico OSBase = new OrdemServico(); StreamReader sr = null; try { sr = new StreamReader(String.Format("OS/Finalizadas/{0}.os", _Identificador)); OSBase.Identificador = sr.ReadLine(); OSBase.Cliente = sr.ReadLine(); OSBase.Equipamento = sr.ReadLine(); OSBase.Situacao = sr.ReadLine(); OSBase.NumeroSerie = sr.ReadLine(); OSBase.Defeito = sr.ReadLine(); OSBase.Referencia = sr.ReadLine(); OSBase.DataEntradaServico = sr.ReadLine(); OSBase.Observacao = sr.ReadLine(); OSBase.Descricao = sr.ReadLine(); } catch (Exception Exc) { Arquivos.ArquivoLog Log = new Arquivos.ArquivoLog(); Log.ArquivoExceptionLog(Exc); } finally { if (sr != null) sr.Close(); } return OSBase; }
//Ordens finalizadas /// <summary> /// Finalizando Ordem de serviço. /// </summary> /// <param name="NumeroOS"></param> /// <returns>Menssagen informando se deu certo ou não</returns> public bool FinalizarOS(string NumeroOS) { bool Saida; OrdemServico OSBase = new OrdemServico(); //TODO:trocar situação da ordem de serviço para finaliza aqui. if (Verificar(NumeroOS)) { File.Move(String.Format("OS/{0}.os", NumeroOS), String.Format("OS/Finalizadas/{0}.os", NumeroOS)); Saida = true; } else { //Se não for encotrada a OS ira retornar um valor False. Saida = false; } return Saida; }
private void PreencherCamposDeTexto(int id) { OrdemServico InformacoesOrdemDeServico = new OrdemServico(); InformacoesOrdemDeServico = ControllerOrdemServico.Carregar(id); IDChamado = InformacoesOrdemDeServico.ID; Txt_IDPesquisa.Text = InformacoesOrdemDeServico.ID.ToString(); Txt_Situacao.Text = InformacoesOrdemDeServico.Situacao; Txt_Defeito.Text = InformacoesOrdemDeServico.Defeito; Txt_Descricao.Text = InformacoesOrdemDeServico.Descricao; Txt_Observacoes.Text = InformacoesOrdemDeServico.Observacao; Txt_Nserie.Text = InformacoesOrdemDeServico.NumeroSerie; Txt_Equipamento.Text = InformacoesOrdemDeServico.Equipamento; Txt_DataEntrada.Text = InformacoesOrdemDeServico.dataEntradaServico; Txt_Descricao.Text = InformacoesOrdemDeServico.Descricao; Txt_Cliente.Text = ControllerPessoa.VerificarNome(InformacoesOrdemDeServico.IDCliente); //Caso o estatus da OS for finalizado, não é possível mudar. if (InformacoesOrdemDeServico.Situacao == "Finalizado") { Txt_Situacao.Enabled = false; } else { Txt_Situacao.Enabled = true; } }