/// <summary> /// Método responsável por retornar as informações do Serviço e montar xml das Retenções da fonte /// Analista: Gilcelaine /// Data: 04-09-2018 /// </summary> /// <param name="dto">EmpresaCliente cliente</param> /// public bool RetornaReinfFonte(EmpresaCliente cliente) { try { var codPagamento = Models.Enums.getDescription(Models.Enums.eCodigoPagamento.Aluguéis_e_royalties); bool acesso = false; string nomearquivo = ""; string strconTpAmb = ConfigurationManager.AppSettings["TpAmb"].ToString(); string strconProcEmi = ConfigurationManager.AppSettings["ProcEmi"].ToString(); string strconVerProc = ConfigurationManager.AppSettings["VerProc"].ToString(); //string strindRetif = ConfigurationManager.AppSettings["indRetif"].ToString(); string strtipoInscricao = ""; using (var infocontribuinte = new WsReinf.ConsultaEFDClient("NetTcpBinding_IConsultaEFD")) { /* FAZ UMA AUTENTICAÇÃO NO SERVIÇO E RETORNA FALSO OU VERDADEIRO */ acesso = infocontribuinte.Authenticate(cliente.UsuarioSinacor, cliente.SenhaSinacor, cliente.CodigoEmpresa); if (acesso == true) { /* PASSO AS INFORMAÇÕES QUE SÃO OBRIGATORIAS NO REQUEST */ EFDRequest request = new EFDRequest() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa), DataInicio = DateTime.Now.Date, DataFinal = DateTime.Now.AddDays(1).Date, }; EFDRequestCliente requestcliente = new EFDRequestCliente() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa), DataInicio = DateTime.Now, DataFinal = DateTime.Now }; EFDRequestInstitucional requestInstitucional = new EFDRequestInstitucional() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa), DataInicio = DateTime.Now, DataFinal = DateTime.Now }; /* CONSULTO LISTA DE RETENÇÃO CLIENTE PASSANDO O REQUEST(DADO ANTERIOR) RETORNANDO A LISTA DE RETENÇÃO */ var consulta = infocontribuinte.ConsultaListaRetencaoClientes(request).ListaRetencao; if (consulta != null && consulta.Length > 0) { foreach (var retCliente in consulta) { string imposto = Convert.ToString(retCliente.CodigoImposto); string a = retCliente.DescricaoImposto; } } /* CONSULTO DADOS DA INSTITUIÇÃO REQUEST INSTITUIÇÃO (DADO ANTERIOR) RETORNANDO A LISTA DE INSTITUIÇÃO */ var consultaInstitucional = infocontribuinte.ConsultarDadosInstituicoes(requestInstitucional).ListaInstituicoes; if (consultaInstitucional != null && consultaInstitucional.Length > 0) { foreach (var retInst in consultaInstitucional) { string imposto = Convert.ToString(retInst.ImpostoInstitucional); string Nome = retInst.Nome; string TipoPessoa = retInst.TipoPessoa; string cnpj = Convert.ToString(retInst.CPFCNPJ); string logradouro = retInst.Endereco.Logradouro; string cidade = retInst.Endereco.Cidade; string bairro = retInst.Endereco.Bairro; string estado = retInst.Endereco.Estado; string complemento = retInst.Endereco.Complemento; string cep = retInst.Endereco.CEP; string numero = retInst.Endereco.Numero; string pais = retInst.Endereco.PaisEndereco; string paisNacionalidade = retInst.Endereco.PaisNacionalidade; } } var consultaListaCpfCgc = infocontribuinte.ConsultarDadosClientes(requestcliente).ListaClientes; if (consultaListaCpfCgc != null && consultaListaCpfCgc.Length > 0) { foreach (var ListaCpfCgc in consultaListaCpfCgc) { string a = ListaCpfCgc.NomeCliente; } } /* CONSULTO DADOS DO CLIENTE PASSANDO O REQUEST(DADO ANTERIOR) RETORNANDO A LISTA DE RETENÇÃO */ var consultaCliente = infocontribuinte.ConsultarDadosClientes(requestcliente).ListaClientes; if (consultaCliente != null && consultaCliente.Length > 0) { foreach (var item in consultaCliente) { string cpfcnpjraiz = ""; string SituacaoPJ = ""; string IDEvento = ""; string strRecibo = ""; if (item.TipoPessoa == "J") { strtipoInscricao = "1"; cpfcnpjraiz = Convert.ToString(item.CPFCNPJ).Substring(0, 8); IDEvento = "ID" + strtipoInscricao + Convert.ToString(item.CPFCNPJ) + String.Format("{0:yyyyMMddHHMMss}", DateTime.Now); } else if (item.TipoPessoa == "F") { strtipoInscricao = "2"; cpfcnpjraiz = Convert.ToString(item.CPFCNPJ); SituacaoPJ = Convert.ToString(item.CodigoCondDependencia); IDEvento = "ID" + strtipoInscricao + Convert.ToString(item.CPFCNPJ) + "000" + String.Format("{0:yyyyMMddHHMMss}", DateTime.Now); //+ cliente.DataInicio.ToString("yyyy-MM-dd HH:mm:ss.fff"); } if (cliente.DataInicio.ToString("yyyy-MM"), == "2") { // a condiçao strRecibo = "1"; } RetencoesFonte cont = new RetencoesFonte() { //Informações de Identificação do Evento ID = IDEvento, IndRetif = strindRetif, NrRecibo = strRecibo, PerApur = request.DataInicio.ToString("YYYY-MM"), TpAmb = strconTpAmb, ProcEmi = strconProcEmi, VerProc = strconVerProc, TpInsc = strtipoInscricao, NrInsc = cpfcnpjraiz, //Identificação do Beneficiário e do Rendimento CodPgto = Convert.ToString(item.CodigoCondDependencia), TpInscBenef = item.TipoPessoa, NrInscBenef = cpfcnpjraiz, NmRazaoBenef = item.NomeCliente, PaisResid = item.Endereco.PaisEndereco, DscLograd = item.Endereco.Logradouro, NrLograd = item.Endereco.Numero, Complem = item.Endereco.Complemento, Bairro = item.Endereco.Bairro, Cidade = item.Endereco.Cidade, CodPostal = item.Endereco.CEP, //Informações fiscais de beneficiário residente ou domiciliado no exterior IndNIF = item.ClienteEstrangeiro, NifBenef = Convert.ToString(item.CPFCNPJEstrangeiro), RelFontePagad = item.NomeCliente, DtLaudo = request.DataInicio.ToString("yyyy-MM"), //Informações do Pagamento TpInscPgto = "TpInscPgto", NrInscPgto = "NrInscPgto", DtPgto = item.ClienteEstrangeiro, IndSuspExig = item.ClienteEstrangeiro, IndDecTerceiro = item.ClienteEstrangeiro, VlrRendTributavel = item.ClienteEstrangeiro, VlrIRRF = item.ClienteEstrangeiro, //Detalhamento das Deduções IndTpDeducao = item.ClienteEstrangeiro, VlrDeducao = item.ClienteEstrangeiro, //Rendimentos Isentos/Não Tributáveis TpIsencao = "TpIsencao", VlrIsento = item.ClienteEstrangeiro, DescRendimento = item.ClienteEstrangeiro, //Detalhamento das Competências IndPerReferencia = item.ClienteEstrangeiro, PerRefPagto = request.DataInicio.ToString("yyyy-MM"), VlrRendTributavelCompet = Convert.ToString(item.CPFCNPJ), //Compensação Judicial VlrCompAnoCalend = item.ClienteEstrangeiro, VlrCompAnoAnt = item.ClienteEstrangeiro, //Informações Complementares - Rendimentos Recebidos Acumuladamente TpProcRRA = item.ClienteEstrangeiro, NrProcRRA = item.ClienteEstrangeiro, CodSuspJud = item.ClienteEstrangeiro, NatRRA = item.ClienteEstrangeiro, QtdMesesRRA = item.ClienteEstrangeiro, VlrDespCustas = item.ClienteEstrangeiro, VlrDespAdvogados = item.ClienteEstrangeiro, TpInscAdvogado = item.ClienteEstrangeiro, NrInscAdvogado = item.ClienteEstrangeiro, VlrAdvogado = item.ClienteEstrangeiro, NrProcJud = item.ClienteEstrangeiro, IndOrigemRecursos = item.ClienteEstrangeiro, CnpjOrigemRecursos = item.ClienteEstrangeiro, VlrDepJudicial = item.ClienteEstrangeiro, DtPagto = item.ClienteEstrangeiro, VlrRet = item.ClienteEstrangeiro, TpRendimentoExt = item.ClienteEstrangeiro, FormaTributacaoExt = item.ClienteEstrangeiro, VlrPgtoExt = item.ClienteEstrangeiro, //NmCont = Convert.ToString(consultaCliente[0].Imposto[0].Conta) }; nomearquivo = Convert.ToString(item.CPFCNPJ); AdicionarXml(cont, cliente.caminho, nomearquivo); } } } else { Console.WriteLine(" Problemas na autenticação", DateTime.Now.ToString()); } } } catch (Exception ex) { throw new FaultException(ex.Message); // Console.WriteLine(" 99-Erro de gravação" + ex, DateTime.Now.ToString()); } return(true); }
public bool RetornaReinfContribuinte(EmpresaCliente cliente) { try { bool acesso = false; string strconTpAmb = ConfigurationManager.AppSettings["TpAmb"].ToString(); string strconProcEmi = ConfigurationManager.AppSettings["ProcEmi"].ToString(); string strconVerProc = ConfigurationManager.AppSettings["VerProc"].ToString(); string strClassTrib = ConfigurationManager.AppSettings["classTrib"].ToString(); string strindSitPJ = ConfigurationManager.AppSettings["indSitPJ"].ToString(); string strCnpjSoftHouse = ConfigurationManager.AppSettings["cnpjSoftHouse"].ToString(); string strnmRazaoSoftHouse = ConfigurationManager.AppSettings["nmRazao"].ToString(); string strnmContSoftHouse = ConfigurationManager.AppSettings["nmCont"].ToString(); string strtelefoneSoftHouse = ConfigurationManager.AppSettings["telefone"].ToString(); string stremailSoftHouse = ConfigurationManager.AppSettings["email"].ToString(); string AcordoIsenMulta = ""; string impostoretCliente = ""; string descricaocliente = ""; string cpfcnpjraiz = ""; string IDEvento = ""; using (var infocontribuinte = new WsReinf.ConsultaEFDClient("NetTcpBinding_IConsultaEFD")) { /* FAZ UMA AUTENTICAÇÃO NO SERVIÇO E RETORNA FALSO OU VERDADEIRO */ acesso = infocontribuinte.Authenticate(cliente.UsuarioSinacor, cliente.SenhaSinacor, cliente.CodigoEmpresa); if (acesso == true) { /* PASSO AS INFORMAÇÕES QUE SÃO OBRIGATORIAS NO REQUEST */ EFDRequest request = new EFDRequest() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa), DataInicio = cliente.DataInicio, DataFinal = cliente.DataFinal, }; EFDRequestCliente requestcliente = new EFDRequestCliente() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa), DataInicio = cliente.DataInicio, DataFinal = cliente.DataFinal, }; EFDRequestInstitucional requestInsitucional = new EFDRequestInstitucional() { CodigoEmpresa = Convert.ToInt32(cliente.CodigoEmpresa) }; /* CONSULTO LISTA DE RETENÇÃO CLIENTE PASSANDO O REQUEST(DADO ANTERIOR) RETORNANDO A LISTA DE RETENÇÃO */ var consulta = infocontribuinte.ConsultaListaRetencaoClientes(request).ListaRetencao; foreach (var retCliente in consulta) { impostoretCliente = Convert.ToString(retCliente.CodigoImposto); descricaocliente = retCliente.DescricaoImposto; } /* CONSULTO DADOS DO CLIENTE PASSANDO O REQUEST(DADO ANTERIOR) RETORNANDO A LISTA DE RETENÇÃO */ var consultaCliente = infocontribuinte.ConsultarDadosClientes(requestcliente).ListaClientes; if (strClassTrib == "60") { AcordoIsenMulta = "1"; } else { AcordoIsenMulta = "0"; } //if (item.TipoPessoa == "J") //{ // item.TipoPessoa = "1"; // cpfcnpjraiz = Convert.ToString(item.CPFCNPJ).Substring(0, 8); // IDEvento = "ID" + item.TipoPessoa + Convert.ToString(item.CPFCNPJ);//+ cliente.DataInicio; //} InformacoesContribuinte cont = new InformacoesContribuinte() { ID = IDEvento, TpAmb = strconTpAmb, //1 - Produção e 2 - Produção restrita; ProcEmi = strconProcEmi, VerProc = strconVerProc, TpInsc = "1", NrInsc = cpfcnpjraiz, IniValid = cliente.DataInicio.ToString("yyyy-MM"), FimValid = cliente.DataFinal.ToString("yyyy-MM"), ClassTrib = strClassTrib, IndEscrituracao = cliente.indEscrituracao, IndDesoneracao = cliente.indDesoneracao, IndAcordoIsenMulta = AcordoIsenMulta, IndSitPJ = strindSitPJ, NmCtt = cliente.NomeContatoContri, CpfCtt = cliente.CPFContatoContri, FoneFixo = cliente.TelefoneContatoContr, FoneCel = cliente.CelularContatoContr, Email = cliente.EmailContatoContr, CnpjSoftHouse = strCnpjSoftHouse, NmRazao = strnmRazaoSoftHouse, NmCont = strnmContSoftHouse, FoneFixosoftHouse = strtelefoneSoftHouse, EmailSoftHouse = stremailSoftHouse, }; AdicionarXml(cont, cliente.caminho); } else { Console.WriteLine(" Problemas na autenticação", DateTime.Now.ToString()); } } } catch (Exception ex) { Console.WriteLine(" 99-Erro na geração do XML" + ex, DateTime.Now.ToString()); } return(true); }