Exemple #1
0
 /// <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>
Exemple #2
0
        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.");
            }
        }
Exemple #3
0
        /// <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();
                    }
                }
            }
        }
Exemple #4
0
        /// <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;
            }
        }
Exemple #5
0
 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");
     }
 }
Exemple #6
0
 /// <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);
 }
Exemple #7
0
        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.");
            }
        }
Exemple #8
0
            /// <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");
                }
            }
Exemple #9
0
 /// <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);
 }
Exemple #10
0
        /// <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);
                }
            }
        }
Exemple #11
0
        /// <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);
        }
Exemple #12
0
        /// <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);
        }
Exemple #13
0
        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);
            }
        }
Exemple #14
0
        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");
            }
        }
Exemple #15
0
        /// <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);
                }
            }
        }
Exemple #16
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);
            }
        }
Exemple #17
0
        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();
                    }
                }
            }
        }