Browse Source

- permetttre de définir un prix comme prox total

- corrections calcul prix de l'objet : retrourner un oprix même si aucune extension est choisi
svn/root/trunk
Rainer 11 months ago
parent
commit
17ef5d81de

+ 1
- 1
base/prix_objets.php View File

@@ -42,10 +42,10 @@ function prix_objets_declarer_tables_principales($tables_principales) {
42 42
 		'objet' => 'varchar(25) not null default ""',
43 43
 		"id_objet" => "bigint(21) NOT NULL",
44 44
 		"titre" => "varchar(255)  DEFAULT '' NOT NULL",
45
-		"reference" => "varchar(255)  DEFAULT '' NOT NULL",
46 45
 		"code_devise" => "varchar(3) NOT NULL",
47 46
 		"prix_ht" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
48 47
 		"prix" => "decimal(15,2) NOT NULL DEFAULT '0.00'",
48
+		"prix_total" => "int(1) NOT NULL DEFAULT '0'",
49 49
 		"taxe" => "varchar(10)  DEFAULT '' NOT NULL",
50 50
 		'extension' => 'varchar(50) not null default ""',
51 51
 		"id_extension" => "bigint(21) NOT NULL",

+ 5
- 0
formulaires/prix.html View File

@@ -43,6 +43,11 @@
43 43
 			[(#SAISIE{input,taxe,
44 44
 					label=<:prix_objets:taxes_surcharge:>})]
45 45
 
46
+			[(#SAISIE{oui_non,prix_total,
47
+					label=<:prix_objets:champ_prix_total_label:>,
48
+					valeur_oui=1,
49
+					valeur_non=0})]
50
+
46 51
 			#GENERER_SAISIES{#ENV{_saisies_extras}}
47 52
 
48 53
 			<!--fini champs!-->

+ 6
- 2
formulaires/prix.php View File

@@ -52,7 +52,8 @@ function formulaires_prix_charger_dist($id_objet, $objet = 'article') {
52 52
 		'objet_titre' => '',
53 53
 		'taxes' => $taxes,
54 54
 		'taxe' => '',
55
-		'visible' => _request('visible') ? _request('visible') : ''
55
+		'visible' => _request('visible') ? _request('visible') : '',
56
+		'prix_total' => 0,
56 57
 	);
57 58
 
58 59
 	$valeurs['_hidden'] = '<input type="hidden" name="objet" value="' . $objet . '">';
@@ -119,6 +120,7 @@ function formulaires_prix_traiter_dist($id_objet, $objet = 'article') {
119 120
 	$prix = _request('prix');
120 121
 	$id_declinaison = _request('id_declinaison');
121 122
 	$extensions =  _request('extensions') ? explode(',', _request('extensions')) : array();
123
+	$prix_total = _request('prix_total');
122 124
 
123 125
 	// Génération du titre
124 126
 	$titre = extraire_multi(supprimer_numero(generer_info_entite($id_objet, $objet, 'titre', '*')));
@@ -169,7 +171,8 @@ function formulaires_prix_traiter_dist($id_objet, $objet = 'article') {
169 171
 						'id_objet' => $id_objet,
170 172
 						'titre' => $titre_secondaire,
171 173
 						'extension' => $extension,
172
-						'id_extension' => $id
174
+						'id_extension' => $id,
175
+						'prix_total' => $prix_total,
173 176
 					);
174 177
 				}
175 178
 			}
@@ -201,6 +204,7 @@ function formulaires_prix_traiter_dist($id_objet, $objet = 'article') {
201 204
 			'taxe' => _request('taxe'),
202 205
 			'prix' => 0,
203 206
 			'prix_ht' => 0,
207
+			'prix_total' => $prix_total,
204 208
 			'rang_lien' => $dernier_rang + 1,
205 209
 		);
206 210
 

+ 1
- 0
lang/prix_objets_fr.php View File

@@ -12,6 +12,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
12 12
 	'ajouter_prix' => 'Ajouter un prix',
13 13
 
14 14
 	// C
15
+	'champ_prix_total_label' => 'Prix total',
15 16
 	'choisir' => 'Sélectionner',
16 17
 	'choix_devise' => 'Devise',
17 18
 	'choix_devises' => 'Choix des devises',

+ 2
- 2
paquet.xml View File

@@ -1,12 +1,12 @@
1 1
 <paquet
2 2
 	prefix="prix_objets"
3 3
 	categorie="edition"
4
-	version="2.1.3"
4
+	version="2.1.4"
5 5
 	etat="stable"
6 6
 	compatibilite="[3.0.5;3.2.*]"
7 7
 	logo="prive/themes/spip/images/prix_objets-64.png"
8 8
 	documentation="https://contrib.spip.net/Prix-Objets"
9
-	schema="2.1.2"
9
+	schema="2.1.4"
10 10
 >
11 11
 
12 12
 	<nom>Prix Objets</nom>

+ 3
- 0
prix_objets_administrations.php View File

@@ -70,6 +70,9 @@ function prix_objets_upgrade($nom_meta_base_version, $version_cible) {
70 70
 	$maj['2.1.1']  = array(
71 71
 		array('maj_tables', array('spip_prix_objets')),
72 72
 	);
73
+	$maj['2.1.4']  = array(
74
+		array('maj_tables', array('spip_prix_objets')),
75
+	);
73 76
 
74 77
 	include_spip('base/upgrade');
75 78
 	maj_plugin($nom_meta_base_version, $version_cible, $maj);

+ 19
- 13
prix_objets_fonctions.php View File

@@ -426,7 +426,7 @@ function prix_par_objet($objet, $id_objet, $contexte, $type = 'prix_ht', $option
426 426
 	}
427 427
 
428 428
 	$prix_source = sql_select(
429
-			'id_prix_objet',
429
+			'id_prix_objet,prix_total',
430 430
 			'spip_prix_objets',
431 431
 			'id_prix_objet_source=0 AND objet LIKE ' . sql_quote($objet) . ' AND id_objet=' . $id_objet,
432 432
 			'',
@@ -436,29 +436,35 @@ function prix_par_objet($objet, $id_objet, $contexte, $type = 'prix_ht', $option
436 436
 	// On parcours les extension pour chaque prix principal.
437 437
 	while ($data_source = sql_fetch($prix_source)) {
438 438
 		$id_prix_objet = $data_source['id_prix_objet'];
439
+		set_request('prix_total', $data_source['prix_total']);
439 440
 		$extensions = sql_select(
440 441
 				'extension,id_extension,titre',
441 442
 				'spip_prix_objets',
442 443
 				'id_prix_objet_source=' . $id_prix_objet);
443
-		$applicables = array();
444
-		$i = 0;
445
-		while ($data_extension = sql_fetch($extensions)) {
446
-			$i++;
447 444
 
448
-			if($extension = charger_fonction($data_extension['extension'], 'prix_objet/', TRUE)) {
449
-				if ($extension($data_extension['id_extension'], $contexte)) {
445
+		if (sql_count($data_extension) > 0) {
446
+			$applicables = array();
447
+			$i = 0;
448
+			while ($data_extension = sql_fetch($extensions)) {
449
+				$i++;
450
+				if($extension = charger_fonction($data_extension['extension'], 'prix_objet/', TRUE)) {
451
+					if ($extension($data_extension['id_extension'], $contexte)) {
452
+						$applicables[] = 1;
453
+					}
454
+				}
455
+				else {
450 456
 					$applicables[] = 1;
451 457
 				}
452 458
 			}
453
-			else {
454
-				$applicables[] = 1;
459
+
460
+			// On choisit le premier prix applicable.
461
+			if (count($applicables) == $i) {
462
+				$prix = $fonction_prix('prix_objet', $id_prix_objet);
463
+				break;
455 464
 			}
456 465
 		}
457
-
458
-		// On choisit le premier prix applicable.
459
-		if (count($applicables) == $i) {
466
+		else {
460 467
 			$prix = $fonction_prix('prix_objet', $id_prix_objet);
461
-			break;
462 468
 		}
463 469
 	}
464 470
 

Loading…
Cancel
Save