Beispiel #1
0
 public static List<MMAA.Pedidos.Model.Processo> ListDadosProcesso(int cd_processo, string nr_pasta, string nr_processo, string uf, int cd_comarca, int cd_forum, int cd_vara, string outro_codigo, int cd_cliente, int grupo_cliente, int subgrupo_cliente,
         string dt_distribuicao_de, string dt_distribuicao_ate, string dt_autuacao_de, string dt_autuacao_ate, int cd_risco, int cd_assunto, int qtd_registros)
 {
     MMAA.Pedidos.Negocio.Processo processo = new MMAA.Pedidos.Negocio.Processo();
     MMAA.Pedidos.Model.Processo objProcesso = new MMAA.Pedidos.Model.Processo();
     objProcesso.CdProcesso = cd_processo;
     objProcesso.NrPasta = nr_pasta;
     objProcesso.NrProcesso = nr_processo;
     objProcesso.NrUf = uf;
     objProcesso.CdComarca = cd_comarca;
     objProcesso.CdForum = cd_forum;
     objProcesso.CdVara = cd_vara;
     objProcesso.NrOutroCodigo = outro_codigo;
     objProcesso.NrCliente = "0";
     objProcesso.CdGrupoCliente = grupo_cliente;
     objProcesso.CdSubGrupoCliente = subgrupo_cliente;
     objProcesso.CdRisco = cd_risco;
     objProcesso.CdAssunto = cd_assunto;
     List<MMAA.Pedidos.Model.Processo> objDadosProcesso = new List<MMAA.Pedidos.Model.Processo>();
     objDadosProcesso = processo.ListDadosProcesso(objProcesso, dt_distribuicao_de, dt_distribuicao_ate, dt_autuacao_de, dt_autuacao_ate, qtd_registros);
     return objDadosProcesso;
 }
    public void ImportarArquivo(Boolean escritorio, Int32 codEscritorio)
    {
        if (fupArquivo.HasFile)
        {
            #region Valida o tipo de arquivo

            if (Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLS" && Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLSX")
                throw new Exception("O arquivo informado é inválido.");

            #endregion

            #region Declaração de variáveis

            HSSFWorkbook planilha_XLS = null;
            XSSFWorkbook planilha_XLSX = null;
            List<MMAA.Pedidos.Model.Processo> processos = null;
            Boolean excel_XLSX = false;
            String nomeArquivo = String.Empty;
            String nomeArquivoOriginal = String.Empty;
            String tempPath = String.Empty;
            Int32 row_Cabecalho = 0;
            Int32 row_PrimeiraLinha = 1;
            MMAA.Pedidos.Model.ArquivoImportacao arquivo = null;
            MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;
            Int32 codArquivo = 0;
            Int32 codConciliacao = 0;
            Int32 codUsuario = 0;
            String configCampos = String.Empty;
            List<String> listCampos = null;
            String configPosicoes = String.Empty;
            List<String> listPosicoes = null;
            Int32 qtdRegistros = 0;
            Int32 colIndex = -1;
            String cellValue = String.Empty;

            #endregion

            try
            {
                #region Inicialização de objetos

                processos = new List<MMAA.Pedidos.Model.Processo>();
                arquivo = new MMAA.Pedidos.Model.ArquivoImportacao();
                business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();

                #endregion

                codConciliacao = Tools.StringToNumber(hdnCdConciliacao.Value);
                codUsuario = ((List<MMAA.Pedidos.Model.Usuario>)Session["Usuario"])[0].CdUsuario;

                #region Parâmetros de upload e importação

                tempPath = System.Configuration.ConfigurationSettings.AppSettings["Relatorio.Path"];
                nomeArquivoOriginal = fupArquivo.FileName;
                excel_XLSX = (Tools.GetFileExtension(nomeArquivoOriginal).ToUpper() == ".XLSX");

                if (escritorio)
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoEscritorio_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Campos"];
                    configPosicoes = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Posicoes"];

                    listCampos = configCampos.Split(',').ToList<String>();
                    listPosicoes = configPosicoes.Split(',').ToList<String>();

                    colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);
                }
                else
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoMMAA_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Campos"];
                    configPosicoes = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Posicoes"];

                    listCampos = configCampos.Split(',').ToList<String>();
                    listPosicoes = configPosicoes.Split(',').ToList<String>();

                    colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);
                }

                #endregion

                #region Upload e inclusão do arquivo

                // FAZ O UPLOAD DO ARQUIVO
                fupArquivo.SaveAs(nomeArquivo);

                // INCLUI O ARQUIVO NA CONCILIAÇÃO
                arquivo.Cd_Conciliacao = codConciliacao;
                arquivo.Cd_Escritorio = codEscritorio;
                arquivo.Nm_Arquivo = nomeArquivo;
                arquivo.Nm_ArquivoOriginal = nomeArquivoOriginal;
                arquivo.Qtd_Tamanho = (Int32)fupArquivo.FileContent.Length;
                arquivo.Qtd_Registros = 0;
                codArquivo = business.IncluirArquivo(arquivo, codUsuario);

                #endregion

                #region Importação dos dados do arquivo

                if (excel_XLSX)
                {
                    #region Excel XLSX

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLSX = new XSSFWorkbook(file);
                    }

                    ISheet sheet_XLSX = planilha_XLSX.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLSX.LastRowNum; i++)
                    {
                        XSSFRow row_XLSX = (XSSFRow)sheet_XLSX.GetRow(i);

                        if (row_XLSX != null)
                        {
                            // VALIDA A LINHA DO ARQUIVO DE ACORDO COM O TIPO DE IMPORTAÇÃO (ESCRITÓRIO OU MMAA)
                            try
                            {
                                if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                    cellValue = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                else
                                    cellValue = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                            }
                            catch
                            {
                                cellValue = String.Empty;
                            }

                            if (!String.IsNullOrEmpty(cellValue))
                            {
                                MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                                #region Colunas do arquivo

                                // N.º PASTA
                                if (listCampos.IndexOf("NR_PASTA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // CÓD. PROCESSO
                                if (listCampos.IndexOf("CD_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("CD_PROCESSO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                if (listCampos.IndexOf("NR_CBD") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ESCRITÓRIO
                                if (listCampos.IndexOf("ESCRITORIO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("ESCRITORIO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NmEscritorio = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NmEscritorio = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // UF
                                if (listCampos.IndexOf("UF") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("UF")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrUf = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrUf = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ÂMBITO
                                if (listCampos.IndexOf("AMBITO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("AMBITO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsAmbito = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsAmbito = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // INSTÂNCIA
                                if (listCampos.IndexOf("INSTANCIA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("INSTANCIA")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.Instancia = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.Instancia = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // FASE PROCESSUAL
                                if (listCampos.IndexOf("FASE_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("FASE_PROCESSO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsFaseProcessual = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsFaseProcessual = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // VALOR ATUALIZADO
                                if (listCampos.IndexOf("VALOR_ATUALIZADO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("VALOR_ATUALIZADO")]);

                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.VrTotalAtualizado = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.VrTotalAtualizado = ((XSSFRow)sheet_XLSX.GetRow(i)).GetCell(colIndex).StringCellValue.Replace(",", ".");
                                        if (processo.VrTotalAtualizado == "-")
                                            processo.VrTotalAtualizado = "0";
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                #endregion

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Excel XLS

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLS = new HSSFWorkbook(file);
                    }

                    ISheet sheet_XLS = planilha_XLS.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLS.LastRowNum; i++)
                    {
                        HSSFRow row_XLS = (HSSFRow)sheet_XLS.GetRow(i);

                        if (row_XLS != null)
                        {
                            // VALIDA A LINHA DO ARQUIVO DE ACORDO COM O TIPO DE IMPORTAÇÃO (ESCRITÓRIO OU MMAA)
                            try
                            {
                                if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                    cellValue = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                else
                                    cellValue = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                            }
                            catch
                            {
                                cellValue = String.Empty;
                            }

                            if (!String.IsNullOrEmpty(cellValue))
                            {
                                MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                                #region Colunas do arquivo

                                // N.º PASTA
                                if (listCampos.IndexOf("NR_PASTA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_PASTA")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // CÓD. PROCESSO
                                if (listCampos.IndexOf("CD_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("CD_PROCESSO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                if (listCampos.IndexOf("NR_CBD") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("NR_CBD")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ESCRITÓRIO
                                if (listCampos.IndexOf("ESCRITORIO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("ESCRITORIO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NmEscritorio = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NmEscritorio = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // UF
                                if (listCampos.IndexOf("UF") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("UF")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.NrUf = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.NrUf = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // ÂMBITO
                                if (listCampos.IndexOf("AMBITO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("AMBITO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsAmbito = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsAmbito = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // INSTÂNCIA
                                if (listCampos.IndexOf("INSTANCIA") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("INSTANCIA")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.Instancia = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.Instancia = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // FASE PROCESSUAL
                                if (listCampos.IndexOf("FASE_PROCESSO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("FASE_PROCESSO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.DsFaseProcessual = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.DsFaseProcessual = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Trim();
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // VALOR ATUALIZADO
                                if (listCampos.IndexOf("VALOR_ATUALIZADO") > -1)
                                {
                                    try
                                    {
                                        colIndex = Int32.Parse(listPosicoes[listCampos.IndexOf("VALOR_ATUALIZADO")]);

                                        if (((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).CellType == CellType.NUMERIC)
                                            processo.VrTotalAtualizado = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).NumericCellValue.ToString().Trim();
                                        else
                                            processo.VrTotalAtualizado = ((HSSFRow)sheet_XLS.GetRow(i)).GetCell(colIndex).StringCellValue.Replace(",", ".");
                                        if (processo.VrTotalAtualizado == "-")
                                            processo.VrTotalAtualizado = "0";
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                #endregion

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }

                #endregion

                #region Quantidade de registros

                if (qtdRegistros > 0)
                {
                    // ATUALIZA A QUANTIDADE DE REGISTROS DO ARQUIVO
                    arquivo.Cd_Codigo = codArquivo;
                    arquivo.Qtd_Registros = qtdRegistros;
                    business.IncluirArquivo(arquivo, codUsuario);
                }

                #endregion
            }
            catch (Exception ex)
            {
                #region Tratamento de erro

                throw ex;

                #endregion
            }
            finally
            {
                #region Finaliza os objetos

                if (planilha_XLS != null)
                    planilha_XLS = null;
                if (planilha_XLSX != null)
                    planilha_XLSX = null;

                #endregion
            }
        }
    }
    private void ImportarArquivo(Boolean escritorio, Int32 codEscritorio)
    {
        if (fupArquivo.HasFile)
        {
            #region Valida o tipo de arquivo

            if (Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLS" && Tools.GetFileExtension(fupArquivo.FileName).ToUpper() != ".XLSX")
                throw new Exception("O arquivo informado é inválido.");

            #endregion

            #region Declaração de variáveis

            HSSFWorkbook planilha_XLS = null;
            XSSFWorkbook planilha_XLSX = null;
            List<MMAA.Pedidos.Model.Processo> processos = null;
            Boolean excel_XLSX = false;
            String nomeArquivo = String.Empty;
            String nomeArquivoOriginal = String.Empty;
            String tempPath = String.Empty;
            Int32 row_Cabecalho = 0;
            Int32 row_PrimeiraLinha = 1;
            MMAA.Pedidos.Model.ArquivoImportacao arquivo = null;
            MMAA.Pedidos.Negocio.ConciliacaoUpload business = null;
            Int32 codArquivo = 0;
            Int32 codConciliacao = 1;
            Int32 codUsuario = 3;
            String configCampos = String.Empty;
            List<String> listCampos = null;
            Int32 qtdRegistros = 0;
            Int32 colIndex = -1;

            #endregion

            try
            {
                #region Inicialização de objetos

                processos = new List<MMAA.Pedidos.Model.Processo>();
                arquivo = new MMAA.Pedidos.Model.ArquivoImportacao();
                business = new MMAA.Pedidos.Negocio.ConciliacaoUpload();

                #endregion

                #region Parâmetros de upload e importação

                tempPath = System.Configuration.ConfigurationSettings.AppSettings["Relatorio.Path"];
                nomeArquivoOriginal = fupArquivo.FileName;
                excel_XLSX = (Tools.GetFileExtension(nomeArquivoOriginal).ToUpper() == ".XLSX");

                if (escritorio)
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoEscritorio_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoEscritorio.Campos"];
                }
                else
                {
                    nomeArquivo = Server.MapPath("~") + "\\" + tempPath + "\\" + "ImportacaoMMAA_" + DateTime.Now.ToFileTime().ToString() + Tools.GetFileExtension(nomeArquivoOriginal);
                    configCampos = System.Configuration.ConfigurationSettings.AppSettings["Conciliacao.ImportacaoMMAA.Campos"];
                }

                listCampos = configCampos.Split(',').ToList<String>();

                #endregion

                #region Upload e inclusão do arquivo

                // FAZ O UPLOAD DO ARQUIVO
                fupArquivo.SaveAs(nomeArquivo);

                // INCLUI O ARQUIVO NA CONCILIAÇÃO
                arquivo.Cd_Conciliacao = codConciliacao;
                arquivo.Cd_Escritorio = codEscritorio;
                arquivo.Nm_Arquivo = nomeArquivo;
                arquivo.Nm_ArquivoOriginal = nomeArquivoOriginal;
                arquivo.Qtd_Tamanho = (Int32)fupArquivo.FileContent.Length;
                arquivo.Qtd_Registros = 0;
                codArquivo = business.IncluirArquivo(arquivo, codUsuario);

                #endregion

                #region Importação dos dados do arquivo

                if (excel_XLSX)
                {
                    #region Excel XLSX

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLSX = new XSSFWorkbook(file);
                    }

                    ISheet sheet_XLSX = planilha_XLSX.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLSX.LastRowNum; i++)
                    {
                        XSSFRow row_XLSX = (XSSFRow)sheet_XLSX.GetRow(i);

                        if (row_XLSX != null)
                        {
                            MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                            // N.º PASTA
                            colIndex = listCampos.IndexOf("NR_PASTA");
                            if (colIndex > -1)
                            {
                                try
                                {
                                    if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                        processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                    else
                                        processo.NrPasta = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue;
                                }
                                catch { /*throw ex;*/ }
                            }
                            if (!String.IsNullOrEmpty(processo.NrPasta))
                            {
                                // CÓD. PROCESSO
                                colIndex = listCampos.IndexOf("CD_PROCESSO");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                colIndex = listCampos.IndexOf("NR_REFCLIENTE");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                        else
                                            processo.NrCliente = ((XSSFRow)sheet_XLSX.GetRow(i)).Cells[colIndex].StringCellValue;
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }
                else
                {
                    #region Excel XLS

                    using (FileStream file = new FileStream(nomeArquivo, FileMode.Open, FileAccess.Read))
                    {
                        planilha_XLS = new HSSFWorkbook(file);
                    }

                    ISheet sheet_XLS = planilha_XLS.GetSheetAt(0);

                    for (Int32 i = row_PrimeiraLinha; i <= sheet_XLS.LastRowNum; i++)
                    {
                        HSSFRow row_XLS = (HSSFRow)sheet_XLS.GetRow(i);

                        if (row_XLS != null)
                        {
                            MMAA.Pedidos.Model.Processo processo = new MMAA.Pedidos.Model.Processo();

                            // N.º PASTA
                            colIndex = listCampos.IndexOf("NR_PASTA");
                            if (colIndex > -1)
                            {
                                try
                                {
                                    if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                        processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                    else
                                        processo.NrPasta = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue;
                                }
                                catch { /*throw ex;*/ }
                            }
                            if (!String.IsNullOrEmpty(processo.NrPasta))
                            {
                                // CÓD. PROCESSO
                                colIndex = listCampos.IndexOf("CD_PROCESSO");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString());
                                        else
                                            processo.CdProcesso = Int32.Parse(((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue);
                                    }
                                    catch { /*throw ex;*/ }
                                }
                                // N.º CLIENTE
                                colIndex = listCampos.IndexOf("NR_REFCLIENTE");
                                if (colIndex > -1)
                                {
                                    try
                                    {
                                        if (((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].CellType == CellType.NUMERIC)
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].NumericCellValue.ToString();
                                        else
                                            processo.NrCliente = ((HSSFRow)sheet_XLS.GetRow(i)).Cells[colIndex].StringCellValue;
                                    }
                                    catch { /*throw ex;*/ }
                                }

                                // INCLUIR OS DADOS DO PROCESSO NA CONCILIAÇÃO
                                business.ImportarRegistroArquivo(processo, codArquivo, codConciliacao, codEscritorio, codUsuario);

                                qtdRegistros++;
                            }
                        }
                    }

                    #endregion
                }

                #endregion

                #region Quantidade de registros

                if (qtdRegistros > 0)
                {
                    // ATUALIZA A QUANTIDADE DE REGISTROS DO ARQUIVO
                    arquivo.Cd_Codigo = codArquivo;
                    arquivo.Qtd_Registros = qtdRegistros;
                    business.IncluirArquivo(arquivo, codUsuario);
                }

                #endregion
            }
            catch (Exception ex)
            {
                #region Tratamento de erro

                throw ex;

                #endregion
            }
            finally
            {
                #region Finaliza os objetos

                if (planilha_XLS != null)
                    planilha_XLS = null;
                if (planilha_XLSX != null)
                    planilha_XLSX = null;

                #endregion
            }
        }
    }
Beispiel #4
0
 public List<Model.Processo> ListDadosProcesso(MMAA.Pedidos.Model.Processo processo, string dt_distribuicao_de, string dt_distribuicao_ate, string dt_autuacao_de, string dt_autuacao_ate, int qtd_registros)
 {
     try
     {
         DB data = new DB();
         List<Model.Processo> dadosProcesso = new List<Model.Processo>();
         Model.Processo objProcesso = new Model.Processo();
         DataTable dt = new DataTable();
         data.AddParametro("@CD_PROCESSO", processo.CdProcesso);
         data.AddParametro("@NR_PASTA", processo.NrPasta);
         data.AddParametro("@nr_processo", processo.NrProcesso);
         data.AddParametro("@uf", processo.NrUf);
         data.AddParametro("@cd_comarca", processo.CdComarca);
         data.AddParametro("@cd_forum", processo.CdForum);
         data.AddParametro("@cd_vara", processo.CdVara);
         data.AddParametro("@outro_codigo", processo.NrOutroCodigo);
         data.AddParametro("@cd_cliente", processo.NrCliente);
         data.AddParametro("@grupo_cliente", processo.CdGrupoCliente);
         data.AddParametro("@subgrupo_cliente", processo.CdSubGrupoCliente);
         data.AddParametro("@dt_distribuicao_de", dt_distribuicao_de);
         data.AddParametro("@dt_distribuicao_ate", dt_distribuicao_ate);
         data.AddParametro("@dt_autuacao_de", dt_autuacao_de);
         data.AddParametro("@dt_autuacao_ate", dt_autuacao_ate);
         data.AddParametro("@cd_risco", processo.CdRisco);
         data.AddParametro("@cd_assunto", processo.CdAssunto);
         data.AddParametro("@qtd_registros", qtd_registros);
         dt = data.ExecuteReader("PROCESSO_SELECIONA");
         dadosProcesso.Capacity = dt.Rows.Count;
         foreach (DataRow dr in dt.Rows)
         {
             objProcesso.CdProcesso = int.Parse(dr["cd_processo"].ToString());
             objProcesso.NrPasta = dr["nr_pasta"].ToString();
             objProcesso.CdComarca = dr["cd_comarca"].ToString().Equals("") ? 0 : int.Parse(dr["cd_comarca"].ToString());
             objProcesso.CdForum = dr["cd_forum"].ToString().Equals("") ? 0 : int.Parse(dr["cd_forum"].ToString());
             objProcesso.CdVara = dr["cd_vara"].ToString().Equals("") ? 0 : int.Parse(dr["cd_vara"].ToString());
             //objProcesso.CdTribunal = dr["cd_tribunal"].ToString().Equals("") ? 0 : int.Parse(dr["cd_tribunal"].ToString());
             //objProcesso.CdCamara = dr["cd_camara"].ToString().Equals("") ? 0 : int.Parse(dr["cd_camara"].ToString());
             objProcesso.CdProcedimento = dr["cd_procedimento"].ToString().Equals("") ? 0 : int.Parse(dr["cd_procedimento"].ToString());
             objProcesso.CdEspecialidade = dr["cd_especialidade"].ToString().Equals("") ? 0 : int.Parse(dr["cd_especialidade"].ToString());
             objProcesso.NrProcesso = dr["nr_processo"].ToString();
             //objProcesso.DtDistribuicao = dr["dt_distribuicao"].ToString();
             //objProcesso.NrRefCliente = dr["nr_refCliente"].ToString();
             //objProcesso.DtEncerramento = dr["DT_ENCERRAMENTO"].ToString();
             //objProcesso.Desdobramento = dr["DESDOBRAMENTO"].ToString();
             //objProcesso.SgPasta = dr["SG_PASTA"].ToString();
             //objProcesso.DsRisco = dr["DS_RISCO"].ToString();
             //objProcesso.DsComarca = dr["DS_COMARCA"].ToString();
             //objProcesso.NmForum = dr["NM_FORUM"].ToString();
             //objProcesso.NmVara = dr["NM_VARA"].ToString();
             //objProcesso.NmEstado = dr["NM_ESTADO"].ToString();
             //objProcesso.NmCliente = dr["NM_CLIENTE"].ToString();
             //objProcesso.NmGrupo = dr["NM_GRUPO"].ToString();
             //objProcesso.CdEstado = dr["CD_ESTADO"].ToString();
             dadosProcesso.Add(objProcesso);
             objProcesso = new MMAA.Pedidos.Model.Processo();
         }
         return dadosProcesso;
     }
     catch (Exception ex)
     {
         Log.Save(ex.Message.ToString());
         return null;
     }
 }