private static CustomerInfo generateCustomer(GcpBECliente customerInfo)
 {
     return(new CustomerInfo()
     {
         Identificador = customerInfo.get_Cliente(),
         Nome = customerInfo.get_Nome(),
         Estado = customerInfo.get_Situacao(),
         Debito = customerInfo.get_DebitoContaCorrente(),
         NumContribuinte = customerInfo.get_NumContribuinte(),
         Pendentes = customerInfo.get_DebitoEncomendasPendentes(),
         DataCriacao = customerInfo.get_DataCriacao(),
         DataModificacao = customerInfo.get_DataUltimaActualizacao(),
         EnderecoWeb = customerInfo.get_EnderecoWeb(),
         Particular = customerInfo.get_PessoaSingular(),
         Telefone = customerInfo.get_Telefone(),
         Telefone2 = customerInfo.get_Fax(),
         Telemovel = customerInfo.get_Telefone2(),
         Responsavel = UserIntegration.Reference(customerInfo.get_Vendedor()),
         Localizacao = new Address
         {
             Pais = customerInfo.get_Pais(),
             Morada = customerInfo.get_Morada(),
             Localidade = customerInfo.get_Localidade(),
             CodigoPostal = customerInfo.get_CodigoPostal(),
             Distrito = LocationIntegration.DistritoReference(customerInfo.get_Distrito())
         }
     });
 }
Exemple #2
0
        public static QuoteInfo Insert(string sessionId, QuoteInfo jsonObject)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var quoteInfo = new GcpBEDocumentoVenda();

            try
            {
                SetDefaultQuotesInfo(sessionId, quoteInfo);
                SetOptionalFields(quoteInfo, jsonObject);

                if (jsonObject.Produtos != null)
                {
                    foreach (var produto in jsonObject.Produtos)
                    {
                        PrimaveraEngine.Engine.Comercial.Vendas.AdicionaLinha(quoteInfo, produto.Produto.Identificador, produto.Quantidade, "", "", produto.Preco, produto.Desconto);
                    }
                }

                PrimaveraEngine.Engine.IniciaTransaccao();
                PrimaveraEngine.Engine.Comercial.Vendas.Actualiza(quoteInfo);
                PrimaveraEngine.Engine.TerminaTransaccao();
            }
            catch (Exception ex)
            {
                PrimaveraEngine.Engine.DesfazTransaccao();
                throw ex;
            }

            return new QuoteInfo
            {
                NumEncomenda = quoteInfo.get_NumDoc(),
                Cliente = quoteInfo.get_Entidade(),
                NomeCliente = quoteInfo.get_Nome(),
                EnderecoEntrega = new Address
                {
                    Morada = quoteInfo.get_Morada(),
                    CodigoPostal = quoteInfo.get_CodigoPostal(),
                    Localidade = quoteInfo.get_Localidade(),
                    Distrito = LocationIntegration.DistritoReference(quoteInfo.get_Distrito()),
                    Pais = quoteInfo.get_Pais()
                },
                Data = quoteInfo.get_DataDoc(),
                IdOportunidade = quoteInfo.get_IdOportunidade(),
                TotalMerc = quoteInfo.get_TotalMerc(),
                Produtos = null
            };
        }
        public static CustomerInfo View(string sessionId, string customerId)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var customerInfo = PrimaveraEngine.Consulta(new SqlBuilder()
                                                        .FromTable("CLIENTES")
                                                        .Columns(sqlColumnsFull)
                                                        .Where("Cliente", Comparison.Equals, customerId));

            if (customerInfo == null || customerInfo.Vazia())
            {
                throw new NotFoundException("cliente", false);
            }

            var responsavelId = TypeParser.String(customerInfo.Valor("Vendedor"));
            var distritoId    = TypeParser.String(customerInfo.Valor("Distrito"));

            /*if (responsavelId.Equals(sessionId) == false)
             * {
             *  return null;
             * }*/

            return(new CustomerInfo()
            {
                Identificador = TypeParser.String(customerInfo.Valor("Cliente")),
                Nome = TypeParser.String(customerInfo.Valor("Nome")),
                Estado = TypeParser.String(customerInfo.Valor("Situacao")),
                Debito = TypeParser.Double(customerInfo.Valor("TotalDeb")),
                NumContribuinte = TypeParser.String(customerInfo.Valor("NumContrib")),
                Pendentes = TypeParser.Double(customerInfo.Valor("EncomendasPendentes")),
                DataCriacao = TypeParser.Date(customerInfo.Valor("DataCriacao")),
                DataModificacao = TypeParser.Date(customerInfo.Valor("DataUltimaActualizacao")),
                EnderecoWeb = TypeParser.String(customerInfo.Valor("EnderecoWeb")),
                Particular = TypeParser.Boolean(customerInfo.Valor("PessoaSingular")),
                Telefone = TypeParser.String(customerInfo.Valor("Fac_Tel")),
                Telefone2 = TypeParser.String(customerInfo.Valor("Fac_Fax")),
                Telemovel = TypeParser.String(customerInfo.Valor("Telefone2")),
                Responsavel = UserIntegration.Reference(responsavelId),
                Localizacao = new Address
                {
                    Pais = TypeParser.String(customerInfo.Valor("Pais")),
                    Morada = TypeParser.String(customerInfo.Valor("Fac_Mor")),
                    Distrito = LocationIntegration.DistritoReference(distritoId),
                    CodigoPostal = TypeParser.String(customerInfo.Valor("Fac_Cp")),
                    Localidade = TypeParser.String(customerInfo.Valor("Fac_Local"))
                }
            });
        }
 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())
         }
     });
 }
Exemple #5
0
        public static QuoteInfo View(string sessionId, string quoteId)
        {
            if (PrimaveraEngine.InitializeCompany() == false)
            {
                throw new DatabaseConnectionException();
            }

            var quoteInfo = PrimaveraEngine.Consulta(new SqlBuilder()
                .FromTable("CabecDoc")
                .Columns(sqlQuoteColumns)
                .Where("TipoDoc", Comparison.Equals, QuotesConstants.tipoDoc)
                .Where("NumDoc", Comparison.Equals, quoteId)
                .Where("Serie", Comparison.Equals, QuotesConstants.serie));

            if (quoteInfo == null || quoteInfo.Vazia())
            {
                throw new NotFoundException("encomenda", true);
            }

            if (TypeParser.String(quoteInfo.Valor("Responsavel")) != sessionId)
            {
                return null;
            }

            List<OrderInfo> quoteProducts = new List<OrderInfo>();

            var productsInfo = PrimaveraEngine.Consulta(new SqlBuilder()
                .FromTable("LinhasDoc")
                .Columns(sqlProductsColumns)
                .Where("IdCabecDoc", Comparison.Equals, quoteInfo.Valor("Id")));

            while (!productsInfo.NoFim())
            {
                quoteProducts.Add(new OrderInfo
                {
                    Quantidade = TypeParser.Integer(productsInfo.Valor("Quantidade")),
                    Preco = TypeParser.Double(productsInfo.Valor("PrecUnit")),
                    Desconto = TypeParser.Double(productsInfo.Valor("Desconto1")),
                    Iva = TypeParser.Double(productsInfo.Valor("TaxaIva")),
                    Unidade = TypeParser.String(productsInfo.Valor("Unidade")),
                    Produto = new Reference(TypeParser.String(productsInfo.Valor("Artigo")),
                    TypeParser.String(productsInfo.Valor("Descricao")))
                });

                productsInfo.Seguinte();
            }

            return new QuoteInfo
            {
                NumEncomenda = TypeParser.Integer(quoteInfo.Valor("NumDoc")),
                Cliente = TypeParser.String(quoteInfo.Valor("Entidade")),
                NomeCliente = TypeParser.String(quoteInfo.Valor("Nome")),
                EnderecoEntrega = new Address
                {
                    Morada = TypeParser.String(quoteInfo.Valor("Morada")),
                    CodigoPostal = TypeParser.String(quoteInfo.Valor("CodPostal")),
                    Localidade = TypeParser.String(quoteInfo.Valor("Localidade")),
                    Distrito = LocationIntegration.DistritoReference(TypeParser.String(quoteInfo.Valor("Distrito"))),
                    Pais = TypeParser.String(quoteInfo.Valor("Pais"))
                },
                Data = TypeParser.Date(quoteInfo.Valor("Data")),
                IdOportunidade = TypeParser.String(quoteInfo.Valor("IdOportunidade")),
                TotalDesc = TypeParser.Double(quoteInfo.Valor("TotalDesc")),
                TotalIva = TypeParser.Double(quoteInfo.Valor("TotalIva")),
                TotalMerc = TypeParser.Double(quoteInfo.Valor("TotalMerc")),
                TotalDocumento = TypeParser.Double(quoteInfo.Valor("TotalDocumento")),
                NumContribuinte = TypeParser.String(quoteInfo.Valor("NumContribuinte")),
                Produtos = quoteProducts
            };
        }