on veut que le prix de vente unitaire (PV) soit celui indiqué par le franchisé si il en a un valeur à modifier : "lig2": { "ordre": 5, "titre": "Prix unitaire" } du Produit on récupère : Dans le cas d'un utilisateur avec profil Franchise | Commercial - on prendre le PV franchisé si il est rempli == att15 - sinon c'est le PV conseillé franchiseur qui prends le relai == att7 Si c'est un profil Franchiseur | SuperAdmin - alors c'est son prix de vente conseillé == att7 conernant le prix d'achat : le franchisé récupère le prix d'achat franchisé du parent (att8) le franchiseur récupére le prix d'achat fournisseru du produit parent (att6))
function getProductModuleCodes(string $id_type_produit): array
{
$module_codes = fwp7_param_objet_att_list('', $id_type_produit, 'true');
$result = [];
// tous les modules des attributs du type
foreach ($module_codes as $item) {
if (!empty($item['module_code'])) {
$result[$item['module_code']] = $item['numero'];
}
}
return $result;
}
↩️ Returns
(array)
🔧 calculateTotals_Line
Calculate totals for a line item
function calculateTotals_Line(
string $quantity,
string $unitPrice,
string $tvaRate,
string $discount_type,
$discount_value,
string $discount_applies_to = 'TTC'
): lineItem_callback {
// check des entrées
$this->validateInput($quantity, 'quantity');
$this->validateInput($unitPrice, 'unitPrice');
$this->validateInput($tvaRate, 'tvaRate');
// Validation du type de remise
if (!in_array($discount_type, ['pourcentage', 'euro', 'valeur'])) {
if($discount_type ==""){
$discount_type = 'euro';
} else {
throw new \InvalidArgumentException("Type de remise invalide: {$discount_type}. Doit être pourcentage ou euros'.");
// ... (truncated)
⚙️ Parameters
$quantity(string) The quantity of items
$unitPrice(string) The unit price
$tvaRate(string) The VAT/TVA rate
$discount_type(string) The type of discount ("pourcentage", "euro" or "")
$discount_value(mixed) The discount value
$discount_applies_to(string) Which total to apply discount to ("HT" or "TTC"), defaults to "HT"