Esempio n. 1
0
        public XmlDocument ObterOS(string NumeroDaOS, string LoginDoPostoAutorizado, string SenhaDoPostoAutorizado)
        {
            StringBuilder xml = new StringBuilder("<Ocorrencia>"); // "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Intelbras xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.microsoft.com/crm/2009/WebServices\">";

            try
            {
                if (!VerificaAcessoDoPosto(LoginDoPostoAutorizado, SenhaDoPostoAutorizado))
                {
                    Exception AcessoNegado = new Exception("ACESSO NEGADO");
                    throw AcessoNegado;
                }


                Ocorrencia ocorrencia = new Ocorrencia(nomeOrganizacao, false);
                ocorrencia = ocorrencia.ObterOcorrenciaPor(NumeroDaOS);

                if (ocorrencia != null)
                {
                    xml.AppendLine("<Numero>" + ocorrencia.Numero + "</Numero>");
                    xml.AppendLine("<StatusOcorrencia>" + ocorrencia.Status + "</StatusOcorrencia>");
                    xml.AppendLine("<DataDeAberturaInformada>" + (ocorrencia.DataOrigem.HasValue ? ocorrencia.DataOrigem.Value.Date.ToShortDateString() : "") + "</DataDeAberturaInformada>");
                    xml.AppendLine("<DataDeAberturaDigitada>" + (ocorrencia.DataDeAberturaDigitada.HasValue ? ocorrencia.DataDeAberturaDigitada.Value.Date.ToShortDateString() : "") + "</DataDeAberturaDigitada>");
                    xml.AppendLine("<DataDeConsertoInformada>" + (ocorrencia.DataDeConsertoInformada.HasValue ? ocorrencia.DataDeConsertoInformada.Value.Date.ToShortDateString() : "") + "</DataDeConsertoInformada>");
                    xml.AppendLine("<DataDeConsertoDigitada>" + (ocorrencia.DataDeConsertoDigitada.HasValue ? ocorrencia.DataDeConsertoDigitada.Value.Date.ToShortDateString() : "") + "</DataDeConsertoDigitada>");
                    xml.AppendLine("<DataDeEntregaClienteInformada>" + (ocorrencia.DataDeEntregaClienteInformada.HasValue ? ocorrencia.DataDeEntregaClienteInformada.Value.Date.ToShortDateString() : "") + "</DataDeEntregaClienteInformada>");
                    xml.AppendLine("<DataDeEntregaClienteDigitada>" + (ocorrencia.DataDeEntregaClienteDigitada.HasValue ? ocorrencia.DataDeEntregaClienteDigitada.Value.Date.ToShortDateString() : "") + "</DataDeEntregaClienteDigitada>");
                    xml.AppendLine("<ValorServico>" + (ocorrencia.ValorServico.HasValue ? ocorrencia.ValorServico.Value.ToString("N") : "") + "</ValorServico>");
                    xml.AppendLine("<RetiradoPorCPF>" + ocorrencia.RetiradoPorCPF + "</RetiradoPorCPF>");
                    xml.AppendLine("<RetiradoPorNome>" + ocorrencia.RetiradoPorNome + "</RetiradoPorNome>");
                    xml.AppendLine("<DefeitoAlegado>" + ocorrencia.DefeitoAlegado + "</DefeitoAlegado>");
                    xml.AppendLine("<AcessoriosOpcionais>" + ocorrencia.AcessoriosOpcionais + "</AcessoriosOpcionais>");
                    xml.AppendLine("<AparenciaDoProduto>" + ocorrencia.AparenciaDoProduto + "</AparenciaDoProduto>");
                    xml.AppendLine("<SolicitantePortal>" + ocorrencia.SolicitantePortal + "</SolicitantePortal>");
                    xml.AppendLine("<EmIntervencaoTecnica>" + ocorrencia.EmIntervencaoTecnica.Value + "</EmIntervencaoTecnica>");
                    xml.AppendLine("<Observacoes>" + ocorrencia.DescricaoDaMensagemDeIntegracao + "</Observacoes>");

                    xml.AppendLine("<ProdutoPricipal>");

                    if (ocorrencia.Produto != null)
                    {
                        xml.AppendLine("<Codigo>" + ocorrencia.Produto.Codigo + "</Codigo>");
                        xml.AppendLine("<Nome>" + ocorrencia.Produto.Nome + "</Nome>");
                        xml.AppendLine("<NumeroDeSerie>" + ocorrencia.ProdutosDoCliente + "</NumeroDeSerie>");
                    }

                    xml.AppendLine("</ProdutoPricipal>");

                    xml.AppendLine("<Cliente>");

                    if (ocorrencia.ClienteId != null && ocorrencia.ClienteId.Type == "account")
                    {
                        xml.AppendLine("<Codigo>" + ocorrencia.Cliente.CodigoMatriz + "</Codigo>");
                        xml.AppendLine("<CPFouCNPJ>" + ocorrencia.Cliente.CpfCnpj + "</CPFouCNPJ>"); //ou vai estar preenchido um ou o outro
                        xml.AppendLine("<Nome>" + ocorrencia.Cliente.Nome + "</Nome>");
                        xml.AppendLine("<Email>" + ocorrencia.Cliente.Email + "</Email>");
                        xml.AppendLine("<TelefonePrincipal>" + ocorrencia.Cliente.Telefone + "</TelefonePrincipal>");
                        xml.AppendLine("<Endereco>");
                        xml.AppendLine("<Logradouro>" + ocorrencia.Cliente.Endereco1Rua + "</Logradouro>");
                        xml.AppendLine("<Numero>" + ocorrencia.Cliente.Endereco1Numero + "</Numero>");
                        xml.AppendLine("<Complemento>" + ocorrencia.Cliente.Endereco1Complemento + "</Complemento>");
                        xml.AppendLine("<Cep>" + ocorrencia.Cliente.Endereco1CEP + "</Cep>");
                        xml.AppendLine("<Bairro>" + ocorrencia.Cliente.Endereco1Bairro + "</Bairro>");
                        xml.AppendLine("<Cidade>" + (ocorrencia.Cliente.Endereco1Municipioid != null ? ocorrencia.Cliente.Endereco1Municipioid.Name : "") + "</Cidade>");
                        xml.AppendLine("<Uf>" + (ocorrencia.Cliente.Endereco1Estadoid != null ? ocorrencia.Cliente.Endereco1Estadoid.Name : "") + "</Uf>");
                        xml.AppendLine("</Endereco>");
                    }
                    else if (ocorrencia.ClienteId != null && ocorrencia.ClienteId.Type == "contact")
                    {
                        xml.AppendLine("<Codigo>" + ocorrencia.ClienteOS.CodigoRemetente + "</Codigo>");
                        xml.AppendLine("<CPFouCNPJ>" + ocorrencia.ClienteOS.CpfCnpj + "</CPFouCNPJ>");
                        xml.AppendLine("<Nome>" + ocorrencia.ClienteOS.Nome + "</Nome>");
                        xml.AppendLine("<Email>" + ocorrencia.ClienteOS.Email1 + "</Email>");
                        xml.AppendLine("<TelefonePrincipal>" + ocorrencia.ClienteOS.TelefoneComercial + "</TelefonePrincipal>");
                        xml.AppendLine("<Endereco>");
                        xml.AppendLine("<Logradouro>" + ocorrencia.ClienteOS.Endereco1Rua + "</Logradouro>");
                        xml.AppendLine("<Numero>" + ocorrencia.ClienteOS.Endereco1Numero + "</Numero>");
                        xml.AppendLine("<Complemento>" + ocorrencia.ClienteOS.Endereco1Complemento + "</Complemento>");
                        xml.AppendLine("<Cep>" + ocorrencia.ClienteOS.Endereco1CEP + "</Cep>");
                        xml.AppendLine("<Bairro>" + ocorrencia.ClienteOS.Endereco1Bairro + "</Bairro>");
                        xml.AppendLine("<Cidade>" + (ocorrencia.ClienteOS.Endereco1Municipioid != null ? ocorrencia.ClienteOS.Endereco1Municipioid.Name : "") + "</Cidade>");
                        xml.AppendLine("<Uf>" + (ocorrencia.ClienteOS.Endereco1Estadoid != null ? ocorrencia.ClienteOS.Endereco1Estadoid.Name : "") + "</Uf>");
                        xml.AppendLine("</Endereco>");
                    }
                    xml.AppendLine("</Cliente>");

                    xml.AppendLine("<NotaFiscalFatura>");
                    xml.AppendLine("<DataDeCompra>" + (ocorrencia.DataConstadoNotaFiscalDeCompra.HasValue ? ocorrencia.DataConstadoNotaFiscalDeCompra.Value.ToShortDateString() : "") + "</DataDeCompra>");
                    xml.AppendLine("<NumeroNF>" + ocorrencia.NumeroNotaFiscalDeCompra + "</NumeroNF>");
                    xml.AppendLine("<NomeClienteNF>" + ocorrencia.NomeConstadoNaNotaFiscalDeCompra + "</NomeClienteNF>");
                    xml.AppendLine("<CPFCNPJClienteNF>" + ocorrencia.CpfCnpjConstadoNaNotaFiscalDeCompra + "</CPFCNPJClienteNF>");
                    xml.AppendLine("<Revenda>");
                    xml.AppendLine("<Cnpj>" + ocorrencia.CnpjDaLojaDoAtendimento + "</Cnpj>");
                    xml.AppendLine("<RazaoSocial>" + ocorrencia.NomeDaLojaDoAtendimento + "</RazaoSocial>");
                    xml.AppendLine("<TelefonePrincipal>" + ocorrencia.TelefoneDaLojaDoAtendimento + "</TelefonePrincipal>");
                    xml.AppendLine("</Revenda>");
                    xml.AppendLine("</NotaFiscalFatura>");

                    xml.AppendLine("<PostoDeServico>");
                    if (ocorrencia.Autorizada != null)
                    {
                        xml.AppendLine("<CodigoPosto>" + ocorrencia.Autorizada.CodigoMatriz + "</CodigoPosto>");
                        xml.AppendLine("<Login>" + ocorrencia.SolicitantePortal + "</Login>");
                    }
                    xml.AppendLine("</PostoDeServico>");

                    if (ocorrencia.Diagnosticos != null && ocorrencia.Diagnosticos.Count > 0)
                    {
                        for (int x = 0; x < ocorrencia.Diagnosticos.Count; x++)
                        {
                            xml.AppendLine("<ServicosExecutados>");
                            xml.AppendLine("<Status>" + (Domain.Enum.StatusDoDiagnostico)ocorrencia.Diagnosticos[x].RazaoStatus + "</Status>");
                            xml.AppendLine("<Defeito>" + (ocorrencia.Diagnosticos[x].DefeitoId != null ? ocorrencia.Diagnosticos[x].DefeitoId.Name : "") + "</Defeito>");
                            xml.AppendLine("<Solucao>" + (ocorrencia.Diagnosticos[x].SolucaoId != null ? ocorrencia.Diagnosticos[x].SolucaoId.Name : "") + "</Solucao>");
                            xml.AppendLine("<QtdeSolicitada>" + (ocorrencia.Diagnosticos[x].QuantidadeSolicitada.HasValue ? ocorrencia.Diagnosticos[x].QuantidadeSolicitada.Value.ToString() : "") + "</QtdeSolicitada>");
                            xml.AppendLine("<DataPedidoEmitidoERP>" + (ocorrencia.Diagnosticos[x].DataPedidoEmitidoERP.HasValue ? ocorrencia.Diagnosticos[x].DataPedidoEmitidoERP.Value.Date.ToShortDateString() : "") + "</DataPedidoEmitidoERP>");
                            xml.AppendLine("<DataFaturamentoERP>" + (ocorrencia.Diagnosticos[x].DataFaturamentoERP.HasValue ? ocorrencia.Diagnosticos[x].DataFaturamentoERP.Value.Date.ToShortDateString() : "") + "</DataFaturamentoERP>");
                            xml.AppendLine("<NumeroNotaFiscal>" + ocorrencia.Diagnosticos[x].NumeroNotaFiscal + "</NumeroNotaFiscal>");
                            xml.AppendLine("<SerieNotaFiscal>" + ocorrencia.Diagnosticos[x].SerieNotaFiscal + "</SerieNotaFiscal>");
                            xml.AppendLine("<Produto>" + ocorrencia.Diagnosticos[x].Produto.Codigo + "</Produto>");
                            xml.AppendLine("<Item>" + ocorrencia.Diagnosticos[x].Produto.Nome + "</Item>");
                            xml.AppendLine("</ServicosExecutados>");
                        }
                    }
                    else
                    {
                        xml.AppendLine("<ServicosExecutados></ServicosExecutados>");
                    }
                }
                else
                {
                    //base.Mensageiro.AdicionarTopico("Achou", false);
                }
            }
            catch (Exception erro)
            {
                //return base.TratarErro("Não foi possível realizar a pesquisa pelo seguinte motivo: " + erro.Message + " - " + erro.StackTrace.ToString(), erro, "CalcularDiferencaEntreDatas");
                xml.AppendLine("<ERRO>Não foi possível realizar a pesquisa pelo seguinte motivo: " + erro.Message + " - " + erro.StackTrace.ToString() + "</ERRO>");
            }

            xml.AppendLine("</Ocorrencia>");
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml.ToString());
            return(doc);
        }