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));
        }
Ejemplo n.º 2
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;
        }