Réduction avec un salarié

Certains salariés ont droit à une remise en pourcentage (en service / hors service) sur des produits exclusivement consommables (Boisson, confiserie…) line.lineType=product.

Il est possible d’associer un employé à un panier de vente. Pour cela, on renseigne le champ employeeService du panier. Par défaut il est null, donc pas d’employé associé.

EmployeeService :

{
    "userId": "abc25f84", // id de l'employee
    "inService": false // employee est en service ou non
}

employeeService.inService est très important pour selectionner le bon taux de réduction lors de la réduction.

Calcul de réduction

Avant le calcul de la réduction, il faut affecter la réduction de l’employée en service ou hors service sur les lignes produits (uniquement consommable line.lineType=product) dans line.discountPercent.

line.discountAmount n’est pas utilisé pour cette réduction, elle gardera toujours une valeur de 0 pour une réduction aux salariés. Seul line.discountPercent sera utilisé.

graph TD a[user.reduceService] c[user.reduceHorsService] h[line.discountPercent] b[basket.employeeService != null] m[searchById->basket.employeeService.userId] u[User] i[basket.employeeService.inService] d[line.lineType == product] b --> m m --> u u --> i i --true--> a i --false--> c a--> d c --> d d --> h

Pour déterminer le taux de réduction avec un pourcentage : ̀taux_réduction = 1 - (% de réduction / 100) )

Pour appliquer la réduction on multiplie le montant au taux de réduction : montant_réduit = montant * taux_réduction

Si j’applique la réduction : 1 - tauxReduce = 1 - (line.discountPercent / 100) calcul le taux de réduction 2 - amountReduce = line.amountRealHT * tauxReduce détermine le montant réduit 3 - line.amountRealHT = round(amountReduce) affecte à la ligne du produit le montant réduit arrondie