public JsonResult Update(String Regra, String CpfCnpj_Prestador, String Discriminacao, String Expressoes, Int32?Id) { string auxMsgErro = string.Empty; string auxMsgSucesso = string.Empty; RegraTO obj = new RegraTO { Regra = Regra, CpfCnpj_Prestador = CpfCnpj_Prestador, Discriminacao = Discriminacao, Expressoes = Expressoes, Id = Id }; if (RegraDAL.Update(obj) == null) { auxMsgErro = "Falha ao tentar alterar o registro, favor tente novamente"; } else { auxMsgSucesso = "Registro alterado com sucesso"; } return(Json(new { msgErro = auxMsgErro, msgSucesso = auxMsgSucesso })); }
public static int?Delete(RegraTO obj) { int? nrLinhas; SqlConnection con = new SqlConnection(); con.ConnectionString = Util.CONNECTION_STRING; try { SqlCommand comm = new SqlCommand(); comm.Connection = con; comm.CommandText = @" DELETE Regra WHERE Id = @Id "; con.Open(); comm.Parameters.Add(new SqlParameter("Id", obj.Id)); nrLinhas = comm.ExecuteNonQuery(); } catch (Exception ex) { nrLinhas = null; } finally { con.Close(); } return(nrLinhas); }
public static RegraTO GetTodos(string Regra) { RegraTO obj = new RegraTO(); SqlConnection con = new SqlConnection(); con.ConnectionString = Util.CONNECTION_STRING; try { SqlCommand comm = new SqlCommand(); comm.Connection = con; StringBuilder queryGet = new StringBuilder(@" SELECT * FROM Regra WHERE Regra = (@Regra)"); comm.Parameters.Add(new SqlParameter("Regra", Regra)); comm.CommandText = queryGet.ToString(); con.Open(); SqlDataReader rd = comm.ExecuteReader(); while (rd.Read()) { obj = new RegraTO { Id = rd.GetInt32(0), Regra = rd.IsDBNull(1) ? null : rd.GetString(1), CpfCnpj_Prestador = rd.IsDBNull(2) ? null : rd.GetString(2), Discriminacao = rd.IsDBNull(3) ? null : rd.GetString(3), Expressoes = rd.IsDBNull(4) ? null : rd.GetString(4) }; } rd.Close(); } catch (Exception ex) { obj = null; } finally { con.Close(); } return(obj); }
public static List <ArquivoRps> SetValues() { List <ArquivoRps> arquivosRpsCol = new List <ArquivoRps>(); try { string pathOrigemImportacao = ParametroDAL.GetValor("OrigemImportacaoPath"); DirectoryInfo diretorio = new DirectoryInfo(@pathOrigemImportacao); FileInfo[] arquivos = diretorio.GetFiles(); foreach (FileInfo file in arquivos) { if (FileIsValid(file)) { string[,] values = GetValues(); ArquivoRps arquivoRps = new ArquivoRps(); arquivoRps.NomeArquivo = file.Name; arquivoRps.NomeArquivoREM = file.Name.Replace(".txt", ".REM"); arquivoRps.NomeArquivoRET = file.Name.Replace(".txt", ".RET"); string[] DadosNFOrigem = ParametroDAL.GetValor("DadosNFOrigem").Split(';'); // Primeira linha --> Dados do Prestador if ((lines[1].IndexOf("001|") == 0)) { arquivoRps.Rps.NumeroLote = RpsDAL.GetUltimoLote(); arquivoRps.Rps.CpfCnpj = DadosNFOrigem[0]; arquivoRps.Rps.InscricaoMunicipal = DadosNFOrigem[1]; arquivoRps.Rps.Quantidade = "1"; // Analisar o arquivo se será 1 ou N lotes por arquivo arquivoRps.Rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Numero = Convert.ToString(LoteRpsDAL.GetUltimoRPS()); //Sequencial => Controle do banco --> Só precisa ser gerado sequencialmente quando o lote for processado com sucesso arquivoRps.Rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Serie = DadosNFOrigem[2]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Tipo = DadosNFOrigem[3]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.DataEmissao = DateTime.Now.ToString("yyyy-MM-dd"); arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Status = DadosNFOrigem[4]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Competencia = arquivoRps.Rps.InfDeclaracaoPrestacaoServico.DataEmissao; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Prestador.CpfCnpj = arquivoRps.Rps.CpfCnpj; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Prestador.InscricaoMunicipal = arquivoRps.Rps.InscricaoMunicipal; } // Segunda linha --> Dados do Tomador if ((lines[2].IndexOf("002|") == 0)) { arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj = values[2, 1]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.RazaoSocial = values[2, 3]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Logradouro = values[2, 11]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Numero = values[2, 12]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Bairro = values[2, 8]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.CodigoMunicipio = values[2, 6]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Uf = values[2, 7]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Cep = values[2, 10]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Contato.Telefone = values[2, 5]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.Contato.Email = values[2, 4].ToLower().TrimEnd(); } // Terceira linha --> Dados do Serviço if ((lines[3].IndexOf("005|") == 0)) { decimal valorServico = Convert.ToDecimal(values[3, 1]) / 100; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.Valores.ValorServicos = Convert.ToString(valorServico).Replace(",", "."); arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.IssRetido = DadosNFOrigem[5]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico = DadosNFOrigem[6]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.CodigoCnae = DadosNFOrigem[7]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.CodigoTributacaoMunicipio = arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = values[3, 18]; // Ir na tabela Regra verificar se há alguma regra estabelecida RegraTO regraGeral = RegraDAL.GetTodos("*"); if (regraGeral.Regra != null) { //string discriminacao = regraGeral.Discriminacao; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = regraGeral.Discriminacao; } RegraTO regra = RegraDAL.GetPorCpfCnpjPrestador(arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj); if (regra.CpfCnpj_Prestador != null) { string discriminacao = regra.Discriminacao; string[] srt_discriminacao = discriminacao.Split('|'); foreach (string valor in srt_discriminacao) { switch (valor) { case "DataEmissao": // Campo crítico string dtEmissao = GetExpressaoComData(arquivoRps.Rps.InfDeclaracaoPrestacaoServico.DataEmissao, regra.Expressoes); discriminacao = discriminacao.Replace(valor, dtEmissao); break; case "ValorServicos": discriminacao = discriminacao.Replace(valor, arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.Valores.ValorServicos); break; case "IssRetido": discriminacao = discriminacao.Replace(valor, arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.IssRetido); break; case "ItemListaServico": discriminacao = discriminacao.Replace(valor, arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico); break; case "CodigoCnae": discriminacao = discriminacao.Replace(valor, arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.CodigoCnae); break; } } arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = discriminacao.Replace("|", ""); } arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.CodigoMunicipio = DadosNFOrigem[8]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.ExigibilidadeISS = DadosNFOrigem[9]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.Servico.MunicipioIncidencia = DadosNFOrigem[10]; } arquivoRps.Rps.InfDeclaracaoPrestacaoServico.OptanteSimplesNacional = DadosNFOrigem[11]; arquivoRps.Rps.InfDeclaracaoPrestacaoServico.IncentivoFiscal = DadosNFOrigem[12]; arquivosRpsCol.Add(arquivoRps); } } } catch (Exception) { throw; } return(arquivosRpsCol); }
/* * public static int? Insert(LoteRpsTO obj) * { * int? nrLinhas; * SqlConnection con = new SqlConnection(); * con.ConnectionString = Util.CONNECTION_STRING; * try * { * SqlCommand comm = new SqlCommand(); * comm.Connection = con; * comm.CommandText = @" * INSERT INTO LoteRps * (NumeroLote, CpfCnpj, InscricaoMunicipal, Quantidade) OUTPUT Inserted.Id VALUES * (@NumeroLote, @CpfCnpj, @InscricaoMunicipal, @Quantidade) * "; * * con.Open(); * * object NumeroLote = DBNull.Value; * if (null != obj.NumeroLote) * { * NumeroLote = obj.NumeroLote; * } * * object CpfCnpj = DBNull.Value; * if (null != obj.CpfCnpj) * { * CpfCnpj = obj.CpfCnpj; * } * * object InscricaoMunicipal = DBNull.Value; * if (null != obj.InscricaoMunicipal) * { * InscricaoMunicipal = obj.InscricaoMunicipal; * } * * object Quantidade = DBNull.Value; * if (null != obj.Quantidade) * { * Quantidade = obj.Quantidade; * } * * comm.Parameters.Add(new SqlParameter("NumeroLote", NumeroLote)); * comm.Parameters.Add(new SqlParameter("CpfCnpj", CpfCnpj)); * comm.Parameters.Add(new SqlParameter("InscricaoMunicipal", InscricaoMunicipal)); * comm.Parameters.Add(new SqlParameter("Quantidade", Quantidade)); * * //nrLinhas = comm.ExecuteNonQuery(); * nrLinhas = Convert.ToInt32(comm.ExecuteScalar()); * } * catch (Exception ex) * { * nrLinhas = null; * } * finally * { * con.Close(); * } * return nrLinhas; * } */ public static int?Update(RegraTO obj) { int? nrLinhas; SqlConnection con = new SqlConnection(); con.ConnectionString = Util.CONNECTION_STRING; try { SqlCommand comm = new SqlCommand(); comm.Connection = con; comm.CommandText = @" UPDATE Regra SET Regra = @Regra, CpfCnpj_Prestador = @CpfCnpj_Prestador, Discriminacao = @Discriminacao, Expressoes = @Expressoes WHERE Id = @Id "; con.Open(); object Regra = DBNull.Value; if (null != obj.Regra) { Regra = obj.Regra; } object CpfCnpj_Prestador = DBNull.Value; if (null != obj.CpfCnpj_Prestador) { CpfCnpj_Prestador = obj.CpfCnpj_Prestador; } object Discriminacao = DBNull.Value; if (null != obj.Discriminacao) { Discriminacao = obj.Discriminacao; } object Expressoes = DBNull.Value; if (null != obj.Expressoes) { Expressoes = obj.Expressoes; } comm.Parameters.Add(new SqlParameter("Regra", Regra)); comm.Parameters.Add(new SqlParameter("CpfCnpj_Prestador", CpfCnpj_Prestador)); comm.Parameters.Add(new SqlParameter("Discriminacao", Discriminacao)); comm.Parameters.Add(new SqlParameter("Expressoes", Expressoes)); comm.Parameters.Add(new SqlParameter("Id", obj.Id)); nrLinhas = comm.ExecuteNonQuery(); } catch (Exception ex) { nrLinhas = null; } finally { con.Close(); } return(nrLinhas); }
public static IList <RegraTO> Get(int start, int pageSize, ref int totRegistros, string textoFiltro, ref int totRegistrosFiltro, string sortColumn, string sortColumnDir) { IList <RegraTO> objs = new List <RegraTO>(); SqlConnection con = new SqlConnection(); con.ConnectionString = Util.CONNECTION_STRING; try { SqlCommand comm = new SqlCommand(); comm.Connection = con; string ordenacao; if (string.IsNullOrEmpty(sortColumn)) { ordenacao = "ORDER BY Id"; } else { ordenacao = string.Format("ORDER BY {0} {1}", sortColumn, sortColumnDir); } StringBuilder queryGet = new StringBuilder(@" SELECT TOP (@pageSize) * FROM ( SELECT Id, Regra, CpfCnpj_Prestador, Discriminacao, Expressoes, (ROW_NUMBER() OVER (").Append(ordenacao).Append(@")) AS 'numeroLinha', (SELECT COUNT(Id) FROM Regra) AS 'totRegistros', (SELECT COUNT(Id) FROM Regra WHERE Id like @textoFiltro OR Regra collate Latin1_General_CI_AI like @textoFiltro OR CpfCnpj_Prestador collate Latin1_General_CI_AI like @textoFiltro OR Discriminacao collate Latin1_General_CI_AI like @textoFiltro OR Expressoes collate Latin1_General_CI_AI like @textoFiltro ) AS 'totRegistrosFiltro' FROM Regra WHERE Id like @textoFiltro OR Regra collate Latin1_General_CI_AI like @textoFiltro OR CpfCnpj_Prestador collate Latin1_General_CI_AI like @textoFiltro OR Discriminacao collate Latin1_General_CI_AI like @textoFiltro OR Expressoes collate Latin1_General_CI_AI like @textoFiltro) AS todasLinhas WHERE todasLinhas.numeroLinha > (@start)"); comm.Parameters.Add(new SqlParameter("pageSize", pageSize)); comm.Parameters.Add(new SqlParameter("start", start)); comm.Parameters.Add(new SqlParameter("textoFiltro", string.Format("%{0}%", textoFiltro))); comm.CommandText = queryGet.ToString(); con.Open(); SqlDataReader rd = comm.ExecuteReader(); RegraTO obj; if (rd.Read()) { totRegistros = rd.GetInt32(6); totRegistrosFiltro = rd.GetInt32(7); obj = new RegraTO { Id = rd.GetInt32(0), Regra = rd.IsDBNull(1) ? null : rd.GetString(1), CpfCnpj_Prestador = rd.IsDBNull(2) ? null : rd.GetString(2), Discriminacao = rd.IsDBNull(3) ? null : rd.GetString(3), Expressoes = rd.IsDBNull(4) ? null : rd.GetString(4) }; objs.Add(obj); } while (rd.Read()) { obj = new RegraTO { Id = rd.GetInt32(0), Regra = rd.IsDBNull(1) ? null : rd.GetString(1), CpfCnpj_Prestador = rd.IsDBNull(2) ? null : rd.GetString(2), Discriminacao = rd.IsDBNull(3) ? null : rd.GetString(3), Expressoes = rd.IsDBNull(4) ? null : rd.GetString(4) }; objs.Add(obj); } rd.Close(); } catch (Exception ex) { objs.Clear(); } finally { con.Close(); } return(objs); }
public static List <Rps> ObterDadosEnvio() { List <Rps> rpsCollection = new List <Rps>(); Rps rps = null; try { string pathOrigemImportacao = ParametroDAL.GetValor("OrigemImportacaoPath"); DirectoryInfo diretorio = new DirectoryInfo(@pathOrigemImportacao); FileInfo[] arquivos = diretorio.GetFiles(); if (arquivos.Length != 0) { // Busca arquivos do diretorio foreach (FileInfo file in arquivos) { // Somente arquivos TXT/CSV if ((file.Extension.ToUpper().Equals(".TXT")) || (file.Extension.ToUpper().Equals(".CSV"))) { string[] lines = System.IO.File.ReadAllLines(file.FullName); if (lines.Length != 0) { string[] linhaCab = lines[0].Split('|'); string[] columns = new string[50]; string[,] values = new string[lines.Length, columns.Length]; // Verifica se o arquivo possui o cabeçalho SISPEC if ((lines[0].IndexOf("000|") == 0) || (linhaCab.Length == 17)) { int i = 0; // Preenche a matriz values com os valores dos campos foreach (string line in lines) { columns = line.Split('|'); int j = 0; foreach (string field in columns) { values[i, j] = field; //Console.WriteLine("\t Line[" + i + "] - Field[" + j + "]: " + field); j++; } i++; } rps = new Rps(); //string[] DadosNFPlamedAju = ParametroDAL.GetValor("DadosNFPlamedAju").Split(';'); string[] DadosNFOrigem = ParametroDAL.GetValor("DadosNFOrigem").Split(';'); // Primeira linha --> Dados do Prestador if ((lines[1].IndexOf("001|") == 0)) { rps.NumeroLote = RpsDAL.GetUltimoLote(); rps.CpfCnpj = DadosNFOrigem[0]; rps.InscricaoMunicipal = DadosNFOrigem[1]; rps.Quantidade = "1"; // Analisar o arquivo se será 1 ou N lotes por arquivo rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Numero = Convert.ToString(LoteRpsDAL.GetUltimoRPS()); //Sequencial => Controle do banco --> Só precisa ser gerado sequencialmente quando o lote for processado com sucesso rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Serie = DadosNFOrigem[2]; rps.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Tipo = DadosNFOrigem[3]; rps.InfDeclaracaoPrestacaoServico.DataEmissao = DateTime.Now.ToString("yyyy-MM-dd"); rps.InfDeclaracaoPrestacaoServico.Status = DadosNFOrigem[4]; rps.InfDeclaracaoPrestacaoServico.Competencia = rps.InfDeclaracaoPrestacaoServico.DataEmissao; rps.InfDeclaracaoPrestacaoServico.Prestador.CpfCnpj = rps.CpfCnpj; rps.InfDeclaracaoPrestacaoServico.Prestador.InscricaoMunicipal = rps.InscricaoMunicipal; } // Segunda linha --> Dados do Tomador if ((lines[2].IndexOf("002|") == 0)) { rps.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj = values[2, 1]; rps.InfDeclaracaoPrestacaoServico.Tomador.RazaoSocial = values[2, 3]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Logradouro = values[2, 11]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Numero = values[2, 12]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Bairro = values[2, 8]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.CodigoMunicipio = values[2, 6]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Uf = values[2, 7]; rps.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Cep = values[2, 10]; rps.InfDeclaracaoPrestacaoServico.Tomador.Contato.Telefone = values[2, 5]; rps.InfDeclaracaoPrestacaoServico.Tomador.Contato.Email = values[2, 4].ToLower().TrimEnd(); } // Terceira linha --> Dados do Serviço if ((lines[3].IndexOf("005|") == 0)) { decimal valorServico = Convert.ToDecimal(values[3, 1]) / 100; rps.InfDeclaracaoPrestacaoServico.Servico.Valores.ValorServicos = Convert.ToString(valorServico).Replace(",", "."); rps.InfDeclaracaoPrestacaoServico.Servico.IssRetido = DadosNFOrigem[5]; rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico = DadosNFOrigem[6]; rps.InfDeclaracaoPrestacaoServico.Servico.CodigoCnae = DadosNFOrigem[7]; rps.InfDeclaracaoPrestacaoServico.Servico.CodigoTributacaoMunicipio = rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico; rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = values[3, 18]; // Ir na tabela Regra verificar se há alguma regra estabelecida RegraTO regraGeral = RegraDAL.GetTodos("*"); if (regraGeral.Regra != null) { //string discriminacao = regraGeral.Discriminacao; rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = regraGeral.Discriminacao; } RegraTO regra = RegraDAL.GetPorCpfCnpjPrestador(rps.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj); if (regra.CpfCnpj_Prestador != null) { string discriminacao = regra.Discriminacao; string[] srt_discriminacao = discriminacao.Split('|'); foreach (string valor in srt_discriminacao) { switch (valor) { case "DataEmissao": // Campo crítico string dtEmissao = GetExpressaoComData(rps.InfDeclaracaoPrestacaoServico.DataEmissao, regra.Expressoes); discriminacao = discriminacao.Replace(valor, dtEmissao); break; case "ValorServicos": discriminacao = discriminacao.Replace(valor, rps.InfDeclaracaoPrestacaoServico.Servico.Valores.ValorServicos); break; case "IssRetido": discriminacao = discriminacao.Replace(valor, rps.InfDeclaracaoPrestacaoServico.Servico.IssRetido); break; case "ItemListaServico": discriminacao = discriminacao.Replace(valor, rps.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico); break; case "CodigoCnae": discriminacao = discriminacao.Replace(valor, rps.InfDeclaracaoPrestacaoServico.Servico.CodigoCnae); break; } } rps.InfDeclaracaoPrestacaoServico.Servico.Discriminacao = discriminacao.Replace("|", ""); } rps.InfDeclaracaoPrestacaoServico.Servico.CodigoMunicipio = DadosNFOrigem[8]; rps.InfDeclaracaoPrestacaoServico.Servico.ExigibilidadeISS = DadosNFOrigem[9]; rps.InfDeclaracaoPrestacaoServico.Servico.MunicipioIncidencia = DadosNFOrigem[10]; } rps.InfDeclaracaoPrestacaoServico.OptanteSimplesNacional = DadosNFOrigem[11]; rps.InfDeclaracaoPrestacaoServico.IncentivoFiscal = DadosNFOrigem[12]; rpsCollection.Add(rps); } } else { Console.WriteLine("Conteúdo de arquivo no formato inválido (layout inválido)."); } } else { Console.WriteLine("Arquivo no formato inválido (tipo inválido)."); } nomeArquivo = file.Name.Split('.')[0]; } } else { Console.WriteLine("Nenhum arquivo para importação."); } } catch (Exception e) { Console.WriteLine(e.Message); } return(rpsCollection); }