public static ContactInfo Insert(string sessionId, Contact jsonObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var contactInfo   = new CrmBEContacto();
            var contactId     = PrimaveraEngine.GenerateName(jsonObject.Nome);
            var contactsTable = PrimaveraEngine.Engine.CRM.Contactos;

            if (contactsTable.Existe(contactId))
            {
                throw new EntityExistsException("contacto", false);
            }

            contactInfo.set_Contacto(contactId);
            contactInfo.set_CriadoPor(sessionId);
            contactInfo.set_DataUltContacto(DateTime.Now);
            contactInfo.set_ID(PrimaveraEngine.generateGUID());
            SetFields(contactInfo, jsonObject);
            contactsTable.Actualiza(contactInfo);

            return(GenerateContact(contactInfo));
        }
        private static void SetFields(CrmBEContacto contactInfo, Contact jsonObject)
        {
            contactInfo.set_SexoMasculino(true);
            contactInfo.set_Nome(jsonObject.Nome);
            contactInfo.set_Email(jsonObject.Email);
            contactInfo.set_Titulo(jsonObject.Titulo);
            contactInfo.set_Telefone(jsonObject.Telefone);
            contactInfo.set_Telefone2(jsonObject.Telefone2);
            contactInfo.set_Telemovel(jsonObject.Telemovel);

            if (jsonObject.Localizacao == null)
            {
                return;
            }

            contactInfo.set_Pais(jsonObject.Localizacao.Pais);
            contactInfo.set_Morada(jsonObject.Localizacao.Morada);
            contactInfo.set_CodPostal(jsonObject.Localizacao.CodigoPostal);

            if (jsonObject.Localizacao.Pais.Equals("PT"))
            {
                if (jsonObject.Localizacao.Distrito == null)
                {
                    contactInfo.set_Distrito(null);
                    contactInfo.set_Localidade(null);
                    contactInfo.set_CodPostalLocal(null);
                }
                else
                {
                    contactInfo.set_Distrito(jsonObject.Localizacao.Distrito);
                    contactInfo.set_Localidade(jsonObject.Localizacao.Localidade);
                    contactInfo.set_CodPostalLocal(jsonObject.Localizacao.Localidade);
                }
            }
            else
            {
                contactInfo.set_Distrito(null);
                contactInfo.set_Localidade(null);
                contactInfo.set_CodPostalLocal(null);
            }
        }
 private static ContactInfo GenerateContact(CrmBEContacto contactInfo)
 {
     return(new ContactInfo()
     {
         Identficador = contactInfo.get_Contacto(),
         Cliente = CustomerIntegration.Reference("SILVA"),
         DataModificacao = contactInfo.get_DataUltContacto(),
         Responsavel = UserIntegration.Reference(contactInfo.get_CriadoPor()),
         Nome = contactInfo.get_PrimeiroNome() + " " + contactInfo.get_UltimoNome(),
         Titulo = contactInfo.get_Titulo(),
         Email = contactInfo.get_Email(),
         Telefone = contactInfo.get_Telefone(),
         Telefone2 = contactInfo.get_Telefone2(),
         Telemovel = contactInfo.get_Telemovel(),
         Localizacao = new Address
         {
             Pais = contactInfo.get_Pais(),
             Morada = contactInfo.get_Morada(),
             CodigoPostal = contactInfo.get_CodPostal(),
             Localidade = contactInfo.get_Localidade(),
             Distrito = LocationIntegration.DistritoReference(contactInfo.get_Distrito())
         }
     });
 }
Esempio n. 4
0
        /// <summary>
        /// Metodo para a gravação/actualização do contacto de um determinado cliente
        /// </summary>
        /// <param name="cliente"></param>
        /// <param name="codigo"></param>
        /// <param name="primeiroNome"></param>
        /// <param name="ultimoNome"></param>
        /// <param name="nomeCompleto"></param>
        /// <param name="morada"></param>
        /// <param name="localidade"></param>
        /// <param name="emailPrincipal"></param>
        /// <param name="emailAlternativo"></param>
        /// <param name="nrTelefone"></param>
        /// <param name="nrTelefoneAlternativo"></param>
        /// <returns></returns>
        public PrimaveraResultStructure GravarContactoCliente(string cliente, string codigo, string primeiroNome,
            string ultimoNome, string nomeCompleto, string morada, string localidade, string emailPrincipal, string emailAlternativo,
            string nrTelefone, string nrTelefoneAlternativo, string tipoContacto)
        {
            PrimaveraResultStructure result;
            string source = "GravarContactoCliente";
            try
            {
                CrmBEContacto objContacto = new CrmBEContacto();
                CrmBELinhaContactoEntidade objEntidateContacto = new CrmBELinhaContactoEntidade();

                //Valida se existe o contacto do aluno no sistema

                if (_erpBs.CRM.Contactos.Existe(codigo))
                {

                    //Actualiza os contactos do Cliente
                    objContacto = _erpBs.CRM.Contactos.Edita(codigo);

                    objContacto.set_EmModoEdicao(true);
                    objContacto.set_Contacto(codigo); //validar este campo, por ser a chave do contacto
                    objContacto.set_PrimeiroNome(primeiroNome);
                    objContacto.set_UltimoNome(ultimoNome);
                    objContacto.set_Nome(nomeCompleto);
                    objContacto.set_Morada(morada);
                    objContacto.set_Localidade(localidade);
                    objContacto.set_Telefone(nrTelefone);
                    objContacto.set_Telefone2(nrTelefoneAlternativo);
                    objContacto.set_Email(emailPrincipal);
                    objContacto.set_EmailResid(emailAlternativo);

                    objEntidateContacto = new CrmBELinhaContactoEntidade();

                    _erpBs.CRM.Contactos.Actualiza(objContacto);

                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = "Os Contactos do Aluno Actualizado Com Sucesso Completo"
                    };

                }
                else
                {

                    objContacto = new CrmBEContacto();

                    objContacto.set_ID(Guid.NewGuid().ToString());
                    objContacto.set_Contacto(codigo);
                    objContacto.set_PrimeiroNome(primeiroNome);
                    objContacto.set_UltimoNome(ultimoNome);
                    objContacto.set_Nome(nomeCompleto);
                    objContacto.set_Morada(morada);
                    objContacto.set_Localidade(localidade);
                    objContacto.set_Telefone(nrTelefone);
                    objContacto.set_Telefone2(nrTelefoneAlternativo);
                    objContacto.set_Email(emailPrincipal);
                    objContacto.set_EmailResid(emailAlternativo);

                    objEntidateContacto = new CrmBELinhaContactoEntidade();

                    objEntidateContacto.set_IDContacto(objContacto.get_ID());
                    objEntidateContacto.set_Entidade(cliente);
                    objEntidateContacto.set_TipoEntidade("C");
                    objEntidateContacto.set_Email(emailPrincipal);
                    objEntidateContacto.set_Telefone(nrTelefone);
                    objEntidateContacto.set_Telemovel(nrTelefoneAlternativo);
                    objEntidateContacto.set_TipoContacto(tipoContacto); // Para já Fixo

                    objContacto.get_LinhasEntidade().Insere(objEntidateContacto);

                    _erpBs.CRM.Contactos.Actualiza(objContacto);

                    result = new PrimaveraResultStructure()
                    {
                        codigo = 0,
                        descricao = "Codigos de Sucesso",
                        tipoProblema = "Os Contactos do Aluno Gravado Com Sucesso Completo"
                    };
                    PrimaveraWSLogger.escreveInformacao(string.Format("[{0}] O contacto {1} - {2} foi gravado e adicionado ao cliente {3} com Sucesso", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nomeCompleto, cliente), source);
                }




            }
            catch (Exception e)
            {
                result = new PrimaveraResultStructure()
                {
                    codigo = 3,
                    descricao = "Erro ao gravar o aluno - " + e.Message,
                    tipoProblema = "Erro Logica no Primavera",
                    procedimento = "Consultar os técnicos do projecto",
                    subNivel = "30 - O Erro ao gravar o aluno"
                };
                PrimaveraWSLogger.escreveErro(string.Format("[{0}] Erro ao adicionar o contacto {1} - {2} ao cliente {3} devido ao seguinte erro: {4}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss"), codigo, nomeCompleto, cliente, e.Message), source);
            }

            return result;
        }
 private static bool CheckPermissions(CrmBEContacto contactInfo, string sessionId)
 {
     return(contactInfo.get_CriadoPor() == null || contactInfo.get_CriadoPor().Equals(sessionId));
 }