Fórum
Ver pergunta

Linha da fatura não assume o preço da unidade que lhe dou   

83 visualizações
0
0

Bom dia,

Estou a tentar integrar o jasmin com uma aplicação mas não consigo criar faturas com as linhas desejadas. Na documentação, na secção do ApiInvoiceDocumentLinesResource, está escrito o seguinte sobre o unitPrice:
unitPrice(decimal) : The invoice’s line item unit price. The default price is loaded from sales item prices when there is a match on the combination of price list, currency, tax included and unit.

No entanto, se ele não encontra um match, ele passa um valor vazio e a fatura é criada com uns items que tem o preço a 0. ( Ver anexos )

Alguém me consegue confirmar que isto é o comportamento correcto? Se não,  o que estou a fazer mal? Em baixo, envio o pedido postman que estou a usar:

{
    "documentType": "FA",
    "seriesNumber": 1,
    "paymentTerm": "00",
    "paymentMethod": "TRA",
    "documentDate": "2024-02-12T15:30:00",
    "postingDate": "2024-02-12T15:30:00",
    "buyerCustomerParty": "INDIF",
    "isSeriesCommunicated": false,
    "documentLines":
    [{
        "salesItem": "ARTIGOTESTE",
        "quantity": 1,
        "unitPrice": 31.5,
        "itemType": 1
    },
    {
        "salesItem": "STARTER",
        "quantity": 1,
        "unit": "UN",
        "unitPrice": 2.12,
        "itemType": 1
    }
    ]
}

 

 

Faça login para poder traduzir
Integração
API Endpoints
Jasmin
Marcado como spam
Criado há 1 ano e 4 meses pedrosousa-2
p
pedrosousa-2 Iniciante
2 respostas
0
Resposta privada

Olá Pedro,
O problema está na forma como estás a passar o valor.
Os atributos do tipo valor monetário são de facto um objecto com várias propriedades. Exemplo

"unitPrice": {
                "amount": 31.5,
                "baseAmount": 31.5,
                "reportingAmount": 31.5,
                "fractionDigits": 2,
                "symbol": "€"
            },

Se estás a criar o documento na mesma moeda da moeda da empresa (ex: EUR) podes passar apenas o valor na moeda do documento (não sendo necessário indicar os valor da conversão deste para a moeda da empresa ou a moeda de reporting.
Assim, terás apenas que indicar:

"unitPrice": {
                "amount": 31.5
            },

Isto significa que (da forma como estavas a passar) o sistema tratava essa valor como null, uma vez que não era possível fazer o parsing do valor, num objecto.
Sendo null, seria aplicado o mecanismo que referes para seleção de preço e na falta de um match, seria utilizado o valor zéro.

Se olhares para as collections que disponibilizamos para o Postman, dúvidas como esta seriam fácilmente ultrapassadas...

Faça login para poder traduzir
Marcado como spam
Criado há 1 ano e 1 mês eduardosilva
e
eduardosilva Responsiveness Member
    0
    Resposta privada

    boa tarde,
    Encontrei o link que acho que te pode ajudar:
    Como criar uma encomenda de vendas? - Developers Network (cegid.com)
    A forma como e colocado o preço e diferente.
    Exemplo:

    Price = new Price()
    {
    Value = 50,
    Currency = "€"
    }
    Faça login para poder traduzir
    Marcado como spam
    Criado há 1 ano e 4 meses alionapaduraru
    alionapaduraru Responsiveness Member
      Comentários
      Olá, Esse link não ajuda, eu estou a tentar criar uma fatura, no exemplo estão a criar uma encomenda. Os pedidos que nós fazemos estão em formato JSON, por isso se houver uma solução, teria que ser algo como mostrado no post, onde eu conseguisse definir o unit price no momento do pedido, ao invés de depender de um match entre 4 coisas. Eu entendo que o exemplo é em C# e basicamente usam bibliotecas para formar o pedido, mas isso não me serve se não consigo ver como ficaria o JSON. Além de que é uma entidade diferente. Só quero perceber se a API tem esta flexibilidade porque manualmente na plataforma é possível mudar o preço de um item no momento de criação de fatura. Obrigado
      1 ano e 4 meses
      pedrosousa-2