public JsonResult Update(Int32?IdLoteRps, Int32?Numero, String Serie, Int32?Tipo, String DataEmissao, Int32?Status, String Competencia, string ValorServico, string ISSRetido, String ItemListaServico, String CodigoCnae, String CodigoTributacaoMunicipio, String Discriminacao, String CodigoMunicipio, Int32?ExigibilidadeISS, String MunicipioIncidencia, String CpfCnpj_Prestador, String CpfCnpj_Tomador, Int32?OptanteSimplesNacional, Int32?IncentivoFiscal, Int32?Id) { string auxMsgErro = string.Empty; string auxMsgSucesso = string.Empty; RpsTO obj = new RpsTO { IdLoteRps = IdLoteRps, Numero = Numero, Serie = Serie, Tipo = Tipo, DataEmissao = DataEmissao, Status = Status, Competencia = Competencia, ValorServico = ValorServico, ISSRetido = ISSRetido, ItemListaServico = ItemListaServico, CodigoCnae = CodigoCnae, CodigoTributacaoMunicipio = CodigoTributacaoMunicipio, Discriminacao = Discriminacao, CodigoMunicipio = CodigoMunicipio, ExigibilidadeISS = ExigibilidadeISS, MunicipioIncidencia = MunicipioIncidencia, CpfCnpj_Prestador = CpfCnpj_Prestador, CpfCnpj_Tomador = CpfCnpj_Tomador, OptanteSimplesNacional = OptanteSimplesNacional, IncentivoFiscal = IncentivoFiscal, Id = Id }; if (RpsDAL.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 JsonResult Delete(Int32?Id) { string auxMsgErro = string.Empty; string auxMsgSucesso = string.Empty; RpsTO obj = new RpsTO { Id = Id }; if (RpsDAL.Delete(obj) == null) { auxMsgErro = "Falha ao tentar excluir o registro, favor tente novamente"; } else { auxMsgSucesso = "Registro excluído com sucesso"; } return(Json(new { msgErro = auxMsgErro, msgSucesso = auxMsgSucesso })); }
public JsonResult Get() { int draw = Convert.ToInt32(Request.Form["draw"]); int start = Convert.ToInt32(Request.Form["start"]); int length = Convert.ToInt32(Request.Form["length"]); string textoFiltro = Request.Form["search[value]"]; string sortColumn = Request.Form[string.Format("columns[{0}][name]", Request.Form["order[0][column]"])]; string sortColumnDir = Request.Form["order[0][dir]"]; int totRegistros = 0; int totRegistrosFiltro = 0; IList <RpsTO> dados = RpsDAL.Get(start, length, ref totRegistros, textoFiltro, ref totRegistrosFiltro, sortColumn, sortColumnDir); if (start > 0 && dados.Count == 0) { start -= length; dados = RpsDAL.Get(start, length, ref totRegistros, textoFiltro, ref totRegistrosFiltro, sortColumn, sortColumnDir); return(Json(new { draw = draw, recordsFiltered = totRegistrosFiltro, recordsTotal = totRegistros, data = dados, voltarPagina = 'S' }, JsonRequestBehavior.AllowGet)); } return(Json(new { draw = draw, recordsFiltered = totRegistrosFiltro, recordsTotal = totRegistros, data = dados }, JsonRequestBehavior.AllowGet)); }
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 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); }
private void SalvarLote(Rps dados, int count, int seq) { try { // Inserindo informacoes na tabela LoteRPS LoteRpsTO loteRpsTo = new LoteRpsTO(); loteRpsTo.NumeroLote = dados.NumeroLote; loteRpsTo.CpfCnpj = dados.CpfCnpj; loteRpsTo.InscricaoMunicipal = dados.InscricaoMunicipal; loteRpsTo.Quantidade = count; int?IdLote = LoteRpsDAL.Insert(loteRpsTo); RpsTO rps = new RpsTO(); rps.IdLoteRps = IdLote; rps.Numero = Convert.ToInt32(dados.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Numero); rps.Serie = dados.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Serie; rps.Tipo = Convert.ToInt32(dados.InfDeclaracaoPrestacaoServico.IdentificacaoRps.Tipo); rps.DataEmissao = dados.InfDeclaracaoPrestacaoServico.DataEmissao; rps.Status = 1; //Identificar rps.Competencia = rps.DataEmissao; rps.ValorServico = dados.InfDeclaracaoPrestacaoServico.Servico.Valores.ValorServicos.Replace(".", ","); rps.ISSRetido = dados.InfDeclaracaoPrestacaoServico.Servico.IssRetido; rps.ItemListaServico = dados.InfDeclaracaoPrestacaoServico.Servico.ItemListaServico; rps.CodigoCnae = dados.InfDeclaracaoPrestacaoServico.Servico.CodigoCnae; rps.CodigoTributacaoMunicipio = dados.InfDeclaracaoPrestacaoServico.Servico.CodigoTributacaoMunicipio; rps.Discriminacao = dados.InfDeclaracaoPrestacaoServico.Servico.Discriminacao; rps.CodigoMunicipio = dados.InfDeclaracaoPrestacaoServico.Servico.CodigoMunicipio; rps.ExigibilidadeISS = Convert.ToInt16(dados.InfDeclaracaoPrestacaoServico.Servico.ExigibilidadeISS); rps.MunicipioIncidencia = dados.InfDeclaracaoPrestacaoServico.Servico.MunicipioIncidencia; rps.CpfCnpj_Prestador = dados.InfDeclaracaoPrestacaoServico.Prestador.CpfCnpj; /* * //Obter CNPJ do prestador, verificar na tabela se existe * PrestadorTO prestador = new PrestadorTO(); * prestador.CpfCnpj_Prestador = dados.InfDeclaracaoPrestacaoServico.Prestador.CpfCnpj; * prestador.InscricaoMunicipal = dados.InfDeclaracaoPrestacaoServico.Prestador.InscricaoMunicipal; * * //Obter CNPJ do tomador, verificar na tabela se existe * TomadorTO tomador = new TomadorTO(); * tomador.CpfCnpj_Tomador = dados.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj; * tomador.RazaoSocial = dados.InfDeclaracaoPrestacaoServico.Tomador.RazaoSocial; * tomador.Endereco = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Logradouro; * tomador.Numero = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Numero; * tomador.Bairro = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Bairro; * tomador.CodigoMunicipio = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.CodigoMunicipio; * tomador.Uf = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Uf; * tomador.Cep = dados.InfDeclaracaoPrestacaoServico.Tomador.Endereco.Cep; * tomador.Telefone = dados.InfDeclaracaoPrestacaoServico.Tomador.Contato.Telefone; * tomador.Email = dados.InfDeclaracaoPrestacaoServico.Tomador.Contato.Email; */ rps.CpfCnpj_Tomador = dados.InfDeclaracaoPrestacaoServico.Tomador.CpfCnpj; rps.OptanteSimplesNacional = Convert.ToInt16(dados.InfDeclaracaoPrestacaoServico.OptanteSimplesNacional); rps.IncentivoFiscal = Convert.ToInt16(dados.InfDeclaracaoPrestacaoServico.IncentivoFiscal); RpsDAL.Insert(rps); } catch (Exception ex) { throw; } }