public static Lib_Primavera.Model.RespostaErro UpdContacto(Lib_Primavera.Model.Contacto contacto)
        {
            Lib_Primavera.Model.RespostaErro erro      = new Model.RespostaErro();
            CrmBEEntidadeExterna             myContact = new CrmBEEntidadeExterna();

            try
            {
                if (PriEngine.InitializeCompany(FirstREST.Properties.Settings.Default.Company.Trim(), FirstREST.Properties.Settings.Default.User.Trim(), FirstREST.Properties.Settings.Default.Password.Trim()) == true)
                {
                    if (PriEngine.Engine.CRM.EntidadesExternas.Existe(contacto.Entidade) == false)
                    {
                        erro.Erro      = 1;
                        erro.Descricao = "O contacto não existe";
                        return(erro);
                    }
                    else
                    {
                        myContact = PriEngine.Engine.CRM.EntidadesExternas.Edita(contacto.Entidade);

                        myContact.set_EmModoEdicao(true);

                        myContact.set_Morada(contacto.Morada);
                        myContact.set_CodPostal(contacto.CodPostal);
                        myContact.set_Localidade(contacto.Localidade);
                        myContact.set_Pais(contacto.Pais);
                        myContact.set_Telefone(contacto.Telefone);
                        myContact.set_Telemovel(contacto.Telemovel);
                        myContact.set_Email(contacto.Email);
                        myContact.set_Entidade(contacto.Nome.ToUpper());
                        myContact.set_Nome(contacto.Nome);
                        myContact.set_Fax(contacto.Fax);



                        PriEngine.Engine.CRM.EntidadesExternas.Actualiza(myContact);

                        erro.Erro      = 0;
                        erro.Descricao = "Sucesso";
                        return(erro);
                    }
                }
                else
                {
                    erro.Erro      = 1;
                    erro.Descricao = "Erro ao abrir a empresa";
                    return(erro);
                }
            }

            catch (Exception ex)
            {
                erro.Erro      = 1;
                erro.Descricao = ex.Message;
                return(erro);
            }
        }
        private static void SetFields(CrmBEEntidadeExterna leadInfo, Lead jsonObject)
        {
            leadInfo.set_Nome(jsonObject.Nome);
            leadInfo.set_Zona(jsonObject.Zona);
            leadInfo.set_Email(jsonObject.Email);
            leadInfo.set_Idioma(jsonObject.Idioma);
            leadInfo.set_Morada2(jsonObject.Morada2);
            leadInfo.set_Telefone(jsonObject.Telefone);
            leadInfo.set_Telefone2(jsonObject.Telefone2);
            leadInfo.set_Telemovel(jsonObject.Telemovel);
            leadInfo.set_Pais(jsonObject.Localizacao.Pais);
            leadInfo.set_EnderecoWeb(jsonObject.EnderecoWeb);
            leadInfo.set_Morada(jsonObject.Localizacao.Morada);
            leadInfo.set_NumContrib(jsonObject.NumContribuinte);
            leadInfo.set_PessoaSingular(jsonObject.PessoaSingular);
            leadInfo.set_CodPostal(jsonObject.Localizacao.CodigoPostal);

            if (jsonObject.TipoTerceiro != null)
            {
                leadInfo.set_TipoTerceiro(jsonObject.TipoTerceiro);
            }

            if (jsonObject.TipoMercado != null)
            {
                leadInfo.set_TipoMercado(jsonObject.TipoMercado);
            }

            if (jsonObject.Localizacao.Pais.Equals("PT"))
            {
                if (jsonObject.Localizacao.Distrito == null)
                {
                    leadInfo.set_Distrito(null);
                    leadInfo.set_Localidade(null);
                    leadInfo.set_CodPostalLocal(null);
                }
                else
                {
                    leadInfo.set_Distrito(jsonObject.Localizacao.Distrito);
                    leadInfo.set_Localidade(jsonObject.Localizacao.Localidade);
                    leadInfo.set_CodPostalLocal(jsonObject.Localizacao.Localidade);
                }
            }
            else
            {
                leadInfo.set_Distrito(null);
                leadInfo.set_Localidade(null);
                leadInfo.set_CodPostalLocal(null);
            }
        }