示例#1
0
        /// <summary>
        /// Visualiza um relatório.
        /// <br>
        /// O relatório sempre será escrito no disco.
        /// </br>
        /// O designer é montando manualmente.
        /// </summary>
        /// <param name="report"></param>
        public static void PrintReportOverwrite(ReportImage report)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    var    current = ctx.ReportImageDao.Find(report.IdReport);
                    string path    = Path.Combine(Application.StartupPath, "Reports", current.ReportName + ".repx");

                    FileManagerIts.WriteBytesToFile(path, current.ReportImageData);

                    //carregue a estrutura do relatório
                    XtraReport xreport = XtraReport.FromFile(path, true);

                    //objeto para gerar a tela de parametros
                    ReportPrintTool reportPrintTool = new ReportPrintTool(xreport);

                    //chama a tela de parametros
                    xreport.CreateDocument();

                    //gera o relatorio
                    PrintPreviewFormEx preview = new PrintPreviewFormEx();
                    preview.PrintingSystem = xreport.PrintingSystem;
                    //exibe o relatorio
                    preview.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Erro("Falha gerar relatório\n\n" + ex.Message, "Atenção!!!");
                LoggerUtilIts.GenerateLogs(ex);
            }
        }
示例#2
0
        private void btnSelecionarUpdateFile_Click(object sender, EventArgs e)
        {
            var op = openFilePkg.ShowDialog();

            if (op == DialogResult.OK)
            {
                string pkgFile = openFilePkg.FileName;
                txtUpdateFile.Text = pkgFile;

                try
                {
                    var bytesFile = FileManagerIts.GetBytesFromFile(openFilePkg.FileName);
                    this._pacote = SerializeIts.DeserializeObject <Package>(bytesFile);
                    loadPackage(this._pacote);
                }
                catch (Exception ex)
                {
                    string msg = "O pacote de atualização informado é inválido!"
                                 + "\n\nContate o administrador para aplicar atualização.";

                    XMessageIts.ExceptionMessageDetails(ex, msg, "Atenção");

                    LoggerUtilIts.GenerateLogs(ex, msg);
                }
            }
        }
示例#3
0
        public int CheckVendasLancamentos()
        {
            using (var ctx = new BalcaoContext())
            {
                ctx.LazyLoading(false);
                try
                {
                    string database = ctx.Database.Connection.Database;
                    //efetiva o status do venda no banco
                    string procedure1 = "[" + database + "].[dbo].[P_ATUALIZAR_VENDAS]";
                    //efetiva o status do lançamento no banco
                    string procedure2 = "[" + database + "].[dbo].[P_ATUALIZAR_LANCAMENTOS]";

                    //SqlParameter parametro = new SqlParameter("@Nome", ano);
                    //new SqlParameter[] { parametro }
                    ctx.ConnectionSql.ExecuteProcedure(procedure1);
                    ctx.ConnectionSql.ExecuteProcedure(procedure2);

                    //obtem e atualiza as cotações do sistema
                    new WSBacenCambio().GetCurrencyExchange();

                    return(new VendaFilterManager().FindVendasEmAberto());
                }
                catch (Exception ex)
                {
                    LoggerUtilIts.GenerateLogs(ex);
                    throw ex;
                }
            }
        }
示例#4
0
        /// <summary>
        /// Retorna todos os dados da empresa relacionados ao CNPJ informado
        /// </summary>
        /// <param name="cnpj"></param>CNPJ
        /// <returns></returns>LayoutReceitaWS
        public static LayoutReceitaWS GetDataFromCNPJ(string cnpj)
        {
            try
            {
                cnpj = cnpj.FixString();

                string json = JSONHelper.GetJSONString(receitaWsUrl + cnpj);

                LayoutReceitaWS r = JsonConvert.DeserializeObject <LayoutReceitaWS>(json);

                if (r.Status == "ERROR")
                {
                    return(null);
                }

                return(r);
            }
            catch (Exception ex)
            {
                Console.WriteLine("WS not responding " + ex.Message);
                LoggerUtilIts.ShowExceptionMessage(ex);
                LoggerUtilIts.GenerateLogs(ex);
                return(null);
            }
        }    /// <summary>
示例#5
0
        public void UpdateParamFromCodigo(Parametro param)
        {
            try
            {
                using (var ctx = new BalcaoContext())
                {
                    var current = ctx.ParametroDao.Where(p =>
                                                         p.CodigoParametro == param.CodigoParametro)
                                  .First();

                    current.Update(param);

                    ctx.ParametroDao.Update(current);
                }
            }
            catch (Exception ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
                if (!string.IsNullOrEmpty(param.DescricaoParametro))
                {
                    XMessageIts.Erro("Não foi possível atualizar a preferência:\n" + param.DescricaoParametro);
                }
                else
                {
                    XMessageIts.Erro("Não foi possível atualizar uma ou mais preferência");
                }
            }
        }
示例#6
0
        /// <summary>
        /// Escreve um array de bytes no arquivo selecionado
        /// </summary>
        /// <param name="pathFile"></param>Arquivo a ser escrito
        /// <param name="_ByteArray"></param>bytes a ser escritos
        /// <returns></returns>true se escrito com sucesso caso contrário false
        public static bool WriteBytesToFile(string pathFile, byte[] _ByteArray)
        {
            //http://www.digitalcoding.com/Code-Snippets/C-Sharp/C-Code-Snippet-Save-byte-array-to-file.html
            try
            {
                // Open file for reading
                FileStream fs = new FileStream(pathFile, FileMode.Create, FileAccess.Write);

                // Writes a block of bytes to this stream using data from a byte array.
                fs.Write(_ByteArray, 0, _ByteArray.Length);

                // close file stream
                fs.Close();

                return(true);
            }
            catch (Exception _Exception)
            {
                // Error
                Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());

                LoggerUtilIts.GenerateLogs(_Exception);
                // error occured, return false
                return(false);
            }
        }
示例#7
0
        /// <summary>
        /// Criar/Alterar relatorio carregado para o cache
        /// </summary>
        /// <param name="reportImageAnt"></param>
        public RbbFrmReportEditorNew(ReportImage reportImageAnt)
            : this()
        {
            this.reportImageAnt = reportImageAnt;

            try
            {
                if (reportImageAnt.IdReport == 0)
                {
                    reportDesigner1.CreateNewReport();
                    reportDesigner1.ActiveDesignPanel.Report.DisplayName = reportImageAnt.ReportDescription;
                }
                else
                {
                    //abri o relatório selecionado
                    var path = new ReportDaoManager().LoadToCache(this.reportImageAnt);
                    reportDesigner1.OpenReport(path);
                    reportDesigner1.ActiveDesignPanel.Name        = this.reportImageAnt.ReportName;
                    reportDesigner1.ActiveDesignPanel.Report.Name = this.reportImageAnt.ReportName;
                }
                this.sqlDataSource = new SqlDataSource(ReportUtil.GetParamDataSource());
                reportDesigner1.ActiveDesignPanel.Report.DataSource = sqlDataSource;
            }
            catch (Exception ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
            }
        }
示例#8
0
        /// <summary>
        /// Abre a conexão com o banco
        /// </summary>
        /// <returns></returns>
        public virtual bool OpenConnection()
        {
            Exception erro = null;

            try
            {
                this.connection = new SqlConnection(connectionString);

                //app.Catalog;
                this.connection.Open();
            }
            catch (ConfigurationErrorsException ec)
            {
                erro = ec;
            }
            catch (SqlException es)
            {
                erro = es;
            }
            catch (InvalidOperationException ex)
            {
                erro = ex;
            }

            if (erro != null)
            {
                LoggerUtilIts.GenerateLogs(erro, "Falha ao criar uma conexão!");
                return(false);
            }

            return(true);
        }
        private void wizardPage1_PageCommit(object sender, EventArgs e)
        {
            XFrmWait.ShowSplashScreen("Gerando lançamentos");
            this.completionWizardPage1.AllowFinish = false;

            var manager = new LancamentoDaoManager();

            this._lancamentoList.ForEach(delegate(LancamentoFinanceiro lan)
            {
                try
                {
                    if (_action == FormTypeAction.Salvar)
                    {
                        manager.SaveLancamento(lan);
                    }
                    else
                    {
                        manager.Reparcelar(_lancamentoAtual, lan);
                    }
                }
                catch (Exception ex)
                {
                    XMessageIts.Erro("Falha no parcelamento !\nVerifique a pasta de logs ou contate o administrador", "Operação cancelada");
                    LoggerUtilIts.GenerateLogs(ex);
                    this.Dispose();
                    return;
                }
            });
            this.completionWizardPage1.AllowFinish = true;
            XFrmWait.CloseSplashScreen();
        }
示例#10
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();
                    }
                }
            }
        }
示例#11
0
        public bool isCancelarVenda(Venda venda)
        {
            if (venda.StatusVenda == TypeStatusVenda.Cancelada)
            {
                XMessageIts.Advertencia("A venda \"" + venda.IdVenda + "\" já está cancelada",
                                        "Atenção");
                return(false);
            }
            else if (venda.StatusVenda != TypeStatusVenda.Paga || venda.StatusVenda == TypeStatusVenda.Parcial)
            {
                using (var ctx = new BalcaoContext())
                {
                    try
                    {
                        var v        = ctx.VendaDao.Find(venda.IdVenda);
                        var parcelas = v.Parcelas.ToList();

                        var parcela = parcelas.First();

                        //se a primeira parcela foi paga
                        if (parcela.DataPagamento != null)
                        {
                            //faz quantos dias q foi pago
                            var dias = DataUtil.CalcularDias(parcela.DataPagamento.Value, DateTime.Now);

                            //prazo maximo para cancelamento
                            if (dias > 19)
                            {
                                XMessageIts.Advertencia("O prazo para cancelamento é no máximo 15 dias utéis !",
                                                        "Atenção limite de tempo para cancelamento estogato!");
                                return(false);
                            }
                        }

                        //se
                        //se todas as parcela foram pagas
                        if (parcelas.Count(p => p.DataPagamento != null) == parcelas.Count)
                        {
                            XMessageIts.Erro("A venda \"" + venda.IdVenda + "\" foi totalmente paga e não pode cancelada !",
                                             "Atenção");
                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        LoggerUtilIts.GenerateLogs(ex, "Falha na checagem de cancelamento de vendas");
                        return(true);
                    }
                }
            }
            else
            {
                XMessageIts.Advertencia("Status da venda \"" + venda.IdVenda + "\" não permite cancelamento !");
                return(false);
            }

            return(true);
        }
示例#12
0
        public Usuario IsLogin(string logon, string senha)
        {
            Usuario user = null;

            try
            {
                //codifica a senha pois ela foi criptografa no banco
                //entao nao sabemos qual é a verdadeira senha
                var result = ASCIIEncodingIts.Coded(senha);

                using (var ctx = new BalcaoContext())
                {
                    if (logon.IsContainsLetters())

                    {
                        //busca o User com a senha codificada
                        user = ctx.UsuarioDao
                               .Where(u => u.NomeUtilizador == logon && u.Senha == result).First();
                    }
                    else
                    {
                        //tente pelo ID
                        var id = ParseUtil.ToInt(logon);
                        user = ctx.UsuarioDao
                               .Where(u => u.IdUsuario == id && u.Senha == result).First();
                    }
                    //pega ele
                    return(user);
                }
            }

            // Exceptions:
            //   T:System.ArgumentNullException:
            //     source is null.
            //
            //   T:System.InvalidOperationException:
            //     The source sequence is empty.
            catch (ArgumentNullException ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
            }
            catch (InvalidOperationException ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
            }
            catch (System.Reflection.TargetInvocationException ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
                XMessageIts.ExceptionMessage(ex);
            }
            catch (Exception ex)
            {
                LoggerUtilIts.GenerateLogs(ex);
                XMessageIts.ExceptionMessage(ex);
            }
            return(user);
        }
示例#13
0
        /// <summary>
        /// Digitaliza uma imagem na impressora padrão
        /// </summary>
        /// <returns></returns>
        public static string Scanning()
        {
            try
            {
                //get list of devices available
                List <string> devices      = WIAScanner.GetDevices();
                List <string> devicesNames = new List <string>();
                foreach (string device in devices)
                {
                    devicesNames.Add(device);
                }
                //check if device is not available
                if (devicesNames.Count == 0)
                {
                    XMessageIts.Advertencia("Nenhum dispositivo(s) impressora(s) ativo foi encontrado.", "Aviso");
                    return(null);
                }

                var deviceName = devicesNames[0];
                //get images from scanner
                List <Image> images = WIAScanner.Scan(deviceName);

                //nome aleatorio
                string pathDigitalizacao = getPathDigitalizacao();
                string pathTemp          = getPathTemp(pathDigitalizacao);

                foreach (Image image in images)
                {
                    //save scanned image into specific folder
                    //salva toda imagem digitalizada no disco ridigo
                    image.Save(pathDigitalizacao, ImageFormat.Jpeg);
                    //salva o temporario
                    image.Save(pathTemp, ImageFormat.Jpeg);

                    return(pathTemp);
                }
            }
            catch (NullReferenceException ex)
            {
                //foi cancelado durante a digitalização
                Console.WriteLine("Digitalização cancelada: " + ex.Message);
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                XMessageIts.ExceptionMessageDetails(ex, "Falha na comunicação com a impressora\n\n" +
                                                    "Certifique que possui uma impressora padrão local e ativa", "Atenção");

                LoggerUtilIts.GenerateLogs(ex);
            }
            catch (Exception exc)
            {
                XMessageIts.ExceptionMessageDetails(exc, "Falha na digitalização", "Falha crítica - Erro não identificado");
                LoggerUtilIts.GenerateLogs(exc);
            }
            return(null);
        }
示例#14
0
        /// <summary>
        /// Obtem a cotação das principais moedas referidas no sistema.
        /// </summary>
        /// <returns></returns>
        public CurrencyExchange GetCurrencyExchange()
        {
            CurrencyExchange cotacao = new CurrencyExchange();

            using (var ctx = new CambioContext())
            {
                DateTime data = DateTime.Now.ToDateZerada();

                if (data.DayOfWeek == DayOfWeek.Saturday)
                {
                    data = data.AddDays(-1);
                }
                else if (data.DayOfWeek == DayOfWeek.Sunday)
                {
                    data = data.AddDays(-2);
                }

                //localize as cotações do dia
                var cotExist = ctx.CotacaoMonetariaDao
                               .Where(c => c.DataCotacao.ToDateZerada() == data)
                               .ToList();

                if (cotExist.Count >= 9)
                {
                    //localizei primeiro a cotação no banco
                    //isso aqui eh mais rapido q obter da internet
                    cotacao.Cotacoes.AddRange(cotExist);
                }
                else
                {
                    var moedas = ctx.MoedaDao.FindAll();

                    foreach (var m in moedas)
                    {
                        try
                        {
                            //obtem do webservice mesmo
                            //persiste a cotação
                            CotacaoMonetaria cotNew = getCotacao((TypeCodigoBacen)m.CodigoWSCompra,
                                                                 (TypeCodigoBacen)m.CodigoWSVenda);

                            //sempre add
                            cotacao.AddCurrencyExchange(cotNew);

                            SaveCotacaoMonetaria(ctx, cotNew);
                        }
                        catch (Exception ex)
                        {
                            LoggerUtilIts.GenerateLogs(ex, "Falha no WSBacenCambio", "Falha na cotação cambial.");
                        }
                    }
                }
            }
            return(cotacao);
        }
示例#15
0
 /// <summary>
 /// Obtém a lista de todos os elementos da tabela.
 ///
 /// EntityFramework cannot convert DateTime.Date to SQL.
 /// So, it fails to generate expected SQL.
 /// Instead of that you can use DbFunctions.TruncateTime() method if you want to get Date part only:
 /// DbFunctions.TruncateTime(prop)
 /// </summary>
 /// <returns>A Queryable com todos os dados do objeto do banco de dados</returns>
 public DbSet <T> Controller()
 {
     try
     {
         return(DbSet);
     }
     catch (Exception ex)
     {
         LoggerUtilIts.GenerateLogs(ex, "Falha ao retorna o controlador do dao.");
     }
     return(null);
 }
示例#16
0
        /// <summary>
        /// Salva o relatorio que está aberto no banco
        /// </summary>
        /// <param name="reportDesigner"></param>
        /// <param name="report"></param>
        public ReportImage SaveReport(XRDesignMdiController reportDesigner, ReportImage report)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //objeto designer do relatório
                    var xtraReport = reportDesigner.ActiveDesignPanel.Report;

                    //nome setado no relatório
                    //report.DefaultName = xtraReport.Name;

                    //gera um nome aleatorio utilizando o nome setado no dashboard
                    string reportPath = generatePath(report, ctx);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        //salva o relatorio
                        reportDesigner.ActiveDesignPanel.SaveReport(reportPath);

                        //salva o layout em memoria
                        xtraReport.SaveLayout(ms);

                        xtraReport.SaveLayoutToXml(reportPath + ".xml");

                        //salva o relatorio no disco em formato repx
                        xtraReport.SaveLayout(reportPath);

                        //obtem os bytes do relatorio
                        var bytes = ms.GetBuffer();

                        //gerar os bytes do arquivo
                        report.ReportImageData = bytes;

                        if (ctx.ReportImageDao.Save(report))
                        {
                            return(report);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Houve um erro ao salvar relatório.\n\n"
                                        + ex.Message);

                LoggerUtilIts.GenerateLogs(ex);
            }

            return(null);
        }
示例#17
0
        private void setCurrentUser(Usuario user)
        {
            this._currentUser = user;

            if (user == null)
            {
                MessageBoxBlack.Advertencia("Usuário operador não informado ao menu prinicpal", "Atenção");

                LoggerUtilIts.GenerateLogs(new Exception("User not found for XFrmMenu"));

                Application.Exit();
            }
            if (UnitWork.Filial == null)
            {
                navBarUnitWork_LinkClicked(null, null);
            }

            UnitWork.Usuario = user;

            //Define o skin do menu utilizado pelo usuário
            string skin = user.Skin;

            //se existe um
            if (!string.IsNullOrEmpty(skin))
            {
                SkinHelper.InitSkinGallery(skinRibbonGalleryBarItem1);
                defaultLookAndFeel1.LookAndFeel.SkinName = skin;
            }

            //DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = skin;

            //DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Visual Studio 2013 Blue";
            //DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Office 2013 Light Gray";

            //Eh mais elegante e legivel o nome da pessoa do que o nickname
            this.lbUserLogado.Caption = user.NomeUsuario;
            this.dtAtual.Caption      = DateTime.Now.Date.ToShortDateString();


            //somente eu poss usar essa funcionalidade
            if (user.NomeUtilizador == "filipe" /*
                                                || user.NomeUtilizador == "admin"
                                                || user.NomeUtilizador == "gercy" && user.IsAdmin*/)
            {
                this.ribbonPageGroupInformatica.Visible = true;

                this.ribbonPageGroupSystem.Visible = true;
                this.ribbonPageGroupUtil.Visible   = true;
                this.barBtnRestauracao.Visibility  = BarItemVisibility.Always;
            }
        }
示例#18
0
        /// <summary>
        /// Salva ou atualiza cotação
        /// </summary>
        /// <param name="ctx"></param> Contexto
        /// <param name="cot"></param>Cotação a ser salva
        private void SaveCotacaoMonetaria(CambioContext ctx, CotacaoMonetaria cotacao)
        {
            //use o codigo de compra mesmo
            long codigo = cotacao.Moeda.CodigoWSCompra;

            try
            {
                //recupera a moeda pelo codigo de compra/venda
                Moeda moeda = cotacao.Moeda;

                if (moeda == null || moeda.IdMoeda == 0)
                {
                    moeda = ctx.MoedaDao.First(m =>
                                               m.CodigoWSCompra == codigo ||
                                               m.CodigoWSVenda == codigo);
                }

                try
                {
                    //recupera a cotação
                    var current = ctx.CotacaoMonetariaDao
                                  .First(c => c.DataCotacao.Date == cotacao.DataCotacao &&
                                         c.IdMoeda == moeda.IdMoeda);

                    //e atualiza ela
                    current.ValorCompra = cotacao.ValorCompra;
                    current.ValorVenda  = cotacao.ValorVenda;
                    current.DataCotacao = cotacao.DataCotacao;
                    //atualiza no banco
                    ctx.CotacaoMonetariaDao.Update(current);
                }
                catch (Exception ex)
                {
                    //nao tem cotação add
                    Console.WriteLine("Criando um nova cotação: =>" + ex.Message);

                    //FK
                    cotacao.IdMoeda = moeda.IdMoeda;
                    //salva no banco
                    ctx.CotacaoMonetariaDao.Save(cotacao);
                }
            }
            catch (Exception ex)
            {
                string msg   = "Moeda não foi localizada";
                string title = "Problema na rotina de atualização cambial";
                XMessageIts.Advertencia(msg, title);

                LoggerUtilIts.GenerateLogs(ex, msg + "\n" + title);
            }
        }
示例#19
0
            internal void SetParams(XtraReport report)
            {
                try
                {
                    ParameterCollection newParams = new ParameterCollection();
                    foreach (Parameter p in report.Parameters)
                    {
                        Parameter param = new Parameter();
                        param.Name = p.Name;
                        // Specify other parameter properties.
                        param.Type = p.Type;
                        //description
                        param.Description = p.Description;

                        //nao consegui usar manipulavel aqui entao vai ficar assim
                        //deixe os paramentros visiveis
                        param.Visible = true;

                        if (param.Name.Equals("pDataInicial"))
                        {
                            param.Value = this.DataInicio.Date;
                        }

                        else if (param.Name.Equals("pDataFinal"))
                        {
                            param.Value = this.DataFim.Date;
                        }

                        else if (param.Name.Equals("pConta"))
                        {
                            param.Value = this.CodConta;
                        }

                        newParams.Add(param);
                    }

                    report.RequestParameters = false;
                    report.Parameters.Clear();
                    //add os novos parametros
                    foreach (var p in newParams)
                    {
                        report.Parameters.Add(p);
                        p.Visible = false;
                    }
                }
                catch (Exception ex)
                {
                    XMessageIts.Mensagem("Um ou mais parâmentros do relátorio não foram setados.");
                    LoggerUtilIts.GenerateLogs(ex);
                }
            }
示例#20
0
        /// <summary>
        /// Cria um XtraReport a partir do nome do relatório salvo no banco.
        /// </summary>
        /// <param name="reportName"></param>
        /// <param name="showParams"></param>
        /// <returns></returns>
        public static XtraReport CreateReportByName(string reportName, bool showParams = true)
        {
            using (var ctx = new ReportContext())
            {
                try
                {
                    var    current = ctx.ReportImageDao.First(r => r.ReportName == reportName);
                    string dir     = Path.GetTempPath().Replace("Temp", "Reports");

                    FileManagerIts.CreateDirectory(dir);

                    string path = Path.Combine(dir, current.ReportName + ".repx");

                    //salva o report no disco
                    FileManagerIts.WriteBytesToFile(path, current.ReportImageData);

                    //carregue a estrutura do relatório
                    XtraReport report = XtraReport.FromFile(path, true);


                    if (showParams == false)
                    {
                        //nao exibe
                        foreach (var p in report.Parameters)
                        {
                            p.Visible = false;
                        }
                    }

                    //objeto para chamar a tela de parametros
                    ReportPrintTool reportPrintTool = new ReportPrintTool(report);

                    ReportUtil.SetParamDataSource(report.DataSource as SqlDataSource, AppConfigManager.Configuration.AppConfig);
                    //criar o documento
                    report.CreateDocument();

                    //libera memoria da ferramenta
                    reportPrintTool.Dispose();

                    //retorna o relatorio
                    return(report);
                }
                catch (Exception ex)
                {
                    XMessageIts.ExceptionMessageDetails(ex, "Impossível gerar relatório !", "Falha ao gerar relatório");
                    LoggerUtilIts.GenerateLogs(ex);
                    return(null);
                }
            }
        }
示例#21
0
        //Chamado internamente
        private async static void startTask(Task task, string taskName = null, Form form = null)
        {
            if (form != null)
            {
                form.Enabled = false;
            }
            TaskName = taskName;



            try
            {
                //enfilera a tarefa
                Task taskWork = Task.Run(() => task);
                //exibie a barra de progresso
                try { SplashScreenManager.ShowForm(form, typeof(XFrmWait)); }
                catch (Exception ex)
                {
                    /*Nao importa*/
                    Console.WriteLine("Exceção lançada ao exibir SplashScreenManager =>  TaskName->" + taskName
                                      + "\nmsg -> " + ex.Message);
                }
                //espera a task acabar
                await taskWork;
                //delay
                Thread.Sleep(100);

                //termine a barra de progresso
                try { SplashScreenManager.CloseForm(); }
                catch (Exception ex)
                {
                    /*Nao importa*/
                    Console.WriteLine("Exceção lançada ao fechar SplashScreenManager =>  TaskName->" + taskName
                                      + "\nmsg -> " + ex.Message);
                }
            }
            catch (Exception ex)
            {
                LoggerUtilIts.GenerateLogs(ex, "Tarefa : " + taskName);
                XMessageIts.ExceptionMessageDetails(ex, "Falha na execução da tarefa!");
            }



            if (form != null)
            {
                form.Enabled = true;
            }
        }
示例#22
0
 private bool showDashboard()
 {
     if (this._dashboardImage != null)
     {
         try {
             new DashboardDaoManager().LoadDashboard(_dashboardImage, dashboardViewer1);
         }
         catch (Exception ex)
         {
             LoggerUtilIts.GenerateLogs(ex);
             XMessageIts.Erro("Dashboard não pode ser carregado!");
         }
     }
     return(true);
 }
示例#23
0
 public static ContaBancaria GetContaBancaria()
 {
     using (var ctx = new BalcaoContext())
     {
         try
         {
             return(ctx.ContaBancariaDao.First());
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
             LoggerUtilIts.GenerateLogs(ex, "Conta bancária do sistema não encontrada");
             return(null);
         }
     }
 }
示例#24
0
        /// <summary>
        /// Atualiza o dashboard existente no banco
        /// </summary>
        /// <param name="dashboardDesigner">Designer do dashboard</param>
        /// <param name="dash">Dashboard a ser persistido</param>
        /// <returns>O Dashboard persistido no banco ou null</returns>
        public bool UpdateDashboard(DashboardDesigner dashboardDesigner, DashboardImage dash)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //nome padrão
                    dash.DefaultName = dashboardDesigner.ActiveControl.Name;

                    //gera um nome aleatorio utilizando o nome setado no dashboard
                    string dashPath = generatePath(dash, ctx);
                    // using (MemoryStream ms = new MemoryStream())

                    //objeto designer do dashboard
                    var designer = dashboardDesigner.Dashboard;

                    FileManagerIts.DeleteFile(dashPath);
                    //salva o layout em memoria
                    //designer.SaveToXml(ms);

                    //salva o dashboard no disco em formato xml
                    designer.SaveToXml(dashPath);

                    var bytes = FileManagerIts.GetBytesFromFile(dashPath); //ms.GetBuffer();

                    //passando objeto pro contexto
                    var current = ctx.DashboardImageDao.Find(dash.IdReport);

                    //atualiza o dashboard
                    current.Update(dash);

                    //garante a atualização
                    current.ReportImageData = bytes;

                    //efetiva no banco
                    return(ctx.DashboardImageDao.Update(current));
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Houve um erro na atualização do dashboard.\n\n"
                                        + ex.Message);

                LoggerUtilIts.GenerateLogs(ex);
                return(false);
            }
        }
示例#25
0
        /// <summary>
        /// Salva o dashboard no banco
        /// </summary>
        /// <param name="dashboardDesigner">Designer do dashboard</param>
        /// <param name="dash">Dashboard a ser persistido</param>
        /// <returns>O Dashboard persistido no banco ou null</returns>
        public DashboardImage SaveDashboard(DashboardDesigner dashboardDesigner, DashboardImage dash)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    //nome informado no dashboard
                    dash.DefaultName = dashboardDesigner.ActiveControl.Name;

                    //gera um nome aleatorio utilizando o nome setado no dashboard
                    string dashPath = generatePath(dash, ctx);

                    using (MemoryStream ms = new MemoryStream())
                    {
                        //objeto designer do dashboard
                        var designer = dashboardDesigner.Dashboard;

                        //salva o layout em memoria
                        designer.SaveToXml(ms);

                        //salva o dashboard no disco em formato xml
                        designer.SaveToXml(dashPath);

                        //obtem os bytes do dashboard
                        var bytes = ms.GetBuffer();

                        //passa os bytes do dashboard pro objeto dashboard
                        dash.ReportImageData = bytes;

                        //persiste o objeto no banco
                        if (ctx.DashboardImageDao.Save(dash))
                        {
                            return(dash);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Houve um erro ao salvar o dashboard.\n\n"
                                        + ex.Message);

                LoggerUtilIts.GenerateLogs(ex);
            }

            return(null);
        }
示例#26
0
        /// <summary>
        /// Gera um relatório pelo ID
        /// </summary>
        /// <param name="id">ID do relatório</param>
        /// <param name="requestParameters"></param>
        /// <param name="visibleParameters"></param>
        /// <param name="ribbon"></param>
        /// <returns></returns>
        public static void PrintReportById(int id, bool requestParameters = true, bool visibleParameters = true, bool ribbon = false)
        {
            try
            {
                using (var ctx = new ReportContext())
                {
                    var current = ctx.ReportImageDao.Find(id);

                    printReport(current, requestParameters, visibleParameters, ribbon);
                }
            }
            catch (Exception ex)
            {
                XMessageIts.Advertencia("Relatório não encontrado !");
                LoggerUtilIts.GenerateLogs(ex, "Method: PrintReportById");
            }
        }
示例#27
0
        public void Run(string logon = null)
        {
            try
            {
                logon = retryLogon(logon);
                this._xFrmLogin.Text = "Acesso ao sistema:";

                this._isLoginAutoFailed = false;

                //se nao informe
                if (string.IsNullOrEmpty(logon))
                {
                    //action form do login dispara o invokeMenu
                    //faça login primeiro
                    this._xFrmLogin.ShowDialog();

                    //se foi cancelado
                    if (this._xFrmLogin.IsCancel)
                    {
                        //termina aplicação
                        Application.Exit();
                        return;
                    }
                    else
                    {
                        //espera e invoca
                        waitRun();
                    }
                }
                else
                {
                    //chama a task
                    _taskLogin = Task.Run(() => doWorkAsync(logon, null));

                    //espera e invoca
                    waitRun();
                }
            }
            catch (Exception ex)
            {
                string msg = "Erro desconhecido!. Contate o administrador ou verifique o log de eventos!";
                LoggerUtilIts.GenerateLogs(ex, msg);
                XMessageIts.ExceptionMessageDetails(ex, msg);
                //Environment.Exit(0); //nao fechar a aplicação em TODAS as exceptions
            }
        }
示例#28
0
 /// <summary>
 /// Remove o dashboard do banco
 /// </summary>
 /// <param name="dashboard"></param>
 /// <returns></returns>
 public bool RemoveDashboard(DashboardImage dashboard)
 {
     using (var ctx = new ReportContext())
     {
         //remove o dash do banco
         var current = ctx.DashboardImageDao.Find(dashboard.IdReport);
         try
         {
             return(ctx.DashboardImageDao.Delete(current));
         }
         catch (Exception ex)
         {
             XMessageIts.Erro("Não foi possível remover o dashboard!");
             LoggerUtilIts.GenerateLogs(ex, "Falha ao remover dashboard!");
             return(false);
         }
     }
 }
示例#29
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.");
            }
        }
示例#30
0
        private async void loadDashboard()
        {
            if (dashboardImageAnt.ReportImageData != null)
            {
                Task <string> path = Task.Run(() => new DashboardDaoManager().LoadToChache(dashboardImageAnt, true));

                try
                {
                    //Abre o DashboardImage para edição
                    //DashboardDesigner onde será exibido o dashboardImage
                    dashboardDesigner1.Name = dashboardImageAnt.ReportName;
                    dashboardDesigner1.LoadDashboard(await path);
                }
                catch (Exception ex)
                {
                    LoggerUtilIts.GenerateLogs(ex);
                    XMessageIts.Erro("Dashboard não pode ser carregado!");
                }
            }
        }