Example #1
0
        /// <summary>
        /// Gera o relatorio de usuarios logados no HB e saldo
        /// quebrou o esquema, pq tem que buscar a relacao de contas x assessor do oracle pra cruzar com
        /// a consulta do MSSQL
        /// </summary>
        /// <param name="functionName"></param>
        public void GenerateLogadosHBSaldo(string functionName)
        {
            try
            {
                logger.Info("GenerateLogadosHBSaldo(" + functionName + ")");

                if (!dctParametros.ContainsKey(functionName))
                {
                    logger.Error("GenerateLogadosHBSaldo(" + functionName + ") nao ha parametros definidos");
                    return;
                }

                BaseParam parametros = dctParametros[functionName];

                string scriptPath = ConfigurationManager.AppSettings["DiretorioScripts"].ToString();
                string sheetPath  = ConfigurationManager.AppSettings["DiretorioPlanilhas"].ToString();
                string rede       = "";

                if (ConfigurationManager.AppSettings["DiretorioRede"] != null)
                {
                    rede = ConfigurationManager.AppSettings["DiretorioRede"].ToString();
                }

                string scriptFilename   = scriptPath + Path.DirectorySeparatorChar + parametros.ScriptFile;
                string scriptAssessores = scriptPath + Path.DirectorySeparatorChar + "getassess.sql";
                string excelFile        = sheetPath + Path.DirectorySeparatorChar + parametros.ExcelFilePrefix + "-" + DateTime.Now.ToString("yyyMMdd-HHmmss") + ".xlsx";

                logger.Info("GenerateLogadosHBSaldo(" + functionName + ") Carregando script: " + scriptFilename);


                PersistenciaDB db = new PersistenciaDB();

                string idlogins = "select distinct(IdLogin) from tb_logacesso where Sistema='Portal' and DataLogIn > DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))";

                DataSet dsLogins = db.ExecutarScriptSqlServer("ControleAcesso", idlogins);

                string idClientes = "select C.cd_codigo,L.id_login  from tb_cliente_conta C, tb_cliente L where C.cd_sistema = 'BOL' and L.id_cliente = C.id_cliente";

                DataSet dsClientes = db.ExecutarScriptSqlServer("Cadastro", idClientes);


                string scriptAssessor = File.ReadAllText(scriptAssessores);

                logger.Info("GenerateLogadosHBSaldo(" + functionName + ") obtendo tabela assessores");

                DataSet dsAss = db.ExecutarScriptRetDS(scriptAssessor);

                logger.Info("GenerateLogadosHBSaldo(" + functionName + ") executando script");

                string scriptSQL = File.ReadAllText(scriptFilename);

                DataSet ds = db.ExecutarScriptSqlServer(parametros.ConnStringName, scriptSQL);

                if (ds.Tables.Count == 0 || (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count == 0))
                {
                    logger.Error("GenerateLogadosHBSaldo(" + functionName + ") Nao ha registros para se gerar uma planilha");
                    return;
                }

                var query = from record in ds.Tables[0].AsEnumerable()
                            join assessor in dsAss.Tables[0].AsEnumerable()
                            on record.Field <string>("Cliente") equals assessor.Field <string>("Cliente")
                            select new
                {
                    Cliente         = record.Field <string>("Cliente").Trim(),
                    Nome            = assessor.Field <string>("Nome").Trim(),
                    CpfCnpj         = assessor.Field <string>("CPF/CNPJ").Trim(),
                    Assessor        = assessor.Field <string>("Assessor").Trim(),
                    NomeAssessor    = assessor.Field <string>("Nome Assessor").Trim(),
                    Titulo          = record.Field <string>("Titulo").Trim(),
                    Aplicacao       = record.Field <string>("Aplicacao").Trim(),
                    Vencimento      = record.Field <string>("Vencimento").Trim(),
                    Taxa            = record.Field <string>("Taxa").Trim(),
                    Quantidade      = record.Field <string>("Quantidade").Trim(),
                    Indice          = record.Field <string>("Indice").Trim(),
                    ValorOriginal   = record.Field <string>("ValorOriginal").Trim(),
                    IRRF            = record.Field <string>("IRRF").Trim(),
                    IOF             = record.Field <string>("IOF").Trim(),
                    SaldoLiquido    = record.Field <string>("SaldoLiquido").Trim(),
                    DataAtualizacao = record.Field <string>("DataAtualizacao").Trim(),
                };

                DataSet ds1 = new DataSet();

                ds1.Tables.Add(query.ToDataTable());

                logger.Info("GenerateVctosRendaFixa(" + functionName + ") dataset carregado, gerando planilha");

                if (ExcelCreator.CreateExcel(ds1, excelFile, parametros.WorksheetName))
                {
                    logger.Info("GenerateVctosRendaFixa(" + functionName + ") planilha gerada com sucesso");


                    string subject = parametros.Subject + " - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                    string message = "Planilha " + functionName + " gerada as " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                    message += "\n\n";
                    message += "Gravado em [" + excelFile + "]";

                    if (!String.IsNullOrEmpty(rede))
                    {
                        message += "\n\n";

                        message += "Disponivel na pasta de rede: [" + rede + "]";
                    }


                    if (!String.IsNullOrEmpty(parametros.Message))
                    {
                        message += "\n\n" + parametros.Message;
                    }

                    message += "\n\n";

                    string[] anexos = new string[1];
                    anexos[0] = excelFile;

                    MailUtil.EnviarPlanilhaPorEmail(parametros.MailFrom,
                                                    parametros.MailTo,
                                                    null,
                                                    null,
                                                    subject,
                                                    message,
                                                    anexos);
                }

                try
                {
                    if (!String.IsNullOrEmpty(rede))
                    {
                        FileInfo excelInfo = new FileInfo(excelFile);
                        rede += Path.DirectorySeparatorChar;
                        rede += excelInfo.Name;

                        logger.Info("GenerateVctosRendaFixa(" + functionName + ") Copiando arquivo [" + excelFile + "] para [" + rede + "]");
                        File.Copy(excelFile, rede);
                    }
                    else
                    {
                        logger.Info("GenerateVctosRendaFixa(" + functionName + ") Chave appsettings 'DiretorioRede' nao existe para copia do arquivo!");
                    }
                }
                catch (Exception ex)
                {
                    logger.Error("GenerateVctosRendaFixa(" + functionName + "): Erro ao copiar para pasta de rede");
                    logger.Error("GenerateVctosRendaFixa(" + functionName + "): " + ex.Message, ex);
                }
            }
            catch (Exception ex)
            {
                logger.Error("GenerateVctosRendaFixa(" + functionName + "): " + ex.Message, ex);
            }
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="functionName"></param>
        public void GerarBase(string functionName)
        {
            try
            {
                logger.Info("GerarBase(" + functionName + ")");

                if (!dctParametros.ContainsKey(functionName))
                {
                    logger.Error("GerarBase(" + functionName + ") nao ha parametros definidos");
                    return;
                }

                BaseParam parametros = dctParametros[functionName];

                string scriptPath = ConfigurationManager.AppSettings["DiretorioScripts"].ToString();
                string sheetPath  = ConfigurationManager.AppSettings["DiretorioPlanilhas"].ToString();
                string rede       = "";

                if (ConfigurationManager.AppSettings["DiretorioRede"] != null)
                {
                    rede = ConfigurationManager.AppSettings["DiretorioRede"].ToString();
                }

                string scriptFilename = scriptPath + Path.DirectorySeparatorChar + parametros.ScriptFile;
                string excelFile      = sheetPath + Path.DirectorySeparatorChar + parametros.ExcelFilePrefix + "-" + DateTime.Now.ToString("yyyMMdd-HHmmss") + ".xlsx";

                logger.Info("GerarBase(" + functionName + ") Carregando script: " + scriptFilename);

                string scriptSQL = File.ReadAllText(scriptFilename);

                PersistenciaDB db = new PersistenciaDB();

                logger.Info("GerarBase(" + functionName + ") executando script");

                DataSet ds = db.ExecutarScriptRetDS(scriptSQL);

                if (ds.Tables.Count == 0 || (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count == 0))
                {
                    logger.Error("GerarBase(" + functionName + ") Nao ha registros para se gerar uma planilha");
                    return;
                }

                logger.Info("GerarBase(" + functionName + ") dataset carregado, gerando planilha");

                if (ExcelCreator.CreateExcel(ds, excelFile, parametros.WorksheetName))
                {
                    logger.Info("GerarBase(" + functionName + ") planilha gerada com sucesso");

                    string subject = parametros.Subject + " - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                    string message = "Planilha " + functionName + " gerada as " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                    message += "\n\n";
                    message += "Gravado em [" + excelFile + "]";

                    if (!String.IsNullOrEmpty(rede))
                    {
                        message += "\n\n";
                        message += "Disponivel na pasta de rede: [" + rede + "]";
                    }


                    if (!String.IsNullOrEmpty(parametros.Message))
                    {
                        message += "\n\n" + parametros.Message;
                    }

                    message += "\n\n";

                    string [] anexos = new string[1];
                    anexos[0] = excelFile;

                    MailUtil.EnviarPlanilhaPorEmail(parametros.MailFrom,
                                                    parametros.MailTo,
                                                    null,
                                                    null,
                                                    subject,
                                                    message,
                                                    anexos);
                }

                try
                {
                    if (!String.IsNullOrEmpty(rede))
                    {
                        FileInfo excelInfo = new FileInfo(excelFile);
                        rede += Path.DirectorySeparatorChar;
                        rede += excelInfo.Name;

                        logger.Info("GerarBase(" + functionName + ") Copiando arquivo [" + excelFile + "] para [" + rede + "]");
                        File.Copy(excelFile, rede);
                    }
                    else
                    {
                        logger.Info("GerarBase(" + functionName + ") Chave appsettings 'DiretorioRede' nao existe para copia do arquivo!");
                    }
                }
                catch (Exception ex)
                {
                    logger.Error("GerarBase(" + functionName + "): Erro ao copiar para pasta de rede");
                    logger.Error("GerarBase(" + functionName + "): " + ex.Message, ex);
                }
            }
            catch (Exception ex)
            {
                logger.Error("GerarBase(" + functionName + "): " + ex.Message, ex);
            }
        }
Example #3
0
        private void btGerarPlanilha_Click(object sender, EventArgs e)
        {
            btGerarPlanilha.Enabled = false;

            DataTable deta = new DataTable("MDTD");

            deta.Columns.Add("CodigoAgenteCustodia", typeof(System.String));
            deta.Columns.Add("CodigoCliente", typeof(System.String));
            deta.Columns.Add("DigitoCodigoCliente", typeof(System.String));
            deta.Columns.Add("CpfCpnjCliente", typeof(System.String));
            deta.Columns.Add("TipoTitulo", typeof(System.String));
            deta.Columns.Add("DataVctoTitulo", typeof(System.String));
            deta.Columns.Add("CodigoSelic", typeof(System.String));
            deta.Columns.Add("CodigoISIN", typeof(System.String));
            deta.Columns.Add("TipoTransacao", typeof(System.String));
            deta.Columns.Add("IDContabilTransacao", typeof(System.String));
            deta.Columns.Add("QuantitadeTitulosTransacao", typeof(System.String));
            deta.Columns.Add("NumeroProtocolo", typeof(System.String));
            deta.Columns.Add("Usuario", typeof(System.String));
            deta.Columns.Add("AgenteCustodiaContraparte", typeof(System.String));
            deta.Columns.Add("PrecoUnitarioTransacao", typeof(System.String));
            deta.Columns.Add("ValorTransacao", typeof(System.String));
            deta.Columns.Add("ValorTaxaAgente", typeof(System.String));
            deta.Columns.Add("ValorTotal", typeof(System.String));
            deta.Columns.Add("PrecoUnitarioOriginal", typeof(System.String));
            deta.Columns.Add("ValorOriginal", typeof(System.String));
            deta.Columns.Add("DataPrecoOriginal", typeof(System.String));
            deta.Columns.Add("OrigemSaldo", typeof(System.String));
            deta.Columns.Add("DataOperacao", typeof(System.String));
            deta.Columns.Add("DataMovimento", typeof(System.String));
            deta.Columns.Add("DataFinalDoacaoCupom", typeof(System.String));
            deta.Columns.Add("ValorTxSemBMFBovespa", typeof(System.String));
            deta.Columns.Add("ValorTxSemAgenteCustodia", typeof(System.String));
            deta.Columns.Add("PercentualReinvestimento", typeof(System.String));
            deta.Columns.Add("ProtocoloAgendamento", typeof(System.String));
            deta.Columns.Add("DataEmissaoTitulo", typeof(System.String));
            deta.Columns.Add("DataPagtoCupomAnterior", typeof(System.String));
            deta.Columns.Add("DataPagtoPrimeiroCupom", typeof(System.String));
            deta.Columns.Add("PUPrimeiroCupomJurosPago", typeof(System.String));
            deta.Columns.Add("DataPgtoCupomAnteriorCompra", typeof(System.String));
            deta.Columns.Add("DataLiquidacaoCompra", typeof(System.String));
            deta.Columns.Add("Filler", typeof(System.String));

            deta.AcceptChanges();



            //try
            //{
            logger.Info("Inicio processamento arquivo MDTD_01_IDENTIFICACAO_X");

            string[] lines = File.ReadAllLines(arquivo);

            long tamstrut = Marshal.SizeOf(typeof(MDTD_01_IDENTIFICACAO_X));

            foreach (string line in lines)
            {
                string tipo     = line.Substring(0, 2);
                string registro = line.Substring(2);

                if (tipo.Equals("01"))
                {
                    DataRow row = deta.NewRow();

                    MDTD_01_IDENTIFICACAO_X strut = Utilities.MarshalFromStringBlock <MDTD_01_IDENTIFICACAO_X>(line);

                    row["CodigoAgenteCustodia"]       = Convert.ToInt32(strut.CodigoAgenteCustodia.ByteArrayToString()).ToString();
                    row["CodigoCliente"]              = Convert.ToInt32(strut.CodigoCliente.ByteArrayToString()).ToString();
                    row["DigitoCodigoCliente"]        = Convert.ToInt32(strut.DigitoCodigoCliente.ByteArrayToString()).ToString();
                    row["CpfCpnjCliente"]             = strut.CpfCpnjCliente.ByteArrayToString();
                    row["TipoTitulo"]                 = strut.TipoTitulo.ByteArrayToString();
                    row["DataVctoTitulo"]             = strut.DataVctoTitulo.ByteArrayToString();
                    row["CodigoSelic"]                = strut.CodigoSelic.ByteArrayToString();
                    row["CodigoISIN"]                 = strut.CodigoISIN.ByteArrayToString();
                    row["TipoTransacao"]              = strut.TipoTransacao.ByteArrayToString();
                    row["IDContabilTransacao"]        = strut.IDContabilTransacao.ByteArrayToString();
                    row["QuantitadeTitulosTransacao"] = strut.QuantitadeTitulosTransacao.ByteArrayToDecimal(2).ToString();
                    row["NumeroProtocolo"]            = strut.NumeroProtocolo.ByteArrayToString();
                    row["Usuario"] = strut.Usuario.ByteArrayToString();
                    row["AgenteCustodiaContraparte"] = strut.CodigoAgenteCustodia.ByteArrayToString().ToString();
                    row["PrecoUnitarioTransacao"]    = strut.PrecoUnitarioTransacao.ByteArrayToDecimal(2).ToString();
                    row["ValorTransacao"]            = strut.ValorTransacao.ByteArrayToDecimal(2).ToString();
                    row["ValorTaxaAgente"]           = strut.ValorTaxaAgente.ByteArrayToDecimal(2).ToString();
                    row["ValorTotal"]                  = strut.ValorTotal.ByteArrayToDecimal(2).ToString();
                    row["PrecoUnitarioOriginal"]       = Convert.ToInt32(strut.PrecoUnitarioOriginal.ByteArrayToDecimal(2)).ToString();
                    row["ValorOriginal"]               = strut.ValorOriginal.ByteArrayToDecimal(2).ToString();
                    row["DataPrecoOriginal"]           = strut.DataPrecoOriginal.ByteArrayToString();
                    row["OrigemSaldo"]                 = strut.OrigemSaldo.ByteArrayToString();
                    row["DataOperacao"]                = strut.DataOperacao.ByteArrayToString();
                    row["DataMovimento"]               = strut.DataMovimento.ByteArrayToString();
                    row["DataFinalDoacaoCupom"]        = strut.DataFinalDoacaoCupom.ByteArrayToString();
                    row["ValorTxSemBMFBovespa"]        = strut.ValorTxSemBMFBovespa.ByteArrayToDecimal(2).ToString();
                    row["ValorTxSemAgenteCustodia"]    = strut.ValorTxSemAgenteCustodia.ByteArrayToDecimal(2).ToString();
                    row["PercentualReinvestimento"]    = strut.PercentualReinvestimento.ByteArrayToString();
                    row["ProtocoloAgendamento"]        = strut.ProtocoloAgendamento.ByteArrayToString();
                    row["DataEmissaoTitulo"]           = strut.DataEmissaoTitulo.ByteArrayToString();
                    row["DataPagtoCupomAnterior"]      = strut.DataPagtoCupomAnterior.ByteArrayToString();
                    row["DataPagtoPrimeiroCupom"]      = strut.DataPagtoPrimeiroCupom.ByteArrayToString();
                    row["PUPrimeiroCupomJurosPago"]    = strut.PUPrimeiroCupomJurosPago.ByteArrayToDecimal(2).ToString();
                    row["DataPgtoCupomAnteriorCompra"] = strut.DataPgtoCupomAnteriorCompra.ByteArrayToString();
                    row["DataLiquidacaoCompra"]        = strut.DataLiquidacaoCompra.ByteArrayToString();
                    row["Filler"] = strut.Filler.ByteArrayToString();

                    deta.Rows.Add(row);
                }
            }

            DataSet ds1 = new DataSet("DS1");

            ds1.Tables.Add(deta);
            ds1.AcceptChanges();

            if (ExcelCreator.CreateExcel(ds1, excelFile, "Sheet1"))
            {
                logger.Info("Movimento Diario Tesouro Direto planilha gerada com sucesso");


                string subject = " Movimento Diario Tesouro Direto - " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                string message = "Planilha Movimento Diario Tesouro Direto gerada as " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                message += "\n\n";
                message += "Gravado em [" + excelFile + "]";

                if (!String.IsNullOrEmpty(rede))
                {
                    message += "\n\n";

                    message += "Disponivel na pasta de rede: [" + rede + "]";
                }


                //if (!String.IsNullOrEmpty(parametros.Message))
                //{
                //    message += "\n\n" + parametros.Message;
                //}

                message += "\n\n";

                string[] anexos = new string[1];
                anexos[0] = excelFile;

                MailUtil.EnviarPlanilhaPorEmail("*****@*****.**",
                                                "*****@*****.**",
                                                null,
                                                null,
                                                subject,
                                                message,
                                                anexos);
            }

            //try
            //{
            //    if (!String.IsNullOrEmpty(rede))
            //    {
            //        FileInfo excelInfo = new FileInfo(excelFile);
            //        rede += Path.DirectorySeparatorChar;
            //        rede += excelInfo.Name;

            //        logger.Info("GenerateVctosRendaFixa(" + functionName + ") Copiando arquivo [" + excelFile + "] para [" + rede + "]");
            //        File.Copy(excelFile, rede);
            //    }
            //    else
            //        logger.Info("GenerateVctosRendaFixa(" + functionName + ") Chave appsettings 'DiretorioRede' nao existe para copia do arquivo!");
            //}
            //catch (Exception ex)
            //{
            //    logger.Error("GenerateVctosRendaFixa(" + functionName + "): Erro ao copiar para pasta de rede");
            //    logger.Error("GenerateVctosRendaFixa(" + functionName + "): " + ex.Message, ex);
            //}
            //}
            //catch (Exception ex)
            //{
            //    logger.Error("_processa_ItauFJ_03_Cotacoes(): " + ex.Message, ex);
            //}

            btGerarPlanilha.Enabled = true;
        }