/// <summary> /// Converter a string em número decimal /// </summary> /// <param colName="o"></param> /// <returns></returns> public static Decimal ToDecimal(object stringValue, int scale = 4) { if (IsValidText(stringValue)) { try { //stringValue = stringValue.ToString().Replace(".", ","); stringValue = prepareStringToConvertDecimal(stringValue); var round = Math.Round(Convert.ToDecimal(stringValue), scale); return(round); } catch (OverflowException ex) { LoggerUtilIts.ShowExceptionLogs(ex); } catch (InvalidCastException ex) { XMessageIts.ExceptionJustMessage(ex, "Objeto informado não pode ser convertido em decimal"); } catch (FormatException ex2) { Console.WriteLine(ex2.InnerException); } } return(0.000m); }/// <summary>
public static void PrintReportAndGenerateSpool(int IdrptImage) { try { /* * Forma de geração do relatório. * * 1 = Gera e visualiza sem gravar no spool, * 2 = Gera e visualiza gravando no spool, * 3 = Gera somente em spool. */ var param = ParametroManager.FindParamByTypeParametro(Framework.Enumeradores.TypeParametro.report_engine); if (param.ValorParametro == "2") { new ReportSpoolDaoManager().PrintReportSpool(IdrptImage); } else if (param.ValorParametro == "3") { new ReportSpoolDaoManager().PrintReportSpool(IdrptImage, false); } else { //usar esse pq no azure nao tenho espaco pro spool por enquanto PrintReport(IdrptImage, false); } //nao podemos impedir a rotina de funcionar } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha ao gerar o relatório."); } }
/// <summary> /// Aguarde o fim da tarefa e invoca o menu se o contexto foi iniciado e o usuário logado corretamente /// </summary> private void waitRun() { try { _taskLogin.Wait(); } catch (Exception ex) { string msg = "Ocorreu um erro não identificado !"; LoggerUtilIts.GenerateLogs(ex, msg); XMessageIts.ExceptionJustMessage(ex, msg, "Falha no sistema !"); throw ex; }//se nao conseguiu logar deu ruim if (this._xFrmLogin.IsLogin == false) { //faz tudo denovo mas dessa vez fica amarrado //ou seja nao vai fechar o form ate logar corretamente this._xFrmLogin.ShowDialog(); } Console.WriteLine("Task Done"); if (this._xFrmMatrizFilial == null || this._xFrmMatrizFilial.IsFilial == false || this._xFrmMatrizFilial.IsCancel) { Application.Exit(); } else { Usuario user = _taskLogin.Result; //se algum deles existe if (user != null || UnitWork.Usuario != null) { //se o primeiro usuario falhou if (user == null) { //entao esse aqui ta ok user = UnitWork.Usuario; } //garante o fim da Task _taskLogin.Dispose(); //invoka a thread que amarra o menu principal var licManager = new LicenseDaoManager(); var lic = licManager.GetValidLicense(); if (lic != null) { var menu = new XFrmMenu(user, _application); verifyMenu(menu, lic.LicenseDataUnSerialized.ActiveMenus); Application.Run(menu); } else { Application.Exit(); } } } }
/// <summary> /// Fatura a comissao de venda gerandos os lançamentos financeiros. /// </summary> /// <param name="venda"></param> /// <returns></returns> public bool FaturarComissao(List <LancamentoFinanceiro> lancamentosComissoes, TypeFaturamentoComissao type) { //using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, // new TransactionOptions() { IsolationLevel = IsolationLevel.Serializable })) //{ var lancamento = lancamentosComissoes.First(); int idVenda = lancamento.IdVenda.Value; try { using (var ctx = new BalcaoContext()) { if (type == TypeFaturamentoComissao.Integral) { //limpe todas as comissoes ctx.ComissaoVendaUsuarioDao.Delete(c => c.IdVenda == idVenda); //recupere a venda var venda = ctx.VendaDao.Find(idVenda); //crie uma nova comissão var comissao = new ComissaoVendaUsuario(venda); //crie o lançamento da comissão comissao.Lancamentos.Add(lancamento); //crie a nova comissão ctx.ComissaoVendaUsuarioDao.Save(comissao); } else { //salva o lançamento foreach (var lancto in lancamentosComissoes) { lancto.CliFor = null; ctx.LancamentoFinanceiroDao.Save(lancto); var cv = ctx.ComissaoVendaUsuarioDao.Find(lancto.IdComissaoVenda); cv.FaturarComissao(); ctx.ComissaoVendaUsuarioDao.Update(cv); } } return(true);// XMessageIts.Mensagem("Comissão da venda nº: " + idVenda + " faturada com sucesso"); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Não foi possivel faturar comissão da venda nº: " + idVenda); throw ex; } }
public void UpdateCurrentImage(Image img) { try { var index = ParseUtil.ToInt(barStaticPageIndex.Caption) - 1; //atualiza a imagem atual this._util.Images.Insert(index, img); //atualiza no view this.picImagem.Image = img; this.picImagem.Invalidate(); } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha ao atualizar imagem"); } }
/// <summary> /// Cria o diretório informado se o mesmo não existir /// </summary> /// <param name="folder"></param> /// <returns></returns> True se o diretório foi criado caso contrário o diretório é inválido ou já existe public static bool CreateDirectory(string folder) { try { if (!Directory.Exists(folder)) { //Criamos um com o nome folder Directory.CreateDirectory(folder); return(true); } } catch (IOException ex) { string msg = "Falha ao criar o diretório " + folder + "\nDiretório inválido"; XMessageIts.ExceptionJustMessage(ex, msg); } return(false); }
public static void PrintReportWithParams(ReportImage rptImage) { try { /* * Forma de geração do relatório. * * 1 = Gera e visualiza sem gravar no spool, * 2 = Gera e visualiza gravando no spool, * 3 = Gera somente em spool. */ var param = ParametroManager.GetValorParamByCodigo("report_eng"); if (param == "1") { //new ReportSpoolDaoManager().PrintReportSpool(rptSelected.IdReport); //usar esse aqui no azure pq nao tenho espaco pro spool por enquanto //acho q faz mais sentido salvar a ref do relatorio gerado //do q os bytes do relatorio uma vez que o relatorio ja existe //entao so a pk dele ja seria o suficiente ReportUtil.PrintReport(rptImage); } else if (param == "2") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport); } else if (param == "3") { new ReportSpoolDaoManager().PrintReportSpool(rptImage.IdReport, false); } else { LoggerUtilIts.GenerateLogs(new Exception("Paramentro report_eng não existe.")); } //nao acontece nada //nao podemos impedir a rotina de funcionar } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha ao gerar o relatório."); } }
/// <summary> /// Gera um mensagem gráfica com os dados da exceção. /// </summary> /// <param colName="ex"></param> public DebugDao(Exception ex, T t, bool errorMessage = true) : base(ex.Message) { var type = ex.GetType(); var classe = t.GetType(); //Logs string dirLogDao = @"C:\logs\its\dao"; string title = "Relatório de logs\n"; string excecao = "Erros de persistência: " + type; string entity = "\nClasse de ocorrência: " + classe; string data = DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss"); var inner = ex.InnerException == null ? "Nenhuma exceção interna" : ex.InnerException.Message + ""; //Uso o método Write para escrever o arquivo que será adicionado no arquivo texto string msg = "Mensagem: " + ex.Message + "\n" + "Pilha de erros: " + ex.StackTrace + "\n" + "Exceção interna: " + inner; var fileName = type + "-" + data + ".txt"; var pathLog = Path.Combine(dirLogDao, fileName); //cria o dir FileManagerIts.CreateDirectory(dirLogDao); //write logs FileManagerIts.AppendTextFileException(pathLog, ex, new string[] { title, excecao, entity, data, msg }); //exibe o log na saida padrao LoggerUtilIts.ShowExceptionLogs(ex); if (errorMessage) { //avisa do erro XMessageIts.ExceptionJustMessage(ex, null, "Falha crítica no banco de dados"); } }
/// <summary> /// Executando comando de textos tipo DML: Data Maniputlation language /// </summary> /// <param name="querySql"></param> /// <returns></returns> A função retorna a primeira coluna ou a primeira linha de Identidade se uma nova linha foi inserida, null em caso de falha. public object ExecuteQueryScalar(string querySql) { if (OpenConnection()) { try { //se a conexao foi aberta using (this.connection) { //criando o comando PrepareCommand(CommandType.Text, querySql); //executa o comando no banco de dados return(sqlCommand.ExecuteScalar()); } } catch (SqlException ex) { XMessageIts.ExceptionJustMessage(ex, "Falha na conexão com o banco de dados"); } } //falhou return(null); }
/// <summary> /// Compacta uma lista de arquivo em um arquivo .zip /// </summary> /// <param name="files"></param>Arquivos /// <param name="zipOut"></param>Arquivo .zip de saida /// <returns></returns>true compactado ou false erro public static bool CompressFiles(string[] files, string zipOut) { using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) { try { // percorre todos os arquivos da lista foreach (string f in files) { // se o item é um arquivo if (File.Exists(f)) { // Adiciona o arquivo na pasta raiz dentro do arquivo zip zip.AddFile(f, ""); } // se o item é uma pasta else if (Directory.Exists(f)) { // Adiciona a pasta no arquivo zip com o nome da pasta zip.AddDirectory(f, new DirectoryInfo(f).Name); } } // Salva o arquivo zip para o destino zip.Save(zipOut); //tudo certo return(true); } catch (Exception ex) { LoggerUtilIts.ShowExceptionLogs(ex); XMessageIts.ExceptionJustMessage(ex, "Falha ao compactar o arquivo"); //deu merda return(false); } } }
/// <summary> /// Obtém um objeto da tabela pela chave primária. /// </summary> /// <returns>Um objeto do banco de dados</returns> public async Task <T> FindAsync(params object[] key) { if (key == null || String.IsNullOrWhiteSpace(key.ToString())) { return(null); } try { return(await DbSet.FindAsync(key)); } catch (InvalidOperationException ex) { LoggerUtilIts.ShowExceptionLogs(ex); return(null); } catch (Exception ex) { string msg = "Falha localizar objeto pela chave primária."; XMessageIts.ExceptionJustMessage(ex, msg); } return(null); }
/// <summary> /// Cria um contexto /// </summary> /// <returns></returns>O Contexto private BalcaoContext createCtx() { try { //retorna o pai this._ctx = new BalcaoContext(); using (var ctxIts = new ITSolutionContext()) { ctxIts.LazyLoading(false); ctxIts.LembreteDao.Find(1); } //apenas invoca o mesmo para criação das tabelas using (var ctxRpt = new ReportContext()) { ctxRpt.LazyLoading(false); ctxRpt.ReportGroupDao.Find(1); } using (var ctxCambio = new CambioContext()) { ctxCambio.LazyLoading(false); ctxCambio.MoedaDao.Find(1); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha na inicialização do controlador do contexto!", "Falha no Sistema"); Application.Exit(); Environment.Exit(0); } return(_ctx); }
private void LoadEventosFuncionario() { try { var funcSelect = lstFuncionarios.SelectedItem as FuncionarioCompetencia; if (funcSelect != null) { gridControlFichaFinanceira.DataSource = funcSelect.FichaFinanceiraFuncionario.ToList(); //calcula os valores var totalBruto = 0M; var descontos = 0M; var liquido = 0M; foreach (var fichaFinanceira in funcSelect.FichaFinanceiraFuncionario) { if (fichaFinanceira.Evento.TipoEvento == TypeEvento.Provento) { totalBruto += fichaFinanceira.ValorMovimento; } if (fichaFinanceira.Evento.TipoEvento == TypeEvento.Desconto) { descontos += fichaFinanceira.ValorMovimento; } } liquido = totalBruto - descontos; lbTotalBruto.Text = totalBruto.ToString("n2"); lbTotalDescontos.Text = descontos.ToString("n2"); lbTotalLiquido.Text = liquido.ToString("n2"); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex); } }
public AbstractAttach(string path) { try { this.DataAnexo = DateTime.Now; this.PathFile = path; //a extensao eh obtida a partir do PathFile this.FileName = Path.GetFileName(path); if (File.Exists(PathFile)) { this.DataFile = FileManagerIts.GetBytesFromFile(path); //por padrao eh o nome do arquivo sem a extensao //a extensao eh obtida a partir do PathFile this.IdentificacaoAnexo = Path.GetFileNameWithoutExtension(path); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha na criação do anexo"); } }
/// <summary> /// Cria esse banco de dados se ele nao existir /// </summary> /// <param colName="nameOrConnectionString"></param> /// <param name="nameOrConnectionString"></param> /// <param name="typeConnection"></param> public DbContextIts(string nameOrConnectionString, TypeConnection typeConnection = TypeConnection.SqlServer) //tenta codificar a string de conexão ou usa a string original : base(nameOrConnectionString) { //impedir que o EF trunque os valores decimais > 2 casas SqlProviderServices.TruncateDecimalsToScale = false; this.IsDispose = false; //guarda a referencia da string this.NameOrConnectionString = nameOrConnectionString; if (this.NameOrConnectionString == null) { throw new Exception("Connection String not found"); } Exception exception = null; try { this.Database.CreateIfNotExists(); //avise q o banco deve ser dropado caso haja alteracao Database.SetInitializer <DbContextIts> (new DropCreateDatabaseIfModelChanges <DbContextIts>()); if (typeConnection == TypeConnection.SqlServer) { try { //string conn = AppConfigManager.Configuration.ConnectionStringRuntime; this.ConnectionSql = new ConnectionFactoryIts(NameOrConnectionString); } catch (Exception ex) { //dificilmente vai dar erro se conseguiu chegar ate aqui exception = ex; } } //others } catch (InvalidOperationException ex) { exception = ex; } catch (Exception ex) { exception = ex; } if (exception != null) { XMessageIts.ExceptionJustMessage(exception, null, "Falha na inicialização do controle do Sistema"); LoggerUtilIts.GenerateLogs(exception); if (exception.GetType() != typeof(SqlException)) { Application.Exit(); Environment.Exit(0); } } }
/// <summary> /// Salva a edição da competência da tela. /// </summary> /// <param name="novaCompetencia"></param> /// <param name="movsRemovidos"></param> /// <returns></returns> public bool SalvarMovimentoEditado(CompetenciaFolha novaCompetencia, List <FichaFinanceiraFuncionario> movsRemovidos = null) { try { //verifica se a competencia é valida. se não é retorne falso if (!IsCompetenciaValid(novaCompetencia)) { return(false); } using (var ctx = new BalcaoContext()) { var compCurrent = ctx.CompetenciaFolhaDao.Find(novaCompetencia.IdCompetencia); //se a qtd de itens for igual, somente atualize cada item if (compCurrent.FuncionariosCompetencia.Count == novaCompetencia.FuncionariosCompetencia.Count) { foreach (var func in compCurrent.FuncionariosCompetencia) { if (movsRemovidos.Count > 0) { foreach (var evtRemovidos in movsRemovidos) { var del = compCurrent.FuncionariosCompetencia.ToList() .Where(funcR => funcR.IdFuncionarioCompetencia == evtRemovidos.IdFuncionarioCompetencia) .FirstOrDefault() .FichaFinanceiraFuncionario .Where(fic => fic.IdFichaFinanFunc == evtRemovidos.IdFichaFinanFunc) .FirstOrDefault(); ctx.FichaFinanceiraFuncionarioDao.Delete(del); } } // \/ } foreach (var funcCompCurrent in compCurrent.FuncionariosCompetencia) { //atualiza os valores do funcionario da competencia em edicao funcCompCurrent .Update(novaCompetencia.FuncionariosCompetencia .Where(fc => fc.IdFuncionarioCompetencia == funcCompCurrent.IdFuncionarioCompetencia) .FirstOrDefault()); //percorre a ficha financeira do funcionario e atualiza cada evento com o valor novo foreach (var ficha in funcCompCurrent.FichaFinanceiraFuncionario) { var fichaNova = novaCompetencia.FuncionariosCompetencia .Where(f => f.IdCompetencia == funcCompCurrent.IdCompetencia && f.IdFuncionarioCompetencia == funcCompCurrent.IdFuncionarioCompetencia) .FirstOrDefault().FichaFinanceiraFuncionario .Where(fi => fi.IdFuncionarioCompetencia == funcCompCurrent.IdFuncionarioCompetencia && fi.IdEvento == ficha.IdEvento) .FirstOrDefault(); if (fichaNova != null) { ficha.Update(fichaNova); } else { fichaNova = novaCompetencia.FuncionariosCompetencia .Where(f => f.IdCompetencia == funcCompCurrent.IdCompetencia && f.IdFuncionarioCompetencia == funcCompCurrent.IdFuncionarioCompetencia) .FirstOrDefault().FichaFinanceiraFuncionario .Where(fi => fi.IdFuncionarioCompetencia == funcCompCurrent.IdFuncionarioCompetencia && fi.IdFichaFinanFunc == 0 && fi.IdEvento == ficha.IdEvento) .FirstOrDefault(); //funcCompCurrent.FichaFinanceiraFuncionario.Add(fichaNova); } } } } return(ctx.CompetenciaFolhaDao.Update(compCurrent)); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex); return(false); } }
private void btnSalvar_Click(object sender, EventArgs e) { if (btnSalvar.Text.Equals("OK") && _lancAnt != null && _lancAnt.StatusLancamento == TypeStatusLancamentoFinanceiro.Pago) { this.Dispose(); } else { LancamentoFinanceiro novo = indexarDados(); var status = (TypeStatusLancamentoFinanceiro)cbStatusLancamento.SelectedIndex; if (novo != null) { try { var manager = new LancamentoDaoManager(); bool flag = false; if (_lancAnt == null) { flag = manager.SaveLancamento(novo); if (flag) { XMessageIts.Mensagem("Lancamento incluso com sucesso!\n\n" + "Nº Lançamento: " + novo.IdLancamento); } } else { flag = manager.UpdateLancamento(novo); if (flag) { XMessageIts.Mensagem("Lancamento atualizado com sucesso!"); //atualiza no grid this._lancAnt = novo; } } if (flag) { //se setei como pago if (status == TypeStatusLancamentoFinanceiro.Pago) { var lista = new List <LancamentoFinanceiro>(); //use esse status pq ainda nao foi pago se nao ira confundir o usuario //verificar se eh null, pq na criacao do lancamento ele eh null, somenta na edicao ele é 'fill' if (this._lancAnt != null) { novo.StatusLancamento = _lancAnt.StatusLancamento; } //recupera o lancto var r = LancamentoDaoManager.FindCpl(novo); lista.Add(r); //chama o wizard para realizar a baixa var wizard = new XFrmWizardBaixaLancamento(lista); wizard.ShowDialog(); //se foi cancelada a baixa if (wizard.IsBaixa == false) { //consistencia o status do lançamento novo.StatusLancamento = TypeStatusLancamentoFinanceiro.Aberto; //invoca o validar lançamento manager.UpdateLancamento(novo); } novo.Update(r); } //always this.Dispose(); } } catch (Exception ex) { XMessageIts.ExceptionJustMessage(ex, "Falha durante a persistência do lançamento!"); this.Dispose(); } } } }