Auguria_Sponsorship - Version 1.4.0

Version Notes

Resolve bug in separated mode
Add ability to customer to choose using points in cart

Download this release

Release Info

Developer Auguria
Extension Auguria_Sponsorship
Version 1.4.0
Comparing to
See all releases


Code changes from version 1.3.43 to 1.4.0

Files changed (22) hide show
  1. app/code/community/Auguria/Sponsorship/Block/Cart/Exchange.php +98 -0
  2. app/code/community/Auguria/Sponsorship/Block/Sales/Order/Totals.php +23 -23
  3. app/code/community/Auguria/Sponsorship/Helper/Config.php +463 -441
  4. app/code/community/Auguria/Sponsorship/Lib/OpenInviter/config.php +2 -2
  5. app/code/community/Auguria/Sponsorship/Model/Observer.php +1155 -1138
  6. app/code/community/Auguria/Sponsorship/Model/Total/Quote/Discount.php +116 -107
  7. app/code/community/Auguria/Sponsorship/controllers/CartController.php +29 -0
  8. app/code/community/Auguria/Sponsorship/controllers/PointsController.php +463 -461
  9. app/code/community/Auguria/Sponsorship/controllers/PointsController.php~ +0 -471
  10. app/code/community/Auguria/Sponsorship/etc/config.xml +1 -1
  11. app/code/community/Auguria/Sponsorship/etc/system.xml +241 -211
  12. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-0.1.2-0.1.3.php +72 -72
  13. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-0.1.7-0.1.8.php +36 -36
  14. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.10-1.1.0.php +37 -37
  15. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.3-1.0.4.php +12 -12
  16. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.7-1.0.8.php +7 -7
  17. app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.8-1.0.9.php +23 -23
  18. app/design/frontend/base/default/layout/auguria/sponsorship.xml +35 -28
  19. app/design/frontend/base/default/template/auguria/sponsorship/cart/exchange.phtml +72 -0
  20. app/design/frontend/base/default/template/auguria/sponsorship/customer/account/fidelitypointsdetail.phtml +3 -3
  21. app/locale/fr_FR/Auguria_Sponsorship.csv +283 -278
  22. package.xml +6 -7
app/code/community/Auguria/Sponsorship/Block/Cart/Exchange.php ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sponsorship
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ class Auguria_Sponsorship_Block_Cart_Exchange extends Mage_Core_Block_Template
9
+ {
10
+ public function isActivated($module)
11
+ {
12
+ if ($module == 'sponsor') {
13
+ $module = 'sponsorship';
14
+ }
15
+ $activated = Mage::helper('auguria_sponsorship/config')->getCartExchangeActivated($module);
16
+ if (isset($activated[$module]) && $activated[$module] == true) {
17
+ return true;
18
+ }
19
+ return false;
20
+ }
21
+
22
+ public function isAutomatic($module)
23
+ {
24
+ if ($module == 'sponsor') {
25
+ $module = 'sponsorship';
26
+ }
27
+ $isAutomatic = Mage::helper('auguria_sponsorship/config')->isCartExchangeAutomatic($module);
28
+ if (isset($isAutomatic[$module]) && $isAutomatic[$module] == true) {
29
+ return true;
30
+ }
31
+ return false;
32
+ }
33
+
34
+ public function isPointUseActivated($module)
35
+ {
36
+ if ($module == 'sponsor') {
37
+ $module = 'sponsorship';
38
+ }
39
+ if (Mage::getSingleton('checkout/session')->getData('use_sponsorship_points_'.$module) == true) {
40
+ return true;
41
+ }
42
+ return false;
43
+ }
44
+
45
+ public function getAvailablePoints($module)
46
+ {
47
+ $availablePoints = Mage::helper('auguria_sponsorship')->getCustomerAvailablePoints();
48
+ if ($module == 'sponsor') {
49
+ $module = 'sponsorship';
50
+ }
51
+ if (isset($availablePoints[$module])) {
52
+ return (float)$availablePoints[$module];
53
+ }
54
+ return 0;
55
+ }
56
+
57
+ public function getPointsToCashConfig($module)
58
+ {
59
+ if ($module == 'sponsor') {
60
+ $module = 'sponsorship';
61
+ }
62
+ $pointsToCashConfig = Mage::helper('auguria_sponsorship/config')->getPointsToCash();
63
+ if (isset($pointsToCashConfig[$module])) {
64
+ return (float)$pointsToCashConfig[$module];
65
+ }
66
+ return 0;
67
+ }
68
+
69
+ public function getAvailableCash($module)
70
+ {
71
+ if ($module == 'sponsor') {
72
+ $module = 'sponsorship';
73
+ }
74
+ $cash = Mage::helper('auguria_sponsorship')->getCash();
75
+ if (isset($cash[$module])) {
76
+ return (float)$cash[$module];
77
+ }
78
+ return 0;
79
+ }
80
+ /*
81
+ public function getDiscountAmount($module)
82
+ {
83
+ $subtotal = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal();
84
+ $availableCash = $this->getAvailableCash($module);
85
+ return min(array($subtotal, $availableCash));
86
+ }
87
+
88
+ public function getReminingPoints($module, $availablePoints, $discountAmount)
89
+ {
90
+ $pointsToCash = $this->getPointsToCashConfig($module);
91
+ if ($pointsToCash > 0) {
92
+ $discountPoint = $discountAmount / $pointsToCash;
93
+ return max(array(0, $availablePoints - $discountPoint));
94
+ }
95
+ return 0;
96
+ }
97
+ */
98
+ }
app/code/community/Auguria/Sponsorship/Block/Sales/Order/Totals.php CHANGED
@@ -1,24 +1,24 @@
1
- <?php
2
- /**
3
- * @category Auguria
4
- * @package Auguria_Sponsorship
5
- * @author Auguria
6
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
- */
8
- class Auguria_Sponsorship_Block_Sales_Order_Totals extends Mage_Sales_Block_Order_Totals
9
- {
10
- protected function _initTotals()
11
- {
12
- parent::_initTotals();
13
- $source = $this->getSource();
14
- if (((float)$this->getSource()->getAuguriaSponsorshipDiscountAmount()) != 0) {
15
- $auguriaSponsorshipDiscountTotal = new Varien_Object(array(
16
- 'code' => 'auguria_sponsorship_discount',
17
- 'value'=> $source->getAuguriaSponsorshipDiscountAmount(),
18
- 'label'=> Mage::helper('auguria_sponsorship')->__('Sponsorship and fidelity discount')
19
- ));
20
- $this->addTotal($auguriaSponsorshipDiscountTotal);
21
- }
22
- return $this;
23
- }
24
  }
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sponsorship
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ class Auguria_Sponsorship_Block_Sales_Order_Totals extends Mage_Sales_Block_Order_Totals
9
+ {
10
+ protected function _initTotals()
11
+ {
12
+ parent::_initTotals();
13
+ $source = $this->getSource();
14
+ if (((float)$this->getSource()->getAuguriaSponsorshipDiscountAmount()) != 0) {
15
+ $auguriaSponsorshipDiscountTotal = new Varien_Object(array(
16
+ 'code' => 'auguria_sponsorship_discount',
17
+ 'value'=> $source->getAuguriaSponsorshipDiscountAmount(),
18
+ 'label'=> Mage::helper('auguria_sponsorship')->__('Sponsorship and fidelity discount')
19
+ ));
20
+ $this->addTotal($auguriaSponsorshipDiscountTotal);
21
+ }
22
+ return $this;
23
+ }
24
  }
app/code/community/Auguria/Sponsorship/Helper/Config.php CHANGED
@@ -1,442 +1,464 @@
1
- <?php
2
- /**
3
- * @category Auguria
4
- * @package Auguria_Sponsorship
5
- * @author Auguria
6
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
- */
8
- class Auguria_Sponsorship_Helper_Config extends Mage_Core_Helper_Abstract
9
- {
10
- /**
11
- * Get module mode from config
12
- * @return string
13
- */
14
- public function getModuleMode()
15
- {
16
- return Mage::getStoreConfig('auguria_sponsorship/general/module_mode');
17
- }
18
-
19
- public function getPointsTypes()
20
- {
21
- $types = Array();
22
- $mode = $this->getModuleMode();
23
- if ($this->isAccumulatedEnabled()) {
24
- $types[] = 'accumulated';
25
- }
26
- if($this->isFidelityEnabled()) {
27
- $types[] = 'fidelity';
28
- }
29
- if($this->isSponsorshipEnabled()) {
30
- $types[] = 'sponsor';
31
- }
32
- return $types;
33
- }
34
-
35
- /**
36
- * Check if fidelity mode is activated (accumulated not included)
37
- * @return boolean
38
- */
39
- public function isFidelityEnabled()
40
- {
41
- $mode = $this->getModuleMode();
42
- if($mode=='fidelity'
43
- || $mode=='separated') {
44
- return true;
45
- }
46
- return false;
47
- }
48
-
49
- /**
50
- * Check if sponsorship mode is activated (accumulated not included)
51
- * @return boolean
52
- */
53
- public function isSponsorshipEnabled()
54
- {
55
- $mode = $this->getModuleMode();
56
- if($mode=='sponsorship'
57
- || $mode=='separated') {
58
- return true;
59
- }
60
- return false;
61
- }
62
-
63
- /**
64
- * Check if accumulated mode is activated
65
- * @return boolean
66
- */
67
- public function isAccumulatedEnabled()
68
- {
69
- $mode = $this->getModuleMode();
70
- if($mode=='accumulated') {
71
- return true;
72
- }
73
- return false;
74
- }
75
-
76
- /**
77
- * Get points validity from configuration depending on mode
78
- * @param string $mode
79
- * @return int
80
- */
81
- public function getPointsValidity($mode=null)
82
- {
83
- $config = Array();
84
- if ($mode==null) {
85
- $mode = $this->getModuleMode();
86
- }
87
-
88
- if ($mode=='accumulated') {
89
- $config['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
90
- }
91
- else {
92
- if($mode=='separated'
93
- || $mode=='fidelity') {
94
- $config['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/points_validity');
95
- }
96
- if($mode=='separated'
97
- || $mode=='sponsorship') {
98
- $config['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/points_validity');
99
- }
100
- }
101
- return $config;
102
- }
103
-
104
- public function getFidelityPointsValidity($mode=null)
105
- {
106
- if ($mode==null) {
107
- $mode = $this->getModuleMode();
108
- }
109
-
110
- if ($mode=='accumulated') {
111
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
112
- }
113
- elseif ($mode=='separated'
114
- || $mode=='fidelity') {
115
- return Mage::getStoreConfig('auguria_sponsorship/fidelity/points_validity');
116
- }
117
- return 0;
118
- }
119
-
120
- public function getSponsorshipPointsValidity($mode=null)
121
- {
122
- if ($mode==null) {
123
- $mode = $this->getModuleMode();
124
- }
125
-
126
- if ($mode=='accumulated') {
127
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
128
- }
129
- elseif ($mode=='separated'
130
- || $mode=='sponsorship') {
131
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/points_validity');
132
- }
133
- return 0;
134
- }
135
-
136
-
137
- /**
138
- * Get points to cash value from configuration depending on mode
139
- * @param string $mode
140
- * @return float
141
- */
142
- public function getPointsToCash($mode=null)
143
- {
144
- $config = Array();
145
- if ($mode==null) {
146
- $mode = $this->getModuleMode();
147
- }
148
- if ($mode=='accumulated') {
149
- $config['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/points_to_cash');
150
- }
151
- else {
152
- if($mode=='separated'
153
- || $mode=='fidelity') {
154
- $config['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/fidelity_points_to_cash');
155
- }
156
- if($mode=='separated'
157
- || $mode=='sponsorship') {
158
- $config['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_points_to_cash');
159
- }
160
- }
161
- return $config;
162
- }
163
-
164
- /**
165
- * Check if cart exchange is activated depending on module mode
166
- * @param string $mode
167
- * @return boolean
168
- */
169
- public function getCartExchangeActivated($mode=null)
170
- {
171
- $activated = Array();
172
- if ($mode==null) {
173
- $mode = $this->getModuleMode();
174
- }
175
- if ($mode=='accumulated') {
176
- $activated['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/cart');
177
- }
178
- else {
179
- if($mode=='separated'
180
- || $mode=='fidelity') {
181
- $activated['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/fidelity_cart');
182
- }
183
- if($mode=='separated'
184
- || $mode=='sponsorship') {
185
- $activated['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_cart');
186
- }
187
- }
188
- return $activated;
189
- }
190
-
191
- public function isInvitAllowedWithoutOrder($mode=null)
192
- {
193
- if ($mode==null) {
194
- $mode = $this->getModuleMode();
195
- }
196
-
197
- if ($mode=='accumulated') {
198
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/optional_order');
199
- }
200
- elseif ($mode=='sponsorship'
201
- || $mode=='separated') {
202
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_optional_order');
203
- }
204
- return 0;
205
- }
206
-
207
- /**
208
- * Get sponsorship percent from configuration depending on module mode
209
- * @param string $mode
210
- * @return float
211
- */
212
- public function getSponsorPercent($mode=null)
213
- {
214
- if ($mode==null) {
215
- $mode = $this->getModuleMode();
216
- }
217
-
218
- if ($mode=='accumulated') {
219
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/sponsor_percent');
220
- }
221
- elseif ($mode=='sponsorship'
222
- || $mode=='separated') {
223
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_percent');
224
- }
225
- return 0;
226
- }
227
-
228
-
229
- /**
230
- * Check if invit registred users is allowed
231
- * @param string $mode
232
- * @return boolean
233
- */
234
- public function isRegistredUsersInvitationAllowed($mode=null)
235
- {
236
- if ($mode==null) {
237
- $mode = $this->getModuleMode();
238
- }
239
-
240
- if ($mode=='accumulated') {
241
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/allow_invit_registred_users');
242
- }
243
- elseif ($mode=='sponsorship'
244
- || $mode=='separated') {
245
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/allow_invit_registred_users');
246
- }
247
- return 0;
248
- }
249
-
250
- /**
251
- * Get points earned for subscription to the newsletter depending on module mode
252
- * @param string $mode
253
- * @return int
254
- */
255
- public function getFidelityNewsletterPoints($mode=null)
256
- {
257
- if ($mode==null) {
258
- $mode = $this->getModuleMode();
259
- }
260
-
261
- if ($mode=='accumulated') {
262
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/newsletter_points');
263
- }
264
- elseif ($mode=='fidelity'
265
- || $mode=='separated') {
266
- return Mage::getStoreConfig('auguria_sponsorship/fidelity/newsletter_points');
267
- }
268
- return 0;
269
- }
270
-
271
- /**
272
- * Get points earned for first order depending on module mode
273
- * @param string $mode
274
- * @return int
275
- */
276
- public function getFidelityFirstOrderPoints($mode=null)
277
- {
278
- if ($mode==null) {
279
- $mode = $this->getModuleMode();
280
- }
281
-
282
- if ($mode=='accumulated') {
283
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/first_order_points');
284
- }
285
- elseif ($mode=='fidelity'
286
- || $mode=='separated') {
287
- return Mage::getStoreConfig('auguria_sponsorship/fidelity/first_order_points');
288
- }
289
- return 0;
290
- }
291
-
292
- /**
293
- * Get points earned for first order depending on module mode
294
- * @param string $mode
295
- * @return int
296
- */
297
- public function getGodsonFirstOrderPoints($mode=null)
298
- {
299
- if ($mode==null) {
300
- $mode = $this->getModuleMode();
301
- }
302
-
303
- if ($mode=='accumulated') {
304
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/godson_first_order_points');
305
- }
306
- elseif ($mode=='sponsorship'
307
- || $mode=='separated') {
308
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/godson_first_order_points');
309
- }
310
- return 0;
311
- }
312
-
313
-
314
- /**
315
- * Get sponsorship max levels from configuration depending on module mode
316
- * @param string $mode
317
- * @return float
318
- */
319
- public function getSponsorLevels($mode=null)
320
- {
321
- if ($mode==null) {
322
- $mode = $this->getModuleMode();
323
- }
324
-
325
- if ($mode=='accumulated') {
326
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/sponsor_levels');
327
- }
328
- elseif ($mode=='sponsorship'
329
- || $mode=='separated') {
330
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_levels');
331
- }
332
- return 0;
333
- }
334
-
335
-
336
-
337
- /**
338
- * Check if sponsorship notification is enabled depending on module mode
339
- * @param string $mode
340
- * @return boolean
341
- */
342
- public function isSponsorshipNotificationEnabled($mode=null)
343
- {
344
- if ($mode==null) {
345
- $mode = $this->getModuleMode();
346
- }
347
-
348
- if ($mode=='accumulated') {
349
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/notification_enabled');
350
- }
351
- elseif ($mode=='sponsorship'
352
- || $mode=='separated') {
353
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/notification_enabled');
354
- }
355
- return false;
356
- }
357
-
358
- /**
359
- * Check if sponsorship notification is enabled depending on module mode
360
- * @param string $mode
361
- * @return boolean
362
- */
363
- public function getSponsorshipNotificationTemplate($mode=null)
364
- {
365
- if ($mode==null) {
366
- $mode = $this->getModuleMode();
367
- }
368
-
369
- if ($mode=='accumulated') {
370
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/notification');
371
- }
372
- elseif ($mode=='sponsorship'
373
- || $mode=='separated') {
374
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/notification');
375
- }
376
- return false;
377
- }
378
-
379
- /**
380
- * Get sponsorship invitation validity depending on module mode
381
- * @param string $mode
382
- * @return float
383
- */
384
- public function getInvitationValidity()
385
- {
386
-
387
- return Mage::getStoreConfig('auguria_sponsorship/invitation/sponsor_invitation_validity');
388
- }
389
-
390
- public function cancelFidelityEarnedPointsOnCreditMemo($mode=null)
391
- {
392
- if ($mode==null) {
393
- $mode = $this->getModuleMode();
394
- }
395
-
396
- if ($mode=='accumulated') {
397
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_earned_points');
398
- }
399
- elseif ($mode=='fidelity'
400
- || $mode=='separated') {
401
- return Mage::getStoreConfig('auguria_sponsorship/fidelity/cancel_earned_points');
402
- }
403
- return false;
404
-
405
- }
406
-
407
- public function cancelSponsorshipEarnedPointsOnCreditMemo($mode=null)
408
- {
409
- if ($mode==null) {
410
- $mode = $this->getModuleMode();
411
- }
412
-
413
- if ($mode=='accumulated') {
414
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_earned_points');
415
- }
416
- elseif ($mode=='sponsorship'
417
- || $mode=='separated') {
418
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/cancel_earned_points');
419
- }
420
- return false;
421
-
422
- }
423
-
424
- public function cancelUsedPointsOnCreditMemo($type)
425
- {
426
- if ($type=='accumulated') {
427
- return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_cart_points');
428
- }
429
- elseif ($type=='sponsorship') {
430
- return Mage::getStoreConfig('auguria_sponsorship/sponsor/cancel_cart_points');
431
- }
432
- elseif ($type=='fidelity') {
433
- return Mage::getStoreConfig('auguria_sponsorship/fidelity/cancel_cart_points');
434
- }
435
- return false;
436
-
437
- }
438
-
439
- public function getAdministratorEmail(){
440
- return Mage::getStoreConfig('auguria_sponsorship/cash/administrator_email');
441
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
  }
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sponsorship
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ class Auguria_Sponsorship_Helper_Config extends Mage_Core_Helper_Abstract
9
+ {
10
+ /**
11
+ * Get module mode from config
12
+ * @return string
13
+ */
14
+ public function getModuleMode()
15
+ {
16
+ return Mage::getStoreConfig('auguria_sponsorship/general/module_mode');
17
+ }
18
+
19
+ public function getPointsTypes()
20
+ {
21
+ $types = Array();
22
+ $mode = $this->getModuleMode();
23
+ if ($this->isAccumulatedEnabled()) {
24
+ $types[] = 'accumulated';
25
+ }
26
+ if($this->isFidelityEnabled()) {
27
+ $types[] = 'fidelity';
28
+ }
29
+ if($this->isSponsorshipEnabled()) {
30
+ $types[] = 'sponsor';
31
+ }
32
+ return $types;
33
+ }
34
+
35
+ /**
36
+ * Check if fidelity mode is activated (accumulated not included)
37
+ * @return boolean
38
+ */
39
+ public function isFidelityEnabled()
40
+ {
41
+ $mode = $this->getModuleMode();
42
+ if($mode=='fidelity'
43
+ || $mode=='separated') {
44
+ return true;
45
+ }
46
+ return false;
47
+ }
48
+
49
+ /**
50
+ * Check if sponsorship mode is activated (accumulated not included)
51
+ * @return boolean
52
+ */
53
+ public function isSponsorshipEnabled()
54
+ {
55
+ $mode = $this->getModuleMode();
56
+ if($mode=='sponsorship'
57
+ || $mode=='separated') {
58
+ return true;
59
+ }
60
+ return false;
61
+ }
62
+
63
+ /**
64
+ * Check if accumulated mode is activated
65
+ * @return boolean
66
+ */
67
+ public function isAccumulatedEnabled()
68
+ {
69
+ $mode = $this->getModuleMode();
70
+ if($mode=='accumulated') {
71
+ return true;
72
+ }
73
+ return false;
74
+ }
75
+
76
+ /**
77
+ * Get points validity from configuration depending on mode
78
+ * @param string $mode
79
+ * @return int
80
+ */
81
+ public function getPointsValidity($mode=null)
82
+ {
83
+ $config = Array();
84
+ if ($mode==null) {
85
+ $mode = $this->getModuleMode();
86
+ }
87
+
88
+ if ($mode=='accumulated') {
89
+ $config['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
90
+ }
91
+ else {
92
+ if($mode=='separated'
93
+ || $mode=='fidelity') {
94
+ $config['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/points_validity');
95
+ }
96
+ if($mode=='separated'
97
+ || $mode=='sponsorship') {
98
+ $config['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/points_validity');
99
+ }
100
+ }
101
+ return $config;
102
+ }
103
+
104
+ public function getFidelityPointsValidity($mode=null)
105
+ {
106
+ if ($mode==null) {
107
+ $mode = $this->getModuleMode();
108
+ }
109
+
110
+ if ($mode=='accumulated') {
111
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
112
+ }
113
+ elseif ($mode=='separated'
114
+ || $mode=='fidelity') {
115
+ return Mage::getStoreConfig('auguria_sponsorship/fidelity/points_validity');
116
+ }
117
+ return 0;
118
+ }
119
+
120
+ public function getSponsorshipPointsValidity($mode=null)
121
+ {
122
+ if ($mode==null) {
123
+ $mode = $this->getModuleMode();
124
+ }
125
+
126
+ if ($mode=='accumulated') {
127
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/points_validity');
128
+ }
129
+ elseif ($mode=='separated'
130
+ || $mode=='sponsorship') {
131
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/points_validity');
132
+ }
133
+ return 0;
134
+ }
135
+
136
+
137
+ /**
138
+ * Get points to cash value from configuration depending on mode
139
+ * @param string $mode
140
+ * @return float
141
+ */
142
+ public function getPointsToCash($mode=null)
143
+ {
144
+ $config = Array();
145
+ if ($mode==null) {
146
+ $mode = $this->getModuleMode();
147
+ }
148
+ if ($mode=='accumulated') {
149
+ $config['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/points_to_cash');
150
+ }
151
+ else {
152
+ if($mode=='separated'
153
+ || $mode=='fidelity') {
154
+ $config['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/fidelity_points_to_cash');
155
+ }
156
+ if($mode=='separated'
157
+ || $mode=='sponsorship') {
158
+ $config['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_points_to_cash');
159
+ }
160
+ }
161
+ return $config;
162
+ }
163
+
164
+ /**
165
+ * Check if cart exchange is activated depending on module mode
166
+ * @param string $mode
167
+ * @return boolean
168
+ */
169
+ public function getCartExchangeActivated($mode=null)
170
+ {
171
+ $activated = Array();
172
+ if ($mode==null) {
173
+ $mode = $this->getModuleMode();
174
+ }
175
+ if ($mode=='accumulated') {
176
+ $activated['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/cart');
177
+ }
178
+ else {
179
+ if($mode=='separated'
180
+ || $mode=='fidelity') {
181
+ $activated['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/fidelity_cart');
182
+ }
183
+ if($mode=='separated'
184
+ || $mode=='sponsorship') {
185
+ $activated['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_cart');
186
+ }
187
+ }
188
+ return $activated;
189
+ }
190
+
191
+ public function isCartExchangeAutomatic($mode=null)
192
+ {
193
+ $automatic = Array();
194
+ if ($mode==null) {
195
+ $mode = $this->getModuleMode();
196
+ }
197
+ if ($mode=='accumulated') {
198
+ $automatic['accumulated'] = Mage::getStoreConfig('auguria_sponsorship/accumulated/automatic_cart');
199
+ }
200
+ else {
201
+ if($mode=='separated'
202
+ || $mode=='fidelity') {
203
+ $automatic['fidelity'] = Mage::getStoreConfig('auguria_sponsorship/fidelity/automatic_cart');
204
+ }
205
+ if($mode=='separated'
206
+ || $mode=='sponsorship') {
207
+ $automatic['sponsorship'] = Mage::getStoreConfig('auguria_sponsorship/sponsor/automatic_cart');
208
+ }
209
+ }
210
+ return $automatic;
211
+ }
212
+
213
+ public function isInvitAllowedWithoutOrder($mode=null)
214
+ {
215
+ if ($mode==null) {
216
+ $mode = $this->getModuleMode();
217
+ }
218
+
219
+ if ($mode=='accumulated') {
220
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/optional_order');
221
+ }
222
+ elseif ($mode=='sponsorship'
223
+ || $mode=='separated') {
224
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_optional_order');
225
+ }
226
+ return 0;
227
+ }
228
+
229
+ /**
230
+ * Get sponsorship percent from configuration depending on module mode
231
+ * @param string $mode
232
+ * @return float
233
+ */
234
+ public function getSponsorPercent($mode=null)
235
+ {
236
+ if ($mode==null) {
237
+ $mode = $this->getModuleMode();
238
+ }
239
+
240
+ if ($mode=='accumulated') {
241
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/sponsor_percent');
242
+ }
243
+ elseif ($mode=='sponsorship'
244
+ || $mode=='separated') {
245
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_percent');
246
+ }
247
+ return 0;
248
+ }
249
+
250
+
251
+ /**
252
+ * Check if invit registred users is allowed
253
+ * @param string $mode
254
+ * @return boolean
255
+ */
256
+ public function isRegistredUsersInvitationAllowed($mode=null)
257
+ {
258
+ if ($mode==null) {
259
+ $mode = $this->getModuleMode();
260
+ }
261
+
262
+ if ($mode=='accumulated') {
263
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/allow_invit_registred_users');
264
+ }
265
+ elseif ($mode=='sponsorship'
266
+ || $mode=='separated') {
267
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/allow_invit_registred_users');
268
+ }
269
+ return 0;
270
+ }
271
+
272
+ /**
273
+ * Get points earned for subscription to the newsletter depending on module mode
274
+ * @param string $mode
275
+ * @return int
276
+ */
277
+ public function getFidelityNewsletterPoints($mode=null)
278
+ {
279
+ if ($mode==null) {
280
+ $mode = $this->getModuleMode();
281
+ }
282
+
283
+ if ($mode=='accumulated') {
284
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/newsletter_points');
285
+ }
286
+ elseif ($mode=='fidelity'
287
+ || $mode=='separated') {
288
+ return Mage::getStoreConfig('auguria_sponsorship/fidelity/newsletter_points');
289
+ }
290
+ return 0;
291
+ }
292
+
293
+ /**
294
+ * Get points earned for first order depending on module mode
295
+ * @param string $mode
296
+ * @return int
297
+ */
298
+ public function getFidelityFirstOrderPoints($mode=null)
299
+ {
300
+ if ($mode==null) {
301
+ $mode = $this->getModuleMode();
302
+ }
303
+
304
+ if ($mode=='accumulated') {
305
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/first_order_points');
306
+ }
307
+ elseif ($mode=='fidelity'
308
+ || $mode=='separated') {
309
+ return Mage::getStoreConfig('auguria_sponsorship/fidelity/first_order_points');
310
+ }
311
+ return 0;
312
+ }
313
+
314
+ /**
315
+ * Get points earned for first order depending on module mode
316
+ * @param string $mode
317
+ * @return int
318
+ */
319
+ public function getGodsonFirstOrderPoints($mode=null)
320
+ {
321
+ if ($mode==null) {
322
+ $mode = $this->getModuleMode();
323
+ }
324
+
325
+ if ($mode=='accumulated') {
326
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/godson_first_order_points');
327
+ }
328
+ elseif ($mode=='sponsorship'
329
+ || $mode=='separated') {
330
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/godson_first_order_points');
331
+ }
332
+ return 0;
333
+ }
334
+
335
+
336
+ /**
337
+ * Get sponsorship max levels from configuration depending on module mode
338
+ * @param string $mode
339
+ * @return float
340
+ */
341
+ public function getSponsorLevels($mode=null)
342
+ {
343
+ if ($mode==null) {
344
+ $mode = $this->getModuleMode();
345
+ }
346
+
347
+ if ($mode=='accumulated') {
348
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/sponsor_levels');
349
+ }
350
+ elseif ($mode=='sponsorship'
351
+ || $mode=='separated') {
352
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/sponsor_levels');
353
+ }
354
+ return 0;
355
+ }
356
+
357
+
358
+
359
+ /**
360
+ * Check if sponsorship notification is enabled depending on module mode
361
+ * @param string $mode
362
+ * @return boolean
363
+ */
364
+ public function isSponsorshipNotificationEnabled($mode=null)
365
+ {
366
+ if ($mode==null) {
367
+ $mode = $this->getModuleMode();
368
+ }
369
+
370
+ if ($mode=='accumulated') {
371
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/notification_enabled');
372
+ }
373
+ elseif ($mode=='sponsorship'
374
+ || $mode=='separated') {
375
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/notification_enabled');
376
+ }
377
+ return false;
378
+ }
379
+
380
+ /**
381
+ * Check if sponsorship notification is enabled depending on module mode
382
+ * @param string $mode
383
+ * @return boolean
384
+ */
385
+ public function getSponsorshipNotificationTemplate($mode=null)
386
+ {
387
+ if ($mode==null) {
388
+ $mode = $this->getModuleMode();
389
+ }
390
+
391
+ if ($mode=='accumulated') {
392
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/notification');
393
+ }
394
+ elseif ($mode=='sponsorship'
395
+ || $mode=='separated') {
396
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/notification');
397
+ }
398
+ return false;
399
+ }
400
+
401
+ /**
402
+ * Get sponsorship invitation validity depending on module mode
403
+ * @param string $mode
404
+ * @return float
405
+ */
406
+ public function getInvitationValidity()
407
+ {
408
+
409
+ return Mage::getStoreConfig('auguria_sponsorship/invitation/sponsor_invitation_validity');
410
+ }
411
+
412
+ public function cancelFidelityEarnedPointsOnCreditMemo($mode=null)
413
+ {
414
+ if ($mode==null) {
415
+ $mode = $this->getModuleMode();
416
+ }
417
+
418
+ if ($mode=='accumulated') {
419
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_earned_points');
420
+ }
421
+ elseif ($mode=='fidelity'
422
+ || $mode=='separated') {
423
+ return Mage::getStoreConfig('auguria_sponsorship/fidelity/cancel_earned_points');
424
+ }
425
+ return false;
426
+
427
+ }
428
+
429
+ public function cancelSponsorshipEarnedPointsOnCreditMemo($mode=null)
430
+ {
431
+ if ($mode==null) {
432
+ $mode = $this->getModuleMode();
433
+ }
434
+
435
+ if ($mode=='accumulated') {
436
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_earned_points');
437
+ }
438
+ elseif ($mode=='sponsorship'
439
+ || $mode=='separated') {
440
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/cancel_earned_points');
441
+ }
442
+ return false;
443
+
444
+ }
445
+
446
+ public function cancelUsedPointsOnCreditMemo($type)
447
+ {
448
+ if ($type=='accumulated') {
449
+ return Mage::getStoreConfig('auguria_sponsorship/accumulated/cancel_cart_points');
450
+ }
451
+ elseif ($type=='sponsorship') {
452
+ return Mage::getStoreConfig('auguria_sponsorship/sponsor/cancel_cart_points');
453
+ }
454
+ elseif ($type=='fidelity') {
455
+ return Mage::getStoreConfig('auguria_sponsorship/fidelity/cancel_cart_points');
456
+ }
457
+ return false;
458
+
459
+ }
460
+
461
+ public function getAdministratorEmail(){
462
+ return Mage::getStoreConfig('auguria_sponsorship/cash/administrator_email');
463
+ }
464
  }
app/code/community/Auguria/Sponsorship/Lib/OpenInviter/config.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
 
3
  $openinviter_settings=array(
4
- "username"=>"johnny",
5
- "private_key"=>"994fafc203f167ca337b947eb01a5e3d",
6
  "cookie_path"=>"/tmp",
7
  "transport"=>"curl",
8
  "local_debug"=>"on_error",
1
  <?php
2
 
3
  $openinviter_settings=array(
4
+ "username"=>"",
5
+ "private_key"=>"",
6
  "cookie_path"=>"/tmp",
7
  "transport"=>"curl",
8
  "local_debug"=>"on_error",
app/code/community/Auguria/Sponsorship/Model/Observer.php CHANGED
@@ -9,1142 +9,1159 @@
9
  class Auguria_Sponsorship_Model_Observer
10
  {
11
 
12
- /**
13
- * @param Varien_Event_Observer $observer
14
- */
15
- public function setCouponCode(Varien_Event_Observer $observer){
16
- if ($quote = $observer['quote']) {
17
- if($coupon_code = $quote->getData('coupon_code')){
18
- $change = Mage::getModel('auguria_sponsorship/change')->getCollection()->addAttributeToFilter('coupon_code', $coupon_code);
19
- if($coupon = $change->getFirstItem()){
20
- $coupon->setData('statut', 'solved');
21
- $coupon->save();
22
- }
23
- }
24
- }
25
- }
26
-
27
- /**
28
- * Calcul total order points on sales_order_payment_pay event
29
- * @param Varien_Event_Observer $observer
30
- */
31
- public function calcPoints($observer)
32
- {
33
- /**
34
- * @TODO : retrancher du total les points offerts
35
- */
36
- try {
37
- //modules actifs
38
- $moduleFidelity = Mage::helper('auguria_sponsorship/config')->isFidelityEnabled();
39
- $moduleSponsor = Mage::helper('auguria_sponsorship/config')->isSponsorshipEnabled();
40
- $moduleAccumulated = Mage::helper('auguria_sponsorship/config')->isAccumulatedEnabled();
41
-
42
- if ($moduleFidelity==1||$moduleSponsor==1||$moduleAccumulated==1)
43
- {
44
- //récupération de la commande et des articles
45
- $order = $observer->getInvoice()->getOrder();
46
- $orderDate = $order->getUpdatedAt();
47
- $orderId = $order->getEntityId();
48
-
49
- //définition du client
50
- $cId = $order->getCustomerId();
51
-
52
- //definition du websiteid
53
- $wId = $order->getStore()->getWebsiteId();
54
-
55
- //definition du groupe du client
56
- $customer = Mage::getModel('customer/customer')->load($cId);
57
- $gId = $customer->getGroupId();
58
-
59
- //definition du sponsor de premier niveau
60
- $sponsorId = (int)$customer->getSponsor();
61
- $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
62
- $special_rate = (int)$sponsor->getData('special_rate');
63
-
64
- //variable de points
65
- $tCatalogFidelityPoints=0;
66
- $tCatalogSponsorPoints=0;
67
- $tCartFidelityPoints=0;
68
- $tCartSponsorPoints=0;
69
-
70
- //calcul des points catalogue et mise à jour de la commande pour chaque ligne
71
- foreach ($order->getAllItems() as $item)
72
- {
73
-
74
- /* Bug Correction for dynamic bundle - october 2013 */
75
- $isDynamicBundle = false;
76
- if($parentItemId = $item->getParentItemId())
77
- {
78
- $parentItem = $item->getParentItem();
79
- $parentProduct = $parentItem->getProduct();
80
- $isBundle = ($parentProduct->getData('type_id') == "bundle") ? true : false;
81
- $isDynamicPrice = (!$parentProduct->getData('price_type')) ? true : false;
82
- // $parentProduct->getData('price_type') -> 0 for dynamic and 1 for static
83
- $isDynamicBundle = ($isBundle && $isDynamicPrice) ? true : false;
84
- }
85
- /* ! Bug Correction */
86
-
87
- //Add points only if product have no parent
88
- if (!$parentItemId || $isDynamicBundle)
89
- {
90
-
91
- $date = $item->getData('updated_at');
92
- $pId = $item->getData('product_id');
93
- $qte = $item->getData('qty_ordered');
94
- $data = $item->getData();
95
-
96
- if ($moduleFidelity==1 || $moduleAccumulated==1)
97
- {
98
- //récupération et affectation des points catalog pour chaque article commandé
99
- $catalogFidelityPoints = (float)$this->getRulePoints($date, $wId, $gId, $pId,'fidelity');
100
- //multiplication des points par la quantité
101
- $catalogFidelityPoints = $catalogFidelityPoints*$qte;
102
- //ajout des points aux items de commande
103
- $data['catalog_fidelity_points'] = $catalogFidelityPoints;
104
-
105
- //calcul du total de points catalogue
106
- $tCatalogFidelityPoints = $tCatalogFidelityPoints+$catalogFidelityPoints;
107
-
108
- //calcul du total de points panier
109
- $tCartFidelityPoints = $tCartFidelityPoints+(float)$item->getCartFidelityPoints();
110
-
111
- }
112
-
113
- if (($moduleAccumulated==1 || $moduleSponsor==1) && $special_rate==0)
114
- {
115
- //récupération et affectation des points catalog pour chaque article commandé
116
- $catalogSponsorPoints = $this->getRulePoints($date, $wId, $gId, $pId, 'sponsor');
117
-
118
- //multiplication des points par la quantité
119
- $catalogSponsorPoints = $catalogSponsorPoints*$qte;
120
-
121
- //ajout des points aux items de commande
122
- $data['catalog_sponsor_points'] = $catalogSponsorPoints;
123
- //calcul du total de points catalogue
124
- $tCatalogSponsorPoints = $tCatalogSponsorPoints+$catalogSponsorPoints;
125
-
126
- //calcul du total de points panier
127
- $tCartSponsorPoints = $tCartSponsorPoints+$item->getCartSponsorPoints();
128
- }
129
- //si un taux spécial est défini pour le parrain direct
130
- elseif (($moduleAccumulated==1 || $moduleSponsor==1) && $special_rate!=0)
131
- {
132
- //Redéfinition du taux à appliquer dans la commande
133
- //ajout des points aux items de commande
134
- $data['catalog_sponsor_points'] = 0;
135
- $specialratepoints = $item->getData('price')*$qte*$special_rate/100;
136
- $data['cart_sponsor_points'] = $specialratepoints;
137
- }
138
-
139
- $item->setData($data);
140
- $item->save();
141
- }
142
- }
143
- //exit();
144
- $order->save();
145
-
146
- //Ajout du total des points fidelite
147
- if ($tCatalogFidelityPoints != 0 || $tCartFidelityPoints != 0 ) {
148
- $this->_addFidelityPoints($customer, $tCatalogFidelityPoints+$tCartFidelityPoints, 'order', $orderId, $orderDate);
149
- $customer->save();
150
- }
151
-
152
- //Ajout du total des points de parrainage si le parrain n'a pas de taux spécial
153
- if (($tCatalogSponsorPoints != 0 || $tCartSponsorPoints != 0) && $special_rate==0) {
154
- $this->_addSponsorPoints($sponsor, $customer, $tCatalogSponsorPoints+$tCartSponsorPoints, 'order', $orderId, $orderDate);
155
- }
156
- //Ajout des points à partir du taux spécial au parrain direct uniquement
157
- elseif ($special_rate!=null && ($moduleSponsor==1 || $moduleAccumulated==1)) {
158
- $this->_addSponsorSpecialPoints($sponsor, $customer, $specialratepoints, 'order', $orderId, $orderDate);
159
- }
160
- }
161
- return $this;
162
- }
163
- catch (Exception $e) {
164
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while saving points : %s",$e->getMessage()));
165
- }
166
- }
167
-
168
- /**
169
- * Get catalog fidelity or sponsor points depends on $type
170
- * @param date $date
171
- * @param integer $wId
172
- * @param integer $gId
173
- * @param integer $pId
174
- * @param String $type
175
- */
176
- public function getRulePoints($date, $wId, $gId, $pId, $type)
177
- {
178
- $resource = Mage::getSingleton('core/resource');
179
- $read= $resource->getConnection('core_read');
180
- $userTable = $resource->getTableName('auguria_sponsorship/catalog'.$type.'point');
181
- $select = $read->select()
182
- ->from($resource->getTableName('auguria_sponsorship/catalog'.$type.'point'), 'rule_point')
183
- ->where('rule_date=?', $this->formatDate($date))
184
- ->where('website_id=?', $wId)
185
- ->where('customer_group_id=?', $gId)
186
- ->where('product_id=?', $pId);
187
- return $read->fetchOne($select);
188
- }
189
-
190
- public function formatDate ($date)
191
- {
192
- $date = strtotime($date);
193
- return date('Y-m-d', $date);
194
- }
195
-
196
- /**
197
- * Add fidelity points to customer
198
- * @param Mage_Customer_Model_Customer $customer
199
- * @param float $tFPoints
200
- * @param String $recordType
201
- * @param Int $recordId
202
- * @param Datetime $datetime
203
- */
204
- protected function _addFidelityPoints($customer, $fidelityPoints, $recordType='order', $recordId=0, $datetime=null)
205
- {
206
- $customer = Mage::helper('auguria_sponsorship')->addFidelityPoints($customer, $fidelityPoints);
207
- //enregistrement dans les logs
208
- $data = array(
209
- 'customer_id' => $customer->getId(),
210
- 'record_id' => $recordId,
211
- 'record_type' => $recordType,
212
- 'datetime' => $datetime,
213
- 'points' => $fidelityPoints
214
- );
215
- $this->_addAuguriaSponsorshipLog($data);
216
- }
217
-
218
- /**
219
- * Add sponsor points to sponsors
220
- * @param Mage_Customer_Model_Customer $sponsor
221
- * @param Mage_Customer_Model_Customer $godson
222
- * @param float $SPoints
223
- * @param String $recordType
224
- * @param Int $recordId
225
- * @param Datetime $datetime
226
- */
227
- protected function _addSponsorPoints($sponsor, $godson, $SPoints, $recordType='order', $recordId=0, $datetime=null)
228
- {
229
- $ratio = Mage::helper('auguria_sponsorship/config')->getSponsorPercent();
230
- $maxLevel = Mage::helper('auguria_sponsorship/config')->getSponsorLevels();
231
- $sponsorId = -1;
232
- $godsonId = $godson->getId();
233
-
234
- //Ajout des points tant que le niveau maximum n'est pas atteint et qu'un parrain est défini
235
- for ($level = 0; $level<$maxLevel AND $sponsorId!=0 AND round($SPoints,4)>0; $level++)
236
- {
237
- //définition du parrain
238
- if ($sponsorId>0) {
239
- $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
240
- }
241
- else {
242
- $sponsorId = $sponsor->getId();
243
- }
244
- $special_rate = (int)$sponsor->getData('special_rate');
245
-
246
- //si parrain a un taux special : on met fin à la boucle
247
- if ($special_rate != 0) {
248
- $SPoints = 0;//mise à 0 des points de parrainage pour arrêter la boucle
249
- $sponsorId = 0;
250
- }
251
- else {
252
- $sponsor = Mage::helper('auguria_sponsorship')->addSponsorshipPoints($sponsor, $SPoints);
253
- $sponsor->save();
254
-
255
- //Save operation in logs table
256
- $data = array(
257
- 'godson_id' => $godsonId,
258
- 'sponsor_id' => $sponsorId,
259
- 'record_id' => $recordId,
260
- 'record_type' => $recordType,
261
- 'datetime' => $datetime,
262
- 'points' => $SPoints
263
- );
264
- $this->_addAuguriaSponsorshipLog($data);
265
-
266
- //Send notification
267
- $this->_sendSponsorNotification($sponsor, $godsonId, $SPoints, Mage::helper('auguria_sponsorship')->getSponsorshipPoints($sponsor));
268
-
269
- //incrémentation des points à ajouter
270
- $SPoints = ($SPoints*$ratio)/100;
271
- //le parrain devient le filleul
272
- $godsonId = $sponsorId;
273
- //définition du parrain du parrain
274
- $sponsorId = (int)$sponsor->getSponsor();
275
- }
276
- }
277
- }
278
-
279
- /**
280
- * Link customer with his sponsor on customer_save_before
281
- * @param Array $observer
282
- */
283
- public function setSponsorOnRegister($observer)
284
- {
285
- try
286
- {
287
- $customer = $observer->getCustomer();
288
- //if no get id : it's a creation
289
- if (!$customer->getId())
290
- {
291
- $this->_setSponsor($customer);
292
- }
293
- }
294
- catch (Exception $e)
295
- {
296
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while linking sponsor : %s",$e->getMessage()));
297
- }
298
- }
299
-
300
- /**
301
- * Link customer with his sponsor and update sponsor's sponsorship points validity
302
- * @param Mage_Customer_Model_Customer $customer
303
- */
304
- protected function _setSponsor($customer)
305
- {
306
- $sponsorId = (int)Mage::helper("auguria_sponsorship")->searchSponsorId($customer->getEmail());
307
- if ($sponsorId != 0)
308
- {
309
- //link
310
- $customer->setData('sponsor',$sponsorId);
311
- $cookie = Mage::getModel('core/cookie');
312
- //remove cookie
313
- if ($cookie->get('sponsorship_id'))
314
- {
315
- $cookie->delete('sponsorship_id');
316
- $cookie->delete('sponsorship_email');
317
- $cookie->delete('sponsorship_firstname');
318
- $cookie->delete('sponsorship_lastname');
319
- }
320
-
321
- //update sponsor points validity
322
- $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
323
- $validityType = '';
324
- if (Mage::helper('auguria_sponsorship/config')->isAccumulatedEnabled()) {
325
- $validityType = 'points_validity';
326
- }
327
- else {
328
- $validityType = 'sponsor_points_validity';
329
- }
330
- $validity = Mage::helper('auguria_sponsorship')->getPointsValidity('sponsorship');
331
- if(isset($validity['sponsorship'])) {
332
- $sponsor->setData($validityType,$validity['sponsorship']);
333
- $sponsor->save();
334
- }
335
- }
336
- }
337
-
338
- /**
339
- * Link customer with his sponsor on checkout_submit_all_after
340
- * @param Array $observer
341
- */
342
- public function setSponsorOnOrder($observer)
343
- {
344
- //checkout_type_onepage_save_order_after
345
- $quote = $observer['quote'];
346
- $order = $observer['order'];
347
-
348
- if ($order) {
349
- //if it's a new customer or if we allow to sponsor a registred user
350
- if ($quote->getData('checkout_method') == Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER
351
- || Mage::helper('auguria_sponsorship/config')->isRegistredUsersInvitationAllowed() == 1) {
352
-
353
- $customerId = $order->getCustomerId();
354
- if ($customerId != '')
355
- {
356
- $customer = Mage::getModel("customer/customer")->load($customerId);
357
- //check godchild has no order
358
- //check godchild is not a sponsor
359
- //check godchild has no sponsor
360
- if (!Mage::helper('auguria_sponsorship')->haveOrder($customerId)
361
- && !Mage::helper('auguria_sponsorship')->isASponsor($customerId)
362
- && ((int)$customer->getSponsor()!=0)) {
363
- $this->_setSponsor($customer);
364
- $customer->save();
365
- }
366
- }
367
- }
368
- }
369
- }
370
-
371
- /**
372
- * Add sponsor points for a sponsor with special rate
373
- */
374
- protected function _addSponsorSpecialPoints($sponsor, $godson, $specialratepoints, $recordType='order', $recordId=0, $datetime=null)
375
- {
376
- //recalcul de la commande & maj items de la commande
377
- try {
378
- $sponsor = Mage::helper('auguria_sponsorship')->addSponsorshipPoints($sponsor, $specialratepoints);
379
- $sponsor->save();
380
-
381
- //save operation in logs
382
- $data = array(
383
- 'godson_id' => $godson->getId(),
384
- 'sponsor_id' => $sponsor->getId(),
385
- 'record_id' => $recordId,
386
- 'record_type' => $recordType,
387
- 'datetime' => $datetime,
388
- 'points' => (float)$specialratepoints
389
- );
390
- $this->_addAuguriaSponsorshipLog($data);
391
-
392
- //Send notification to sponsor
393
- $this->_sendSponsorNotification($sponsor, $godsonId, $pointsToAdd, $tSPoints);
394
- }
395
- catch (Exception $e) {
396
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while saving special points : %s",$e->getMessage()));
397
- }
398
-
399
- }
400
-
401
- /**
402
- * Create cookie to link customer with his sponsor
403
- * @param Array() $observer
404
- */
405
- public function affiliate($observer)
406
- {
407
- $controller = $observer['controller_action'];
408
- /*
409
- * Transmission de l'id du parrain + nom + prenom dans l'url
410
- * base url / module / controller / action / parametres
411
- * http://www.inkonso.com/cms/index/index/sponsor_id/x/nom/xxx/prenom/xxx/email/xxx
412
- */
413
- $sponsorId = $controller->getRequest()->getParam('sponsor_id');
414
- if ($sponsorId!='')
415
- {
416
- $nom = $controller->getRequest()->getParam('nom');
417
- $prenom = $controller->getRequest()->getParam('prenom');
418
- $email = $controller->getRequest()->getParam('email');
419
-
420
- //stockage des variables dans la session
421
- $session = Mage::getSingleton('core/session');
422
- $session->setData('sponsor_id',$sponsorId);
423
- $session->setData('firstname',$prenom);
424
- $session->setData('lastname',$nom);
425
- $session->setData('email',$email);
426
-
427
- //stockage de l'id du parrain dans un cookie
428
- $sponsorInvitationValidity = Mage::helper('auguria_sponsorship/config')->getInvitationValidity();
429
- $period =3600*24*$sponsorInvitationValidity;
430
-
431
- $cookie = Mage::getModel('core/cookie');
432
- $cookie->set('sponsorship_id', $sponsorId, $period);
433
- $cookie->set('sponsorship_firstname', $prenom, $period);
434
- $cookie->set('sponsorship_lastname', $nom, $period);
435
- $cookie->set('sponsorship_email', $email, $period);
436
-
437
- $controller->getRequest()->setParam('sponsor_id', null);
438
- }
439
- }
440
-
441
- /**
442
- *
443
- * Add fidelity points if customer subscribe to newletter while registration
444
- * @param Varien_Event_Observer $observer
445
- */
446
- public function addNewsletterPoints($observer)
447
- {
448
- try
449
- {
450
- $newsletterPoints = (int)Mage::helper('auguria_sponsorship/config')->getFidelityNewsletterPoints();
451
- //Check if we must add points
452
- if ($newsletterPoints > 0)
453
- {
454
- //Check if it's an account creation
455
- $customer = $observer->getCustomer();
456
- if (!$customer->getId())
457
- {
458
- //Check if he is subscribing to the newsletter
459
- if ($customer->getIsSubscribed() == 1)
460
- {
461
- $this->_addFidelityPoints($customer, $newsletterPoints, 'newsletter');
462
- }
463
- }
464
- }
465
- }
466
- catch (Exception $e)
467
- {
468
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while adding news letter points : %s",$e->getMessage()));
469
- }
470
- }
471
-
472
- /**
473
- *
474
- * Add fidelity points to customer and sponsorship points to sponsor on first order
475
- * @param Varien_Event_Observer $observer
476
- */
477
- public function addFirstOrderPoints($observer)
478
- {
479
- try
480
- {
481
- $godsonFirstOrderPoints = Mage::helper('auguria_sponsorship/config')->getFidelityFirstOrderPoints();
482
- $sponsorFirstOrderPoints = Mage::helper('auguria_sponsorship/config')->getGodsonFirstOrderPoints();
483
-
484
- //Check if we have to add points on first order
485
- if ($godsonFirstOrderPoints>0 || $sponsorFirstOrderPoints>0)
486
- {
487
- $invoice = $observer->getInvoice();
488
- $customerId = $invoice->getCustomerId();
489
-
490
- //Get customer paid invoices
491
- $invoices = Mage::getResourceModel('sales/order_invoice_collection');
492
- $invoices->getSelect()->join(array('o'=>$invoices->getTable('sales/order')), 'main_table.order_id = o.entity_id','o.customer_id');
493
-
494
- $invoices->addAttributeToSelect('state')
495
- ->addAttributeToFilter('o.customer_id', $customerId)
496
- ->addAttributeToFilter('main_table.state', Mage_Sales_Model_Order_Invoice::STATE_PAID);
497
-
498
- if ($invoices->count() == 0)
499
- {
500
- $customer = Mage::getModel('customer/customer')->load($customerId);
501
-
502
- //Add fidelity points to customer
503
- if ($godsonFirstOrderPoints >0)
504
- {
505
- $this->_addFidelityPoints($customer, $godsonFirstOrderPoints, 'first', $invoice->getOrderId());
506
- $customer->save();
507
- }
508
-
509
- //Add sponsorship points
510
- $sponsorId = $customer->getSponsor();
511
- if (isset($sponsorId) && $sponsorId>0 && $sponsorFirstOrderPoints>0)
512
- {
513
- $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
514
- $this->_addSponsorPoints($sponsor, $customer, $sponsorFirstOrderPoints, 'first', $invoice->getOrderId());
515
-
516
- }
517
- }
518
- }
519
- }
520
- catch (Exception $e)
521
- {
522
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while adding first order points :".$e->getMessage()));
523
- }
524
- }
525
-
526
- /**
527
- * Update sponsorship tab customer fields from adminhtml customer form on customer_save_before
528
- * @param Varien_Event_Observer $observer
529
- */
530
- public function adminUpdateSponsorshipFields($observer)
531
- {
532
- //@TODO check each parameters
533
- $form = Mage::app()->getRequest()->getParam('sponsorship');
534
- if (is_array($form) && !empty($form)) {
535
- foreach ($form as $key=>$value) {
536
- $observer->getCustomer()->setData($key, $value);
537
- }
538
- }
539
- return $observer;
540
- }
541
-
542
- /**
543
- * Insert log if points are modified on customer_save_after
544
- * @param Varien_Event_Observer $observer
545
- */
546
- public function adminUpdatePoints($observer)
547
- {
548
- if (Mage::app()->getRequest()->getControllerName()=='customer') {
549
- $customer = $observer->getCustomer();
550
- if ($customer->hasDataChanges()) {
551
- $keys = Array('accumulated_points','sponsor_points','fidelity_points');
552
- foreach ($keys as $key) {
553
- if ($customer->dataHasChangedFor($key)) {
554
- $points = (float)$customer->getData($key) - (float)$customer->getOrigData($key);
555
- $data = Array('points'=>$points,
556
- 'customer_id'=>$customer->getId(),
557
- 'record_type'=>'admin');
558
- $this->_addAuguriaSponsorshipLog($data);
559
- }
560
- }
561
- }
562
- }
563
- }
564
-
565
- /**
566
- * Update sponsorship fields from frontend customer form on customer_save_before
567
- * @param Varien_Event_Observer $observer
568
- */
569
- public function frontUpdateSponsorshipFields($observer)
570
- {
571
- $iban = Mage::app()->getRequest()->getParam('iban');
572
- $bic = Mage::app()->getRequest()->getParam('bic');
573
- $siret = Mage::app()->getRequest()->getParam('siret');
574
- $customer = $observer->getCustomer();
575
- /*Edit action*/
576
- if ($customer->getId()) {
577
- if (isset($iban)) {
578
- $customerIban = str_replace(CHR(32),"",$iban);
579
- $customerIban = str_replace("-","",$customerIban);
580
- if (Zend_Validate::is( trim($iban) , 'NotEmpty')) {
581
- if (!Zend_Validate::is( trim($iban) , 'Iban')) {
582
- Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid IBAN code "%s"', $iban));
583
- }
584
- }
585
- $customer->setData('iban', $customerIban);
586
- }
587
-
588
- if (isset($bic)) {
589
- $customerBic = str_replace(CHR(32),"", $bic);
590
- $customerBic = str_replace("-","", $customerBic);
591
- $validator = new Zend_Validate_Regex(array('pattern' => '/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/'));
592
- if(!$validator->isValid($customerBic) && !empty($customerBic)){
593
- Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid BIC code "%s"', $bic));
594
- }
595
- $customer->setData('bic', $customerBic);
596
- }
597
-
598
- if (isset($siret)) {
599
- $customerSiret = str_replace(CHR(32),"",$siret);
600
- $customerSiret = str_replace("-","",$customerSiret);
601
- /*desactivated for internationalization
602
- if (!Mage::helper('auguria_sponsorship')->isSiret(trim($siret))) {
603
- Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid SIRET code "%s"', $siret));
604
- }
605
- */
606
- $customer->setData('siret', $customerSiret);
607
- }
608
- }
609
- /*Create action*/
610
- else {
611
- if ($sponsorId = Mage::helper("auguria_sponsorship")->searchSponsorId($customer->getEmail())) {
612
- $customer->setData('sponsor',$sponsorId);
613
- $cookie = Mage::getSingleton('core/cookie');
614
- if ($cookie->get('sponsorship_id')) {
615
- $cookie->delete('sponsorship_id');
616
- $cookie->delete('sponsorship_email');
617
- $cookie->delete('sponsorship_firstname');
618
- $cookie->delete('sponsorship_lastname');
619
- }
620
- }
621
- }
622
- return $observer;
623
- }
624
-
625
- /**
626
- * Send notification to sponsor when godson make him earn points
627
- * @param Mage_Customer_Model_Customer $sponsor
628
- * @param Int $godchildId
629
- * @param Float $addedPoints
630
- * @param Float $totalPoints
631
- */
632
- protected function _sendSponsorNotification($sponsor, $godchildId, $addedPoints, $totalPoints)
633
- {
634
- if (Mage::helper('auguria_sponsorship/config')->isSponsorshipNotificationEnabled()==1) {
635
- $godchild = Mage::getModel('customer/customer')->load($godchildId);
636
- $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
637
-
638
- $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
639
- $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
640
-
641
- $subject = Mage::helper('auguria_sponsorship')->__('%s sponsor points', Mage::helper('auguria_sponsorship/mail')->getStoreName());
642
-
643
- $sender = array("name"=>$sender_name, "email"=>$sender_email);
644
- $recipient_email = $sponsor->getData('email');
645
-
646
- $postObject = new Varien_Object();
647
- $postObject->setData(Array ("sender_name" => $sender_name,
648
- "sender_email" => $sender_email,
649
- "recipient_firstname" => $sponsor->getFirstname(),
650
- "recipient_lastname" => $sponsor->getLastname(),
651
- "subject" => $subject,
652
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName(),
653
- "godchild_firstname" =>$godchild->getFirstname(),
654
- "godchild_lastname" =>$godchild->getLastname(),
655
- "added_points" =>$addedPoints,
656
- "total_points" =>$totalPoints
657
- ));
658
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
659
- ->setReplyTo($sender_email)
660
- ->sendTransactional(
661
- Mage::helper('auguria_sponsorship/config')->getSponsorshipNotificationTemplate(),
662
- $sender,
663
- $recipient_email,
664
- $sponsor->getFirstname().' '.$sponsor->getLastname(),
665
- array('data' => $postObject));
666
- if (!$mailTemplate->getSentSuccess())
667
- {
668
- Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while sending sponsor notification email."));
669
- }
670
- }
671
- }
672
-
673
- /**
674
- * Remove points from customer account if auguria_sponsorship_discount is set
675
- * on checkout_submit_all_after
676
- * @param array $observer
677
- */
678
- public function cartPointsExchange($observer)
679
- {
680
- $order = $observer['order'];
681
- if ($order) {
682
- if ((float)$order->getAuguriaSponsorshipDiscountAmount()<0) {
683
- $customerId = $order->getCustomerId();
684
- if ($customerId != '')
685
- {
686
- $pointsToCash = Mage::helper('auguria_sponsorship/config')->getPointsToCash();
687
- $orderAccumulated = 0;
688
- $orderFidelity = 0;
689
- $orderSponsor = 0;
690
- if (isset($pointsToCash['accumulated']) && (float)$pointsToCash['accumulated']>0) {
691
- $orderAccumulated = (float)$order->getAuguriaSponsorshipAccumulatedPointsUsed()/(float)$pointsToCash['accumulated'];
692
- }
693
- if (isset($pointsToCash['fidelity']) && (float)$pointsToCash['fidelity']>0) {
694
- $orderFidelity = (float)$order->getAuguriaSponsorshipFidelityPointsUsed()/(float)$pointsToCash['fidelity'];
695
- }
696
- if (isset($pointsToCash['sponsorship']) && (float)$pointsToCash['sponsorship']>0) {
697
- $orderSponsor = (float)$order->getAuguriaSponsorshipSponsorPointsUsed()/(float)$pointsToCash['sponsorship'];
698
- }
699
- $type = Array();
700
-
701
- if ((float)$orderAccumulated > 0
702
- ||(float)$orderSponsor > 0
703
- ||(float)$orderFidelity > 0) {
704
- $customer = Mage::getModel("customer/customer")->load($customerId);
705
- $usedPoints = 0;
706
- if ((float)$orderAccumulated > 0) {
707
- $points = (float)$customer->getAccumulatedPoints();
708
- $usedPoints += (float)$orderAccumulated;
709
- $points = $points - $usedPoints;
710
- $points = max(0,$points);
711
- $customer->setAccumulatedPoints($points);
712
- $type['accumulated'] = $usedPoints;
713
- }
714
- else {
715
- if ((float)$orderSponsor > 0) {
716
- $points = (float)$customer->getSponsorPoints();
717
- $usedPoints += (float)$orderSponsor;
718
- $points = $points - $usedPoints;
719
- $points = max(0,$points);
720
- $customer->setSponsorPoints($points);
721
- $type['sponsor'] = $usedPoints;
722
- }
723
- if ((float)$orderFidelity > 0) {
724
- $points = (float)$customer->getFidelityPoints();
725
- $usedPoints += (float)$orderFidelity;
726
- $points = $points - $usedPoints;
727
- $points = max(0,$points);
728
- $customer->setFidelityPoints($points);
729
- $type['fidelity'] = $usedPoints;
730
- }
731
- }
732
- $customer->save();
733
-
734
- if ($usedPoints>0) {
735
- $data = Array('points'=>-$usedPoints,
736
- 'customer_id'=>$customerId,
737
- 'record_type'=>'cart',
738
- 'record_id'=>$order->getId(),
739
- 'datetime'=>$order->getUpdatedAt());
740
- $this->_addAuguriaSponsorshipLog($data);
741
-
742
- if (count($type)>0) {
743
- foreach($type as $key=>$points) {
744
- $echange = Mage::getModel('auguria_sponsorship/change');
745
- $mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
746
- $type = Mage::helper('auguria_sponsorship/config')->getPointsTypes($mode);
747
- $row = array(
748
- 'customer_id' => $customerId,
749
- 'type' => 'cart',
750
- 'module' => $key,
751
- 'statut' => 'waiting',
752
- 'datetime' => Mage::getModel('core/date')->gmtDate(),
753
- 'points' => $points,
754
- 'value' => $order->getBaseAuguriaSponsorshipDiscountAmount()
755
- );
756
- $echange->setData($row);
757
- $echange->save();
758
- }
759
- }
760
- }
761
- }
762
- }
763
- }
764
- }
765
- }
766
-
767
- /**
768
- * Insert data in points logs table
769
- * @param array $data
770
- * @return boolean
771
- */
772
- protected function _addAuguriaSponsorshipLog($data)
773
- {
774
- if (is_array($data) && isset($data['points'])) {
775
- $log = Mage::getModel('auguria_sponsorship/log');
776
- if (!isset($data['datetime'])) {
777
- $data['datetime'] = Mage::getModel('core/date')->gmtDate();
778
- }
779
- $log->setData($data);
780
- $log->save();
781
- return true;
782
- }
783
- return false;
784
- }
785
-
786
- /**
787
- * Add Auguria_Sponsorship points in quote according to defined rules on salesrule_validator_process event
788
- * @param array(
789
- 'rule' => $rule,
790
- 'item' => $item,
791
- 'address' => $address,
792
- 'quote' => $quote,
793
- 'qty' => $qty,
794
- 'result' => $result,
795
- ) $observer
796
- */
797
- public function validatorPointsCalculationProcess($observer)
798
- {
799
- $item = $observer['item'];
800
- $rule = $observer['rule'];
801
- $result = $observer['result'];
802
- $address = $observer['address'];
803
- $qty = $observer['qty'];
804
-
805
- $rulePercent = min(100, $rule->getDiscountAmount());
806
- $price = $item->getDiscountCalculationPrice();
807
- $baseItemPrice = ($price !== null) ? $item->getBaseDiscountCalculationPrice() : $item->getBaseCalculationPrice();
808
-
809
- $cartFidelityPoints = 0;
810
- $cartSponsorPoints = 0;
811
-
812
- switch ($rule->getSimpleAction()) {
813
- case 'fidelity_points_by_fixed':
814
- if ($step = $rule->getDiscountStep()) {
815
- $qty = floor($qty/$step)*$step;
816
- }
817
- $cartFidelityPoints = $qty*$rule->getDiscountAmount();
818
- break;
819
-
820
- case 'fidelity_points_by_percent':
821
- if ($step = $rule->getDiscountStep()) {
822
- $qty = floor($qty/$step)*$step;
823
- }
824
- $cartFidelityPoints = ($qty*$baseItemPrice - $item->getBaseDiscountAmount()) * $rulePercent/100;
825
- break;
826
-
827
- case 'fidelity_points_cart_fixed':
828
- /** @TODO : prevent applying whole cart discount for every shipping order, but only for first order */
829
- $cartRules = $address->getCartFixedRules();
830
- if (!isset($cartRules[$rule->getId()])) {
831
- $cartRules[$rule->getId()] = $rule->getDiscountAmount();
832
- }
833
- if ($cartRules[$rule->getId()] > 0) {
834
- $cartFidelityPoints = $rule->getDiscountAmount();
835
- }
836
- $address->setCartFixedRules($cartRules);
837
- break;
838
- //sponsor
839
- case 'sponsor_points_by_fixed':
840
- if ($step = $rule->getDiscountStep()) {
841
- $qty = floor($qty/$step)*$step;
842
- }
843
- $cartSponsorPoints = $qty*$rule->getDiscountAmount();
844
- break;
845
-
846
- case 'sponsor_points_by_percent':
847
- if ($step = $rule->getDiscountStep()) {
848
- $qty = floor($qty/$step)*$step;
849
- }
850
- $cartSponsorPoints = ($qty*$baseItemPrice - $item->getBaseDiscountAmount()) * $rulePercent/100;
851
- break;
852
-
853
- case 'sponsor_points_cart_fixed':
854
- /** @TODO : prevent applying whole cart discount for every shipping order, but only for first order */
855
- $cartRules = $address->getCartFixedRules();
856
- if (!isset($cartRules[$rule->getId()])) {
857
- $cartRules[$rule->getId()] = $rule->getDiscountAmount();
858
- }
859
- if ($cartRules[$rule->getId()] > 0) {
860
- $cartSponsorPoints = $rule->getDiscountAmount();
861
- }
862
- $address->setCartFixedRules($cartRules);
863
- break;
864
- }
865
- $result->setData('cart_fidelity_points',$cartFidelityPoints);
866
- $result->setData('cart_sponsor_points',$cartSponsorPoints);
867
-
868
- $cartFidelityPoints = max((float)$item->getCartFidelityPoints(), (float)$cartFidelityPoints);
869
- $cartSponsorPoints = max((float)$item->getCartSponsorPoints(), (float)$cartSponsorPoints);
870
-
871
- $item->setCartFidelityPoints($cartFidelityPoints);
872
- $item->setCartSponsorPoints($cartSponsorPoints);
873
-
874
- return $this;
875
- }
876
-
877
- /**
878
- * Cancel used and gained points while credit memo creation using sales_order_creditmemo_save_before event
879
- * @param array $observer
880
- */
881
- public function cancelPointsOnCreditMemo($observer)
882
- {
883
- $creditmemo = $observer['creditmemo'];
884
- //if it is a credit memo creation
885
- if ((int)$creditmemo->getId()==0
886
- && (Mage::helper('auguria_sponsorship/config')->cancelFidelityEarnedPointsOnCreditMemo()
887
- || Mage::helper('auguria_sponsorship/config')->cancelSponsorshipEarnedPointsOnCreditMemo())
888
- ) {
889
- $order = $creditmemo->getOrder();
890
-
891
- //Cancel used points
892
- //@TODO check credit memo sold the order ?
893
- $this->_cancelUsedPoints($order);
894
-
895
- //Remove winning points
896
- //calcul fidelity points to remove and ratio for sponsorship points
897
- $earnedFidelityPoints = 0;
898
- $backFidelityPoints = 0;
899
- $earnedSponsorPoints = 0;
900
- $backSponsorPoints = 0;
901
- $ratio = 0;
902
- $creditMemoItems = $creditmemo->getItemsCollection();
903
- if ($creditMemoItems->count()>0) {
904
- foreach ($creditMemoItems as $creditmemoItem) {
905
- $orderItem = $creditmemoItem->getOrderItem();
906
-
907
- //fidelity points
908
- $earnedFidelityPoints += (float)$orderItem->getCatalogFidelityPoints()+(float)$orderItem->getCartFidelityPoints();
909
- $tmpFidelityPoints = (float)$orderItem->getCatalogFidelityPoints()+(float)$orderItem->getCartFidelityPoints();
910
- if($orderItem->getQtyInvoiced()!=0) {
911
- $tmpFidelityPoints = ($tmpFidelityPoints*$creditmemoItem->getQty())/$orderItem->getQtyInvoiced();
912
- }
913
- $backFidelityPoints += $tmpFidelityPoints;
914
-
915
- //sponsorship points
916
- $earnedSponsorPoints += (float)$orderItem->getCatalogSponsorPoints()+(float)$orderItem->getCartSponsorPoints();
917
- $tmpSponsorPoints = (float)$orderItem->getCatalogSponsorPoints()+(float)$orderItem->getCartSponsorPoints();
918
- if($orderItem->getQtyInvoiced()!=0) {
919
- $tmpSponsorPoints = ($tmpSponsorPoints*$creditmemoItem->getQty())/$orderItem->getQtyInvoiced();
920
- }
921
- $backSponsorPoints += $tmpSponsorPoints;
922
- }
923
- if ($earnedSponsorPoints>0) {
924
- $ratio = $backSponsorPoints/$earnedSponsorPoints;
925
- }
926
- }
927
-
928
- //remove fidelity points
929
- if ($backFidelityPoints>0) {
930
- if (Mage::helper('auguria_sponsorship/config')->cancelFidelityEarnedPointsOnCreditMemo()){
931
- $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
932
- $points = Mage::helper('auguria_sponsorship')->getFidelityPoints($customer);
933
- $points -= (float)$backFidelityPoints;
934
- $points = max(0,$points);
935
- Mage::helper('auguria_sponsorship')->setFidelityPoints($customer, $points);
936
- $customer->save();
937
- $data = array(
938
- 'customer_id' => $order->getCustomerId(),
939
- 'record_id' => $order->getId(),
940
- 'record_type' => 'order',
941
- 'points' => -$backFidelityPoints
942
- );
943
- $this->_addAuguriaSponsorshipLog($data);
944
- }
945
- }
946
-
947
- //remove sponsorship points according to logs and applying ratio
948
- if (Mage::helper('auguria_sponsorship/config')->cancelSponsorshipEarnedPointsOnCreditMemo()){
949
- $collection = Mage::getResourceModel('auguria_sponsorship/log_collection')
950
- ->addFieldToFilter('record_type', 'order')
951
- ->addFieldToFilter('record_id', $order->getId());
952
- if ($collection->count()>0){
953
- foreach ($collection as $log) {
954
- $points = 0;
955
- if($log->getSponsorId()>0) {
956
- $customer = Mage::getModel('customer/customer')->load($log->getSponsorId());
957
- $points = Mage::helper('auguria_sponsorship')->getSponsorshipPoints($customer);
958
- $points -= (float)$log->getPoints()*$ratio;
959
- $points = max(0,$points);
960
- Mage::helper('auguria_sponsorship')->setSponsorshipPoints($customer, $points);
961
- $customer->save();
962
- }
963
-
964
- if ($points>0) {
965
- $data = array(
966
- 'godson_id' => $log->getGodsonId(),
967
- 'sponsor_id' => $log->getSponsorId(),
968
- 'record_id' => $order->getId(),
969
- 'record_type' => 'order',
970
- 'points' => -(float)$log->getPoints()*$ratio
971
- );
972
- $this->_addAuguriaSponsorshipLog($data);
973
- }
974
- }
975
- }
976
- }
977
- }
978
- }
979
-
980
- /**
981
- * Cancel used points while on order cancellation
982
- * As there is no event on cancellation we use sales_order_save_before event and we check status
983
- * @param array $observer
984
- */
985
- public function cancelPointsOnOrderCanceled($observer)
986
- {
987
- $order = $observer['order'];
988
- //Check status passed from any to canceled
989
- if ($order->getStatus()=='canceled'
990
- && $order->getOrigData('status')!='canceled') {
991
- $this->_cancelUsedPoints($order);
992
- }
993
- }
994
-
995
- /**
996
- * Add to customer used points in an order and log it
997
- * @param Mage_Sales_Model_Order $order
998
- */
999
- protected function _cancelUsedPoints($order)
1000
- {
1001
- $customerId = $order->getCustomerId();
1002
- $customer = Mage::getModel('customer/customer')->load($customerId);
1003
-
1004
- $usedPoints = Array();
1005
- $usedPoints['accumulated'] = $order->getAuguriaSponsorshipAccumulatedPointsUsed();
1006
- $usedPoints['sponsorship'] = $order->getAuguriaSponsorshipSponsorPointsUsed();
1007
- $usedPoints['fidelity'] = $order->getAuguriaSponsorshipFidelityPointsUsed();
1008
- $toAdd = 0;
1009
- //Add used points
1010
- foreach ($usedPoints as $type=>$points) {
1011
- if ($points>0) {
1012
- $haveUsedPoints = true;
1013
- if ($type=='accumulated') {
1014
- if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1015
- $toAdd += $points;
1016
- $customer->setAccumulatedPoints($customer->getAccumulatedPoints()+$points);
1017
- }
1018
- }
1019
- elseif ($type=='sponsorship') {
1020
- if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1021
- $toAdd += $points;
1022
- $customer->setSponsorPoints($customer->getSponsorPoints()+$points);
1023
- }
1024
- }
1025
- elseif ($type=='fidelity') {
1026
- if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1027
- $toAdd += $points;
1028
- $customer->setFidelityPoints($customer->getFidelityPoints()+$points);
1029
- }
1030
- }
1031
- }
1032
- }
1033
- if ($toAdd>0) {
1034
- $customer->save();
1035
- $data = array(
1036
- 'customer_id' => $customer->getId(),
1037
- 'record_id' => $order->getId(),
1038
- 'record_type' => 'cart',
1039
- 'points' => $toAdd
1040
- );
1041
- $this->_addAuguriaSponsorshipLog($data);
1042
- }
1043
- }
1044
-
1045
- /**
1046
- * Add sponsorship and fidelity action on adminhtml_block_salesrule_actions_prepareform
1047
- * @param array $observer
1048
- */
1049
- public function salesRulesAddAction($observer)
1050
- {
1051
- $field = $observer->getForm()->getElement('simple_action');
1052
- $options = $field->getValues();
1053
- $customOptions = Array(
1054
- Array('value'=>'fidelity_points_by_percent','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by percentage of the original price')),
1055
- Array('value'=>'fidelity_points_by_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by fixed amount')),
1056
- Array('value'=>'fidelity_points_cart_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by fixed amount for whole cart')),
1057
- Array('value'=>'sponsor_points_by_percent','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by percentage of the original price')),
1058
- Array('value'=>'sponsor_points_by_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by fixed amount')),
1059
- Array('value'=>'sponsor_points_cart_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by fixed amount for whole cart'))
1060
- );
1061
- $allOptions = array_merge($options, $customOptions);
1062
- $field->setValues($allOptions);
1063
- }
1064
-
1065
- /**
1066
- * Update paypal cart
1067
- *
1068
- * @event paypal_prepare_line_items
1069
- * @param Varien_Event_Observer $observer
1070
- */
1071
- public function updatePaypal($observer)
1072
- {
1073
- //récupération de la structure passée en paramètre par Paypal
1074
- $event = $observer->getEvent();
1075
- //récupération du panier Paypal
1076
- $panierPaypal = $event->getPaypalCart();
1077
- if ($panierPaypal)
1078
- {
1079
- //récupération de l'objet nécessaire pour les ventes
1080
- $entity = $panierPaypal->getSalesEntity();
1081
- if ($entity)
1082
- {
1083
- //tentative de récupération du montant Auguria
1084
- $douRemisePointsFidelite = $entity->getAuguriaSponsorshipDiscountAmount();
1085
- //si montant trouvé, on met à jour le total
1086
- if ($douRemisePointsFidelite)
1087
- $panierPaypal->updateTotal(Mage_Paypal_Model_Cart::TOTAL_DISCOUNT, abs($douRemisePointsFidelite));
1088
- }
1089
- }
1090
- }
1091
-
1092
- /**
1093
- * Refill point when payment is canceled
1094
- * @event sales_order_payment_cancel
1095
- * @param Varien_Event_Observer $observer
1096
- */
1097
- public function paymentCanceled($observer)
1098
- {
1099
- //récupération de la structure passée en paramètre par Paypal
1100
- $event = $observer->getEvent();
1101
- //récupération de la commande associée
1102
- $order = $event->getPayment()->getOrder();
1103
- //action sur le compte fidélité (code dérivé de la fonction _cancelUsedPoints)
1104
-
1105
- $customerId = $order->getCustomerId();
1106
- $customer = Mage::getModel('customer/customer')->load($customerId);
1107
-
1108
- $pointsToCash = Mage::helper('auguria_sponsorship/config')->getPointsToCash();
1109
-
1110
- $usedPoints = array();
1111
- $usedPoints['accumulated'] = $order->getAuguriaSponsorshipAccumulatedPointsUsed();
1112
- $usedPoints['sponsorship'] = $order->getAuguriaSponsorshipSponsorPointsUsed();
1113
- $usedPoints['fidelity'] = $order->getAuguriaSponsorshipFidelityPointsUsed();
1114
- $toAdd = 0;
1115
- //Add used points
1116
- foreach ($usedPoints as $type=>$points) {
1117
- if ($points>0) {
1118
- //conversion en nombre de points
1119
- $douTaux = 1;
1120
- if (isset($pointsToCash[$type]) && (float)$pointsToCash[$type]>0){
1121
- $douTaux = (float)$pointsToCash[$type];
1122
- }
1123
- //correction
1124
- $haveUsedPoints = true;
1125
- if ($type=='accumulated') {
1126
- $toAdd += $points/$douTaux;
1127
- $customer->setAccumulatedPoints($customer->getAccumulatedPoints()+$points/$douTaux);
1128
- }
1129
- elseif ($type=='sponsorship') {
1130
- $toAdd += $points/$douTaux;
1131
- $customer->setSponsorPoints($customer->getSponsorPoints()+$points/$douTaux);
1132
- }
1133
- elseif ($type=='fidelity') {
1134
- $toAdd += $points/$douTaux;
1135
- $customer->setFidelityPoints($customer->getFidelityPoints()+$points/$douTaux);
1136
- }
1137
- }
1138
- }
1139
- if ($toAdd>0) {
1140
- $customer->save();
1141
- $data = array(
1142
- 'customer_id' => $customer->getId(),
1143
- 'record_id' => $order->getId(),
1144
- 'record_type' => 'cart',
1145
- 'points' => $toAdd
1146
- );
1147
- $this->_addAuguriaSponsorshipLog($data);
1148
- }
1149
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1150
  }
9
  class Auguria_Sponsorship_Model_Observer
10
  {
11
 
12
+ /**
13
+ * @param Varien_Event_Observer $observer
14
+ */
15
+ public function setCouponCode(Varien_Event_Observer $observer){
16
+ if ($quote = $observer['quote']) {
17
+ if($coupon_code = $quote->getData('coupon_code')){
18
+ $change = Mage::getModel('auguria_sponsorship/change')->getCollection()->addAttributeToFilter('coupon_code', $coupon_code);
19
+ if($coupon = $change->getFirstItem()){
20
+ $coupon->setData('statut', 'solved');
21
+ $coupon->save();
22
+ }
23
+ }
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Calcul total order points on sales_order_payment_pay event
29
+ * @param Varien_Event_Observer $observer
30
+ */
31
+ public function calcPoints($observer)
32
+ {
33
+ /**
34
+ * @TODO : retrancher du total les points offerts
35
+ */
36
+ try {
37
+ //modules actifs
38
+ $moduleFidelity = Mage::helper('auguria_sponsorship/config')->isFidelityEnabled();
39
+ $moduleSponsor = Mage::helper('auguria_sponsorship/config')->isSponsorshipEnabled();
40
+ $moduleAccumulated = Mage::helper('auguria_sponsorship/config')->isAccumulatedEnabled();
41
+
42
+ if ($moduleFidelity==1||$moduleSponsor==1||$moduleAccumulated==1)
43
+ {
44
+ //récupération de la commande et des articles
45
+ $order = $observer->getInvoice()->getOrder();
46
+ $orderDate = $order->getUpdatedAt();
47
+ $orderId = $order->getEntityId();
48
+
49
+ //définition du client
50
+ $cId = $order->getCustomerId();
51
+
52
+ //definition du websiteid
53
+ $wId = $order->getStore()->getWebsiteId();
54
+
55
+ //definition du groupe du client
56
+ $customer = Mage::getModel('customer/customer')->load($cId);
57
+ $gId = $customer->getGroupId();
58
+
59
+ //definition du sponsor de premier niveau
60
+ $sponsorId = (int)$customer->getSponsor();
61
+ $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
62
+ $special_rate = (int)$sponsor->getData('special_rate');
63
+
64
+ //variable de points
65
+ $tCatalogFidelityPoints=0;
66
+ $tCatalogSponsorPoints=0;
67
+ $tCartFidelityPoints=0;
68
+ $tCartSponsorPoints=0;
69
+
70
+ //calcul des points catalogue et mise à jour de la commande pour chaque ligne
71
+ foreach ($order->getAllItems() as $item)
72
+ {
73
+
74
+ /* Bug Correction for dynamic bundle - october 2013 */
75
+ $isDynamicBundle = false;
76
+ if($parentItemId = $item->getParentItemId())
77
+ {
78
+ $parentItem = $item->getParentItem();
79
+ $parentProduct = $parentItem->getProduct();
80
+ $isBundle = ($parentProduct->getData('type_id') == "bundle") ? true : false;
81
+ $isDynamicPrice = (!$parentProduct->getData('price_type')) ? true : false;
82
+ // $parentProduct->getData('price_type') -> 0 for dynamic and 1 for static
83
+ $isDynamicBundle = ($isBundle && $isDynamicPrice) ? true : false;
84
+ }
85
+ /* ! Bug Correction */
86
+
87
+ //Add points only if product have no parent
88
+ if (!$parentItemId || $isDynamicBundle)
89
+ {
90
+
91
+ $date = $item->getData('updated_at');
92
+ $pId = $item->getData('product_id');
93
+ $qte = $item->getData('qty_ordered');
94
+ $data = $item->getData();
95
+
96
+ if ($moduleFidelity==1 || $moduleAccumulated==1)
97
+ {
98
+ //récupération et affectation des points catalog pour chaque article commandé
99
+ $catalogFidelityPoints = (float)$this->getRulePoints($date, $wId, $gId, $pId,'fidelity');
100
+ //multiplication des points par la quantité
101
+ $catalogFidelityPoints = $catalogFidelityPoints*$qte;
102
+ //ajout des points aux items de commande
103
+ $data['catalog_fidelity_points'] = $catalogFidelityPoints;
104
+
105
+ //calcul du total de points catalogue
106
+ $tCatalogFidelityPoints = $tCatalogFidelityPoints+$catalogFidelityPoints;
107
+
108
+ //calcul du total de points panier
109
+ $tCartFidelityPoints = $tCartFidelityPoints+(float)$item->getCartFidelityPoints();
110
+
111
+ }
112
+
113
+ if (($moduleAccumulated==1 || $moduleSponsor==1) && $special_rate==0)
114
+ {
115
+ //récupération et affectation des points catalog pour chaque article commandé
116
+ $catalogSponsorPoints = $this->getRulePoints($date, $wId, $gId, $pId, 'sponsor');
117
+
118
+ //multiplication des points par la quantité
119
+ $catalogSponsorPoints = $catalogSponsorPoints*$qte;
120
+
121
+ //ajout des points aux items de commande
122
+ $data['catalog_sponsor_points'] = $catalogSponsorPoints;
123
+ //calcul du total de points catalogue
124
+ $tCatalogSponsorPoints = $tCatalogSponsorPoints+$catalogSponsorPoints;
125
+
126
+ //calcul du total de points panier
127
+ $tCartSponsorPoints = $tCartSponsorPoints+$item->getCartSponsorPoints();
128
+ }
129
+ //si un taux spécial est défini pour le parrain direct
130
+ elseif (($moduleAccumulated==1 || $moduleSponsor==1) && $special_rate!=0)
131
+ {
132
+ //Redéfinition du taux à appliquer dans la commande
133
+ //ajout des points aux items de commande
134
+ $data['catalog_sponsor_points'] = 0;
135
+ $specialratepoints = $item->getData('price')*$qte*$special_rate/100;
136
+ $data['cart_sponsor_points'] = $specialratepoints;
137
+ }
138
+
139
+ $item->setData($data);
140
+ $item->save();
141
+ }
142
+ }
143
+ //exit();
144
+ $order->save();
145
+
146
+ //Ajout du total des points fidelite
147
+ if ($tCatalogFidelityPoints != 0 || $tCartFidelityPoints != 0 ) {
148
+ $this->_addFidelityPoints($customer, $tCatalogFidelityPoints+$tCartFidelityPoints, 'order', $orderId, $orderDate);
149
+ $customer->save();
150
+ }
151
+
152
+ //Ajout du total des points de parrainage si le parrain n'a pas de taux spécial
153
+ if (($tCatalogSponsorPoints != 0 || $tCartSponsorPoints != 0) && $special_rate==0) {
154
+ $this->_addSponsorPoints($sponsor, $customer, $tCatalogSponsorPoints+$tCartSponsorPoints, 'order', $orderId, $orderDate);
155
+ }
156
+ //Ajout des points à partir du taux spécial au parrain direct uniquement
157
+ elseif ($special_rate!=null && ($moduleSponsor==1 || $moduleAccumulated==1)) {
158
+ $this->_addSponsorSpecialPoints($sponsor, $customer, $specialratepoints, 'order', $orderId, $orderDate);
159
+ }
160
+ }
161
+ return $this;
162
+ }
163
+ catch (Exception $e) {
164
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while saving points : %s",$e->getMessage()));
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Get catalog fidelity or sponsor points depends on $type
170
+ * @param date $date
171
+ * @param integer $wId
172
+ * @param integer $gId
173
+ * @param integer $pId
174
+ * @param String $type
175
+ */
176
+ public function getRulePoints($date, $wId, $gId, $pId, $type)
177
+ {
178
+ $resource = Mage::getSingleton('core/resource');
179
+ $read= $resource->getConnection('core_read');
180
+ $userTable = $resource->getTableName('auguria_sponsorship/catalog'.$type.'point');
181
+ $select = $read->select()
182
+ ->from($resource->getTableName('auguria_sponsorship/catalog'.$type.'point'), 'rule_point')
183
+ ->where('rule_date=?', $this->formatDate($date))
184
+ ->where('website_id=?', $wId)
185
+ ->where('customer_group_id=?', $gId)
186
+ ->where('product_id=?', $pId);
187
+ return $read->fetchOne($select);
188
+ }
189
+
190
+ public function formatDate ($date)
191
+ {
192
+ $date = strtotime($date);
193
+ return date('Y-m-d', $date);
194
+ }
195
+
196
+ /**
197
+ * Add fidelity points to customer
198
+ * @param Mage_Customer_Model_Customer $customer
199
+ * @param float $tFPoints
200
+ * @param String $recordType
201
+ * @param Int $recordId
202
+ * @param Datetime $datetime
203
+ */
204
+ protected function _addFidelityPoints($customer, $fidelityPoints, $recordType='order', $recordId=0, $datetime=null)
205
+ {
206
+ $customer = Mage::helper('auguria_sponsorship')->addFidelityPoints($customer, $fidelityPoints);
207
+ //enregistrement dans les logs
208
+ $data = array(
209
+ 'customer_id' => $customer->getId(),
210
+ 'record_id' => $recordId,
211
+ 'record_type' => $recordType,
212
+ 'datetime' => $datetime,
213
+ 'points' => $fidelityPoints
214
+ );
215
+ $this->_addAuguriaSponsorshipLog($data);
216
+ }
217
+
218
+ /**
219
+ * Add sponsor points to sponsors
220
+ * @param Mage_Customer_Model_Customer $sponsor
221
+ * @param Mage_Customer_Model_Customer $godson
222
+ * @param float $SPoints
223
+ * @param String $recordType
224
+ * @param Int $recordId
225
+ * @param Datetime $datetime
226
+ */
227
+ protected function _addSponsorPoints($sponsor, $godson, $SPoints, $recordType='order', $recordId=0, $datetime=null)
228
+ {
229
+ $ratio = Mage::helper('auguria_sponsorship/config')->getSponsorPercent();
230
+ $maxLevel = Mage::helper('auguria_sponsorship/config')->getSponsorLevels();
231
+ $sponsorId = -1;
232
+ $godsonId = $godson->getId();
233
+
234
+ //Ajout des points tant que le niveau maximum n'est pas atteint et qu'un parrain est défini
235
+ for ($level = 0; $level<$maxLevel AND $sponsorId!=0 AND round($SPoints,4)>0; $level++)
236
+ {
237
+ //définition du parrain
238
+ if ($sponsorId>0) {
239
+ $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
240
+ }
241
+ else {
242
+ $sponsorId = $sponsor->getId();
243
+ }
244
+ $special_rate = (int)$sponsor->getData('special_rate');
245
+
246
+ //si parrain a un taux special : on met fin à la boucle
247
+ if ($special_rate != 0) {
248
+ $SPoints = 0;//mise à 0 des points de parrainage pour arrêter la boucle
249
+ $sponsorId = 0;
250
+ }
251
+ else {
252
+ $sponsor = Mage::helper('auguria_sponsorship')->addSponsorshipPoints($sponsor, $SPoints);
253
+ $sponsor->save();
254
+
255
+ //Save operation in logs table
256
+ $data = array(
257
+ 'godson_id' => $godsonId,
258
+ 'sponsor_id' => $sponsorId,
259
+ 'record_id' => $recordId,
260
+ 'record_type' => $recordType,
261
+ 'datetime' => $datetime,
262
+ 'points' => $SPoints
263
+ );
264
+ $this->_addAuguriaSponsorshipLog($data);
265
+
266
+ //Send notification
267
+ $this->_sendSponsorNotification($sponsor, $godsonId, $SPoints, Mage::helper('auguria_sponsorship')->getSponsorshipPoints($sponsor));
268
+
269
+ //incrémentation des points à ajouter
270
+ $SPoints = ($SPoints*$ratio)/100;
271
+ //le parrain devient le filleul
272
+ $godsonId = $sponsorId;
273
+ //définition du parrain du parrain
274
+ $sponsorId = (int)$sponsor->getSponsor();
275
+ }
276
+ }
277
+ }
278
+
279
+ /**
280
+ * Link customer with his sponsor on customer_save_before
281
+ * @param Array $observer
282
+ */
283
+ public function setSponsorOnRegister($observer)
284
+ {
285
+ try
286
+ {
287
+ $customer = $observer->getCustomer();
288
+ //if no get id : it's a creation
289
+ if (!$customer->getId())
290
+ {
291
+ $this->_setSponsor($customer);
292
+ }
293
+ }
294
+ catch (Exception $e)
295
+ {
296
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while linking sponsor : %s",$e->getMessage()));
297
+ }
298
+ }
299
+
300
+ /**
301
+ * Link customer with his sponsor and update sponsor's sponsorship points validity
302
+ * @param Mage_Customer_Model_Customer $customer
303
+ */
304
+ protected function _setSponsor($customer)
305
+ {
306
+ $sponsorId = (int)Mage::helper("auguria_sponsorship")->searchSponsorId($customer->getEmail());
307
+ if ($sponsorId != 0)
308
+ {
309
+ //link
310
+ $customer->setData('sponsor',$sponsorId);
311
+ $cookie = Mage::getModel('core/cookie');
312
+ //remove cookie
313
+ if ($cookie->get('sponsorship_id'))
314
+ {
315
+ $cookie->delete('sponsorship_id');
316
+ $cookie->delete('sponsorship_email');
317
+ $cookie->delete('sponsorship_firstname');
318
+ $cookie->delete('sponsorship_lastname');
319
+ }
320
+
321
+ //update sponsor points validity
322
+ $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
323
+ $validityType = '';
324
+ if (Mage::helper('auguria_sponsorship/config')->isAccumulatedEnabled()) {
325
+ $validityType = 'points_validity';
326
+ }
327
+ else {
328
+ $validityType = 'sponsor_points_validity';
329
+ }
330
+ $validity = Mage::helper('auguria_sponsorship')->getPointsValidity('sponsorship');
331
+ if(isset($validity['sponsorship'])) {
332
+ $sponsor->setData($validityType,$validity['sponsorship']);
333
+ $sponsor->save();
334
+ }
335
+ }
336
+ }
337
+
338
+ /**
339
+ * Link customer with his sponsor on checkout_submit_all_after
340
+ * @param Array $observer
341
+ */
342
+ public function setSponsorOnOrder($observer)
343
+ {
344
+ //checkout_type_onepage_save_order_after
345
+ $quote = $observer['quote'];
346
+ $order = $observer['order'];
347
+
348
+ if ($order) {
349
+ //if it's a new customer or if we allow to sponsor a registred user
350
+ if ($quote->getData('checkout_method') == Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER
351
+ || Mage::helper('auguria_sponsorship/config')->isRegistredUsersInvitationAllowed() == 1) {
352
+
353
+ $customerId = $order->getCustomerId();
354
+ if ($customerId != '')
355
+ {
356
+ $customer = Mage::getModel("customer/customer")->load($customerId);
357
+ //check godchild has no order
358
+ //check godchild is not a sponsor
359
+ //check godchild has no sponsor
360
+ if (!Mage::helper('auguria_sponsorship')->haveOrder($customerId)
361
+ && !Mage::helper('auguria_sponsorship')->isASponsor($customerId)
362
+ && ((int)$customer->getSponsor()!=0)) {
363
+ $this->_setSponsor($customer);
364
+ $customer->save();
365
+ }
366
+ }
367
+ }
368
+ }
369
+ }
370
+
371
+ /**
372
+ * Add sponsor points for a sponsor with special rate
373
+ */
374
+ protected function _addSponsorSpecialPoints($sponsor, $godson, $specialratepoints, $recordType='order', $recordId=0, $datetime=null)
375
+ {
376
+ //recalcul de la commande & maj items de la commande
377
+ try {
378
+ $sponsor = Mage::helper('auguria_sponsorship')->addSponsorshipPoints($sponsor, $specialratepoints);
379
+ $sponsor->save();
380
+
381
+ //save operation in logs
382
+ $data = array(
383
+ 'godson_id' => $godson->getId(),
384
+ 'sponsor_id' => $sponsor->getId(),
385
+ 'record_id' => $recordId,
386
+ 'record_type' => $recordType,
387
+ 'datetime' => $datetime,
388
+ 'points' => (float)$specialratepoints
389
+ );
390
+ $this->_addAuguriaSponsorshipLog($data);
391
+
392
+ //Send notification to sponsor
393
+ $this->_sendSponsorNotification($sponsor, $godsonId, $pointsToAdd, $tSPoints);
394
+ }
395
+ catch (Exception $e) {
396
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while saving special points : %s",$e->getMessage()));
397
+ }
398
+
399
+ }
400
+
401
+ /**
402
+ * Create cookie to link customer with his sponsor
403
+ * @param Array() $observer
404
+ */
405
+ public function affiliate($observer)
406
+ {
407
+ $controller = $observer['controller_action'];
408
+ /*
409
+ * Transmission de l'id du parrain + nom + prenom dans l'url
410
+ * base url / module / controller / action / parametres
411
+ * http://www.inkonso.com/cms/index/index/sponsor_id/x/nom/xxx/prenom/xxx/email/xxx
412
+ */
413
+ $sponsorId = $controller->getRequest()->getParam('sponsor_id');
414
+ if ($sponsorId!='')
415
+ {
416
+ $nom = $controller->getRequest()->getParam('nom');
417
+ $prenom = $controller->getRequest()->getParam('prenom');
418
+ $email = $controller->getRequest()->getParam('email');
419
+
420
+ //stockage des variables dans la session
421
+ $session = Mage::getSingleton('core/session');
422
+ $session->setData('sponsor_id',$sponsorId);
423
+ $session->setData('firstname',$prenom);
424
+ $session->setData('lastname',$nom);
425
+ $session->setData('email',$email);
426
+
427
+ //stockage de l'id du parrain dans un cookie
428
+ $sponsorInvitationValidity = Mage::helper('auguria_sponsorship/config')->getInvitationValidity();
429
+ $period =3600*24*$sponsorInvitationValidity;
430
+
431
+ $cookie = Mage::getModel('core/cookie');
432
+ $cookie->set('sponsorship_id', $sponsorId, $period);
433
+ $cookie->set('sponsorship_firstname', $prenom, $period);
434
+ $cookie->set('sponsorship_lastname', $nom, $period);
435
+ $cookie->set('sponsorship_email', $email, $period);
436
+
437
+ $controller->getRequest()->setParam('sponsor_id', null);
438
+ }
439
+ }
440
+
441
+ /**
442
+ *
443
+ * Add fidelity points if customer subscribe to newletter while registration
444
+ * @param Varien_Event_Observer $observer
445
+ */
446
+ public function addNewsletterPoints($observer)
447
+ {
448
+ try
449
+ {
450
+ $newsletterPoints = (int)Mage::helper('auguria_sponsorship/config')->getFidelityNewsletterPoints();
451
+ //Check if we must add points
452
+ if ($newsletterPoints > 0)
453
+ {
454
+ //Check if it's an account creation
455
+ $customer = $observer->getCustomer();
456
+ if (!$customer->getId())
457
+ {
458
+ //Check if he is subscribing to the newsletter
459
+ if ($customer->getIsSubscribed() == 1)
460
+ {
461
+ $this->_addFidelityPoints($customer, $newsletterPoints, 'newsletter');
462
+ }
463
+ }
464
+ }
465
+ }
466
+ catch (Exception $e)
467
+ {
468
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while adding news letter points : %s",$e->getMessage()));
469
+ }
470
+ }
471
+
472
+ /**
473
+ *
474
+ * Add fidelity points to customer and sponsorship points to sponsor on first order
475
+ * @param Varien_Event_Observer $observer
476
+ */
477
+ public function addFirstOrderPoints($observer)
478
+ {
479
+ try
480
+ {
481
+ $godsonFirstOrderPoints = Mage::helper('auguria_sponsorship/config')->getFidelityFirstOrderPoints();
482
+ $sponsorFirstOrderPoints = Mage::helper('auguria_sponsorship/config')->getGodsonFirstOrderPoints();
483
+
484
+ //Check if we have to add points on first order
485
+ if ($godsonFirstOrderPoints>0 || $sponsorFirstOrderPoints>0)
486
+ {
487
+ $invoice = $observer->getInvoice();
488
+ $customerId = $invoice->getCustomerId();
489
+
490
+ //Get customer paid invoices
491
+ $invoices = Mage::getResourceModel('sales/order_invoice_collection');
492
+ $invoices->getSelect()->join(array('o'=>$invoices->getTable('sales/order')), 'main_table.order_id = o.entity_id','o.customer_id');
493
+
494
+ $invoices->addAttributeToSelect('state')
495
+ ->addAttributeToFilter('o.customer_id', $customerId)
496
+ ->addAttributeToFilter('main_table.state', Mage_Sales_Model_Order_Invoice::STATE_PAID);
497
+
498
+ if ($invoices->count() == 0)
499
+ {
500
+ $customer = Mage::getModel('customer/customer')->load($customerId);
501
+
502
+ //Add fidelity points to customer
503
+ if ($godsonFirstOrderPoints >0)
504
+ {
505
+ $this->_addFidelityPoints($customer, $godsonFirstOrderPoints, 'first', $invoice->getOrderId());
506
+ $customer->save();
507
+ }
508
+
509
+ //Add sponsorship points
510
+ $sponsorId = $customer->getSponsor();
511
+ if (isset($sponsorId) && $sponsorId>0 && $sponsorFirstOrderPoints>0)
512
+ {
513
+ $sponsor = Mage::getModel('customer/customer')->load($sponsorId);
514
+ $this->_addSponsorPoints($sponsor, $customer, $sponsorFirstOrderPoints, 'first', $invoice->getOrderId());
515
+
516
+ }
517
+ }
518
+ }
519
+ }
520
+ catch (Exception $e)
521
+ {
522
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while adding first order points :".$e->getMessage()));
523
+ }
524
+ }
525
+
526
+ /**
527
+ * Update sponsorship tab customer fields from adminhtml customer form on customer_save_before
528
+ * @param Varien_Event_Observer $observer
529
+ */
530
+ public function adminUpdateSponsorshipFields($observer)
531
+ {
532
+ //@TODO check each parameters
533
+ $form = Mage::app()->getRequest()->getParam('sponsorship');
534
+ if (is_array($form) && !empty($form)) {
535
+ foreach ($form as $key=>$value) {
536
+ $observer->getCustomer()->setData($key, $value);
537
+ }
538
+ }
539
+ return $observer;
540
+ }
541
+
542
+ /**
543
+ * Insert log if points are modified on customer_save_after
544
+ * @param Varien_Event_Observer $observer
545
+ */
546
+ public function adminUpdatePoints($observer)
547
+ {
548
+ if (Mage::app()->getRequest()->getControllerName()=='customer') {
549
+ $customer = $observer->getCustomer();
550
+ if ($customer->hasDataChanges()) {
551
+ $keys = Array('accumulated_points','sponsor_points','fidelity_points');
552
+ foreach ($keys as $key) {
553
+ if ($customer->dataHasChangedFor($key)) {
554
+ $points = (float)$customer->getData($key) - (float)$customer->getOrigData($key);
555
+ $data = Array('points'=>$points,
556
+ 'customer_id'=>$customer->getId(),
557
+ 'record_type'=>'admin');
558
+ $this->_addAuguriaSponsorshipLog($data);
559
+ }
560
+ }
561
+ }
562
+ }
563
+ }
564
+
565
+ /**
566
+ * Update sponsorship fields from frontend customer form on customer_save_before
567
+ * @param Varien_Event_Observer $observer
568
+ */
569
+ public function frontUpdateSponsorshipFields($observer)
570
+ {
571
+ $iban = Mage::app()->getRequest()->getParam('iban');
572
+ $bic = Mage::app()->getRequest()->getParam('bic');
573
+ $siret = Mage::app()->getRequest()->getParam('siret');
574
+ $customer = $observer->getCustomer();
575
+ /*Edit action*/
576
+ if ($customer->getId()) {
577
+ if (isset($iban)) {
578
+ $customerIban = str_replace(CHR(32),"",$iban);
579
+ $customerIban = str_replace("-","",$customerIban);
580
+ if (Zend_Validate::is( trim($iban) , 'NotEmpty')) {
581
+ if (!Zend_Validate::is( trim($iban) , 'Iban')) {
582
+ Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid IBAN code "%s"', $iban));
583
+ }
584
+ }
585
+ $customer->setData('iban', $customerIban);
586
+ }
587
+
588
+ if (isset($bic)) {
589
+ $customerBic = str_replace(CHR(32),"", $bic);
590
+ $customerBic = str_replace("-","", $customerBic);
591
+ $validator = new Zend_Validate_Regex(array('pattern' => '/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/'));
592
+ if(!$validator->isValid($customerBic) && !empty($customerBic)){
593
+ Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid BIC code "%s"', $bic));
594
+ }
595
+ $customer->setData('bic', $customerBic);
596
+ }
597
+
598
+ if (isset($siret)) {
599
+ $customerSiret = str_replace(CHR(32),"",$siret);
600
+ $customerSiret = str_replace("-","",$customerSiret);
601
+ /*desactivated for internationalization
602
+ if (!Mage::helper('auguria_sponsorship')->isSiret(trim($siret))) {
603
+ Mage::throwException(Mage::helper('auguria_sponsorship')->__('Invalid SIRET code "%s"', $siret));
604
+ }
605
+ */
606
+ $customer->setData('siret', $customerSiret);
607
+ }
608
+ }
609
+ /*Create action*/
610
+ else {
611
+ if ($sponsorId = Mage::helper("auguria_sponsorship")->searchSponsorId($customer->getEmail())) {
612
+ $customer->setData('sponsor',$sponsorId);
613
+ $cookie = Mage::getSingleton('core/cookie');
614
+ if ($cookie->get('sponsorship_id')) {
615
+ $cookie->delete('sponsorship_id');
616
+ $cookie->delete('sponsorship_email');
617
+ $cookie->delete('sponsorship_firstname');
618
+ $cookie->delete('sponsorship_lastname');
619
+ }
620
+ }
621
+ }
622
+ return $observer;
623
+ }
624
+
625
+ /**
626
+ * Send notification to sponsor when godson make him earn points
627
+ * @param Mage_Customer_Model_Customer $sponsor
628
+ * @param Int $godchildId
629
+ * @param Float $addedPoints
630
+ * @param Float $totalPoints
631
+ */
632
+ protected function _sendSponsorNotification($sponsor, $godchildId, $addedPoints, $totalPoints)
633
+ {
634
+ if (Mage::helper('auguria_sponsorship/config')->isSponsorshipNotificationEnabled()==1) {
635
+ $godchild = Mage::getModel('customer/customer')->load($godchildId);
636
+ $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
637
+
638
+ $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
639
+ $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
640
+
641
+ $subject = Mage::helper('auguria_sponsorship')->__('%s sponsor points', Mage::helper('auguria_sponsorship/mail')->getStoreName());
642
+
643
+ $sender = array("name"=>$sender_name, "email"=>$sender_email);
644
+ $recipient_email = $sponsor->getData('email');
645
+
646
+ $postObject = new Varien_Object();
647
+ $postObject->setData(Array ("sender_name" => $sender_name,
648
+ "sender_email" => $sender_email,
649
+ "recipient_firstname" => $sponsor->getFirstname(),
650
+ "recipient_lastname" => $sponsor->getLastname(),
651
+ "subject" => $subject,
652
+ "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName(),
653
+ "godchild_firstname" =>$godchild->getFirstname(),
654
+ "godchild_lastname" =>$godchild->getLastname(),
655
+ "added_points" =>$addedPoints,
656
+ "total_points" =>$totalPoints
657
+ ));
658
+ $mailTemplate->setDesignConfig(array('area' => 'frontend'))
659
+ ->setReplyTo($sender_email)
660
+ ->sendTransactional(
661
+ Mage::helper('auguria_sponsorship/config')->getSponsorshipNotificationTemplate(),
662
+ $sender,
663
+ $recipient_email,
664
+ $sponsor->getFirstname().' '.$sponsor->getLastname(),
665
+ array('data' => $postObject));
666
+ if (!$mailTemplate->getSentSuccess())
667
+ {
668
+ Mage::log(Mage::helper('auguria_sponsorship')->__("An error occured while sending sponsor notification email."));
669
+ }
670
+ }
671
+ }
672
+
673
+ /**
674
+ * Remove points from customer account if auguria_sponsorship_discount is set
675
+ * on checkout_submit_all_after
676
+ * @param array $observer
677
+ */
678
+ public function cartPointsExchange($observer)
679
+ {
680
+ $order = $observer['order'];
681
+ if ($order) {
682
+ if ((float)$order->getAuguriaSponsorshipDiscountAmount()<0) {
683
+ $customerId = $order->getCustomerId();
684
+ if ($customerId != '')
685
+ {
686
+ $pointsToCash = Mage::helper('auguria_sponsorship/config')->getPointsToCash();
687
+ $orderAccumulated = 0;
688
+ $orderFidelity = 0;
689
+ $orderSponsor = 0;
690
+ if (isset($pointsToCash['accumulated']) && (float)$pointsToCash['accumulated']>0) {
691
+ $orderAccumulated = (float)$order->getAuguriaSponsorshipAccumulatedPointsUsed()/(float)$pointsToCash['accumulated'];
692
+ }
693
+ if (isset($pointsToCash['fidelity']) && (float)$pointsToCash['fidelity']>0) {
694
+ $orderFidelity = (float)$order->getAuguriaSponsorshipFidelityPointsUsed()/(float)$pointsToCash['fidelity'];
695
+ }
696
+ if (isset($pointsToCash['sponsorship']) && (float)$pointsToCash['sponsorship']>0) {
697
+ $orderSponsor = (float)$order->getAuguriaSponsorshipSponsorPointsUsed()/(float)$pointsToCash['sponsorship'];
698
+ }
699
+ $type = Array();
700
+
701
+ if ((float)$orderAccumulated > 0
702
+ ||(float)$orderSponsor > 0
703
+ ||(float)$orderFidelity > 0) {
704
+ $customer = Mage::getModel("customer/customer")->load($customerId);
705
+ $usedPoints = 0;
706
+ if ((float)$orderAccumulated > 0) {
707
+ $points = (float)$customer->getAccumulatedPoints();
708
+ $usedPoints = (float)$orderAccumulated;
709
+ $points = $points - $usedPoints;
710
+ $points = max(0,$points);
711
+ $customer->setAccumulatedPoints($points);
712
+ $type['accumulated'] = array($usedPoints,(float)$order->getAuguriaSponsorshipAccumulatedPointsUsed());
713
+ }
714
+ else {
715
+ if ((float)$orderSponsor > 0) {
716
+ $points = (float)$customer->getSponsorPoints();
717
+ $usedPoints += (float)$orderSponsor;
718
+ $points = $points - $usedPoints;
719
+ $points = max(0,$points);
720
+ $customer->setSponsorPoints($points);
721
+ $type['sponsor'] = array($usedPoints,(float)$order->getAuguriaSponsorshipSponsorPointsUsed());
722
+ }
723
+ if ((float)$orderFidelity > 0) {
724
+ $points = (float)$customer->getFidelityPoints();
725
+ $usedPoints += (float)$orderFidelity;
726
+ $points = $points - (float)$orderFidelity;
727
+ $points = max(0,$points);
728
+ $customer->setFidelityPoints($points);
729
+ $type['fidelity'] = array((float)$orderFidelity,(float)$order->getAuguriaSponsorshipFidelityPointsUsed());
730
+ }
731
+ }
732
+ $customer->save();
733
+
734
+ if ($usedPoints>0) {
735
+ $data = Array('points'=>-$usedPoints,
736
+ 'customer_id'=>$customerId,
737
+ 'record_type'=>'cart',
738
+ 'record_id'=>$order->getId(),
739
+ 'datetime'=>$order->getUpdatedAt());
740
+ $this->_addAuguriaSponsorshipLog($data);
741
+
742
+ if (count($type)>0) {
743
+ foreach($type as $key=>$dataExchange) {
744
+ list($point, $value) = $dataExchange;
745
+ $echange = Mage::getModel('auguria_sponsorship/change');
746
+ $row = array(
747
+ 'customer_id' => $customerId,
748
+ 'type' => 'cart',
749
+ 'module' => $key,
750
+ 'statut' => 'waiting',
751
+ 'datetime' => Mage::getModel('core/date')->gmtDate(),
752
+ 'points' => $point,
753
+ 'value' => $value
754
+ );
755
+ $echange->setData($row);
756
+ $echange->save();
757
+ }
758
+ }
759
+ }
760
+ }
761
+ }
762
+ }
763
+ }
764
+ $this->_removeCartExchangeFromSession();
765
+ }
766
+
767
+ /**
768
+ * Unset choose of use points parameter in session
769
+ *
770
+ */
771
+ protected function _removeCartExchangeFromSession()
772
+ {
773
+ $pointsTypes = Mage::helper('auguria_sponsorship/config')->getPointsTypes();
774
+ if ($pointsTypes && count($pointsTypes) >0) {
775
+ foreach ($pointsTypes as $type) {
776
+ if ($type == 'sponsor') {
777
+ $type = 'sponsorship';
778
+ }
779
+ Mage::getSingleton('checkout/session')->setData('use_sponsorship_points_'.$type, false);
780
+ }
781
+ }
782
+ }
783
+
784
+ /**
785
+ * Insert data in points logs table
786
+ * @param array $data
787
+ * @return boolean
788
+ */
789
+ protected function _addAuguriaSponsorshipLog($data)
790
+ {
791
+ if (is_array($data) && isset($data['points'])) {
792
+ $log = Mage::getModel('auguria_sponsorship/log');
793
+ if (!isset($data['datetime'])) {
794
+ $data['datetime'] = Mage::getModel('core/date')->gmtDate();
795
+ }
796
+ $log->setData($data);
797
+ $log->save();
798
+ return true;
799
+ }
800
+ return false;
801
+ }
802
+
803
+ /**
804
+ * Add Auguria_Sponsorship points in quote according to defined rules on salesrule_validator_process event
805
+ * @param array(
806
+ 'rule' => $rule,
807
+ 'item' => $item,
808
+ 'address' => $address,
809
+ 'quote' => $quote,
810
+ 'qty' => $qty,
811
+ 'result' => $result,
812
+ ) $observer
813
+ */
814
+ public function validatorPointsCalculationProcess($observer)
815
+ {
816
+ $item = $observer['item'];
817
+ $rule = $observer['rule'];
818
+ $result = $observer['result'];
819
+ $address = $observer['address'];
820
+ $qty = $observer['qty'];
821
+
822
+ $rulePercent = min(100, $rule->getDiscountAmount());
823
+ $price = $item->getDiscountCalculationPrice();
824
+ $baseItemPrice = ($price !== null) ? $item->getBaseDiscountCalculationPrice() : $item->getBaseCalculationPrice();
825
+
826
+ $cartFidelityPoints = 0;
827
+ $cartSponsorPoints = 0;
828
+
829
+ switch ($rule->getSimpleAction()) {
830
+ case 'fidelity_points_by_fixed':
831
+ if ($step = $rule->getDiscountStep()) {
832
+ $qty = floor($qty/$step)*$step;
833
+ }
834
+ $cartFidelityPoints = $qty*$rule->getDiscountAmount();
835
+ break;
836
+
837
+ case 'fidelity_points_by_percent':
838
+ if ($step = $rule->getDiscountStep()) {
839
+ $qty = floor($qty/$step)*$step;
840
+ }
841
+ $cartFidelityPoints = ($qty*$baseItemPrice - $item->getBaseDiscountAmount()) * $rulePercent/100;
842
+ break;
843
+
844
+ case 'fidelity_points_cart_fixed':
845
+ /** @TODO : prevent applying whole cart discount for every shipping order, but only for first order */
846
+ $cartRules = $address->getCartFixedRules();
847
+ if (!isset($cartRules[$rule->getId()])) {
848
+ $cartRules[$rule->getId()] = $rule->getDiscountAmount();
849
+ }
850
+ if ($cartRules[$rule->getId()] > 0) {
851
+ $cartFidelityPoints = $rule->getDiscountAmount();
852
+ }
853
+ $address->setCartFixedRules($cartRules);
854
+ break;
855
+ //sponsor
856
+ case 'sponsor_points_by_fixed':
857
+ if ($step = $rule->getDiscountStep()) {
858
+ $qty = floor($qty/$step)*$step;
859
+ }
860
+ $cartSponsorPoints = $qty*$rule->getDiscountAmount();
861
+ break;
862
+
863
+ case 'sponsor_points_by_percent':
864
+ if ($step = $rule->getDiscountStep()) {
865
+ $qty = floor($qty/$step)*$step;
866
+ }
867
+ $cartSponsorPoints = ($qty*$baseItemPrice - $item->getBaseDiscountAmount()) * $rulePercent/100;
868
+ break;
869
+
870
+ case 'sponsor_points_cart_fixed':
871
+ /** @TODO : prevent applying whole cart discount for every shipping order, but only for first order */
872
+ $cartRules = $address->getCartFixedRules();
873
+ if (!isset($cartRules[$rule->getId()])) {
874
+ $cartRules[$rule->getId()] = $rule->getDiscountAmount();
875
+ }
876
+ if ($cartRules[$rule->getId()] > 0) {
877
+ $cartSponsorPoints = $rule->getDiscountAmount();
878
+ }
879
+ $address->setCartFixedRules($cartRules);
880
+ break;
881
+ }
882
+ $result->setData('cart_fidelity_points',$cartFidelityPoints);
883
+ $result->setData('cart_sponsor_points',$cartSponsorPoints);
884
+
885
+ $cartFidelityPoints = max((float)$item->getCartFidelityPoints(), (float)$cartFidelityPoints);
886
+ $cartSponsorPoints = max((float)$item->getCartSponsorPoints(), (float)$cartSponsorPoints);
887
+
888
+ $item->setCartFidelityPoints($cartFidelityPoints);
889
+ $item->setCartSponsorPoints($cartSponsorPoints);
890
+
891
+ return $this;
892
+ }
893
+
894
+ /**
895
+ * Cancel used and gained points while credit memo creation using sales_order_creditmemo_save_before event
896
+ * @param array $observer
897
+ */
898
+ public function cancelPointsOnCreditMemo($observer)
899
+ {
900
+ $creditmemo = $observer['creditmemo'];
901
+ //if it is a credit memo creation
902
+ if ((int)$creditmemo->getId()==0
903
+ && (Mage::helper('auguria_sponsorship/config')->cancelFidelityEarnedPointsOnCreditMemo()
904
+ || Mage::helper('auguria_sponsorship/config')->cancelSponsorshipEarnedPointsOnCreditMemo())
905
+ ) {
906
+ $order = $creditmemo->getOrder();
907
+
908
+ //Cancel used points
909
+ //@TODO check credit memo sold the order ?
910
+ $this->_cancelUsedPoints($order);
911
+
912
+ //Remove winning points
913
+ //calcul fidelity points to remove and ratio for sponsorship points
914
+ $earnedFidelityPoints = 0;
915
+ $backFidelityPoints = 0;
916
+ $earnedSponsorPoints = 0;
917
+ $backSponsorPoints = 0;
918
+ $ratio = 0;
919
+ $creditMemoItems = $creditmemo->getItemsCollection();
920
+ if ($creditMemoItems->count()>0) {
921
+ foreach ($creditMemoItems as $creditmemoItem) {
922
+ $orderItem = $creditmemoItem->getOrderItem();
923
+
924
+ //fidelity points
925
+ $earnedFidelityPoints += (float)$orderItem->getCatalogFidelityPoints()+(float)$orderItem->getCartFidelityPoints();
926
+ $tmpFidelityPoints = (float)$orderItem->getCatalogFidelityPoints()+(float)$orderItem->getCartFidelityPoints();
927
+ if($orderItem->getQtyInvoiced()!=0) {
928
+ $tmpFidelityPoints = ($tmpFidelityPoints*$creditmemoItem->getQty())/$orderItem->getQtyInvoiced();
929
+ }
930
+ $backFidelityPoints += $tmpFidelityPoints;
931
+
932
+ //sponsorship points
933
+ $earnedSponsorPoints += (float)$orderItem->getCatalogSponsorPoints()+(float)$orderItem->getCartSponsorPoints();
934
+ $tmpSponsorPoints = (float)$orderItem->getCatalogSponsorPoints()+(float)$orderItem->getCartSponsorPoints();
935
+ if($orderItem->getQtyInvoiced()!=0) {
936
+ $tmpSponsorPoints = ($tmpSponsorPoints*$creditmemoItem->getQty())/$orderItem->getQtyInvoiced();
937
+ }
938
+ $backSponsorPoints += $tmpSponsorPoints;
939
+ }
940
+ if ($earnedSponsorPoints>0) {
941
+ $ratio = $backSponsorPoints/$earnedSponsorPoints;
942
+ }
943
+ }
944
+
945
+ //remove fidelity points
946
+ if ($backFidelityPoints>0) {
947
+ if (Mage::helper('auguria_sponsorship/config')->cancelFidelityEarnedPointsOnCreditMemo()){
948
+ $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
949
+ $points = Mage::helper('auguria_sponsorship')->getFidelityPoints($customer);
950
+ $points -= (float)$backFidelityPoints;
951
+ $points = max(0,$points);
952
+ Mage::helper('auguria_sponsorship')->setFidelityPoints($customer, $points);
953
+ $customer->save();
954
+ $data = array(
955
+ 'customer_id' => $order->getCustomerId(),
956
+ 'record_id' => $order->getId(),
957
+ 'record_type' => 'order',
958
+ 'points' => -$backFidelityPoints
959
+ );
960
+ $this->_addAuguriaSponsorshipLog($data);
961
+ }
962
+ }
963
+
964
+ //remove sponsorship points according to logs and applying ratio
965
+ if (Mage::helper('auguria_sponsorship/config')->cancelSponsorshipEarnedPointsOnCreditMemo()){
966
+ $collection = Mage::getResourceModel('auguria_sponsorship/log_collection')
967
+ ->addFieldToFilter('record_type', 'order')
968
+ ->addFieldToFilter('record_id', $order->getId());
969
+ if ($collection->count()>0){
970
+ foreach ($collection as $log) {
971
+ $points = 0;
972
+ if($log->getSponsorId()>0) {
973
+ $customer = Mage::getModel('customer/customer')->load($log->getSponsorId());
974
+ $points = Mage::helper('auguria_sponsorship')->getSponsorshipPoints($customer);
975
+ $points -= (float)$log->getPoints()*$ratio;
976
+ $points = max(0,$points);
977
+ Mage::helper('auguria_sponsorship')->setSponsorshipPoints($customer, $points);
978
+ $customer->save();
979
+ }
980
+
981
+ if ($points>0) {
982
+ $data = array(
983
+ 'godson_id' => $log->getGodsonId(),
984
+ 'sponsor_id' => $log->getSponsorId(),
985
+ 'record_id' => $order->getId(),
986
+ 'record_type' => 'order',
987
+ 'points' => -(float)$log->getPoints()*$ratio
988
+ );
989
+ $this->_addAuguriaSponsorshipLog($data);
990
+ }
991
+ }
992
+ }
993
+ }
994
+ }
995
+ }
996
+
997
+ /**
998
+ * Cancel used points while on order cancellation
999
+ * As there is no event on cancellation we use sales_order_save_before event and we check status
1000
+ * @param array $observer
1001
+ */
1002
+ public function cancelPointsOnOrderCanceled($observer)
1003
+ {
1004
+ $order = $observer['order'];
1005
+ //Check status passed from any to canceled
1006
+ if ($order->getStatus()=='canceled'
1007
+ && $order->getOrigData('status')!='canceled') {
1008
+ $this->_cancelUsedPoints($order);
1009
+ }
1010
+ }
1011
+
1012
+ /**
1013
+ * Add to customer used points in an order and log it
1014
+ * @param Mage_Sales_Model_Order $order
1015
+ */
1016
+ protected function _cancelUsedPoints($order)
1017
+ {
1018
+ $customerId = $order->getCustomerId();
1019
+ $customer = Mage::getModel('customer/customer')->load($customerId);
1020
+
1021
+ $usedPoints = Array();
1022
+ $usedPoints['accumulated'] = $order->getAuguriaSponsorshipAccumulatedPointsUsed();
1023
+ $usedPoints['sponsorship'] = $order->getAuguriaSponsorshipSponsorPointsUsed();
1024
+ $usedPoints['fidelity'] = $order->getAuguriaSponsorshipFidelityPointsUsed();
1025
+ $toAdd = 0;
1026
+ //Add used points
1027
+ foreach ($usedPoints as $type=>$points) {
1028
+ if ($points>0) {
1029
+ $haveUsedPoints = true;
1030
+ if ($type=='accumulated') {
1031
+ if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1032
+ $toAdd += $points;
1033
+ $customer->setAccumulatedPoints($customer->getAccumulatedPoints()+$points);
1034
+ }
1035
+ }
1036
+ elseif ($type=='sponsorship') {
1037
+ if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1038
+ $toAdd += $points;
1039
+ $customer->setSponsorPoints($customer->getSponsorPoints()+$points);
1040
+ }
1041
+ }
1042
+ elseif ($type=='fidelity') {
1043
+ if (Mage::helper('auguria_sponsorship/config')->cancelUsedPointsOnCreditMemo($type)){
1044
+ $toAdd += $points;
1045
+ $customer->setFidelityPoints($customer->getFidelityPoints()+$points);
1046
+ }
1047
+ }
1048
+ }
1049
+ }
1050
+ if ($toAdd>0) {
1051
+ $customer->save();
1052
+ $data = array(
1053
+ 'customer_id' => $customer->getId(),
1054
+ 'record_id' => $order->getId(),
1055
+ 'record_type' => 'cart',
1056
+ 'points' => $toAdd
1057
+ );
1058
+ $this->_addAuguriaSponsorshipLog($data);
1059
+ }
1060
+ }
1061
+
1062
+ /**
1063
+ * Add sponsorship and fidelity action on adminhtml_block_salesrule_actions_prepareform
1064
+ * @param array $observer
1065
+ */
1066
+ public function salesRulesAddAction($observer)
1067
+ {
1068
+ $field = $observer->getForm()->getElement('simple_action');
1069
+ $options = $field->getValues();
1070
+ $customOptions = Array(
1071
+ Array('value'=>'fidelity_points_by_percent','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by percentage of the original price')),
1072
+ Array('value'=>'fidelity_points_by_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by fixed amount')),
1073
+ Array('value'=>'fidelity_points_cart_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Fidelity points by fixed amount for whole cart')),
1074
+ Array('value'=>'sponsor_points_by_percent','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by percentage of the original price')),
1075
+ Array('value'=>'sponsor_points_by_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by fixed amount')),
1076
+ Array('value'=>'sponsor_points_cart_fixed','label'=>Mage::helper('auguria_sponsorship')->__('Sponsorship points by fixed amount for whole cart'))
1077
+ );
1078
+ $allOptions = array_merge($options, $customOptions);
1079
+ $field->setValues($allOptions);
1080
+ }
1081
+
1082
+ /**
1083
+ * Update paypal cart
1084
+ *
1085
+ * @event paypal_prepare_line_items
1086
+ * @param Varien_Event_Observer $observer
1087
+ */
1088
+ public function updatePaypal($observer)
1089
+ {
1090
+ //récupération de la structure passée en paramètre par Paypal
1091
+ $event = $observer->getEvent();
1092
+ //récupération du panier Paypal
1093
+ $panierPaypal = $event->getPaypalCart();
1094
+ if ($panierPaypal)
1095
+ {
1096
+ //récupération de l'objet nécessaire pour les ventes
1097
+ $entity = $panierPaypal->getSalesEntity();
1098
+ if ($entity)
1099
+ {
1100
+ //tentative de récupération du montant Auguria
1101
+ $douRemisePointsFidelite = $entity->getAuguriaSponsorshipDiscountAmount();
1102
+ //si montant trouvé, on met à jour le total
1103
+ if ($douRemisePointsFidelite)
1104
+ $panierPaypal->updateTotal(Mage_Paypal_Model_Cart::TOTAL_DISCOUNT, abs($douRemisePointsFidelite));
1105
+ }
1106
+ }
1107
+ }
1108
+
1109
+ /**
1110
+ * Refill point when payment is canceled
1111
+ * @event sales_order_payment_cancel
1112
+ * @param Varien_Event_Observer $observer
1113
+ */
1114
+ public function paymentCanceled($observer)
1115
+ {
1116
+ //récupération de la structure passée en paramètre par Paypal
1117
+ $event = $observer->getEvent();
1118
+ //récupération de la commande associée
1119
+ $order = $event->getPayment()->getOrder();
1120
+ //action sur le compte fidélité (code dérivé de la fonction _cancelUsedPoints)
1121
+
1122
+ $customerId = $order->getCustomerId();
1123
+ $customer = Mage::getModel('customer/customer')->load($customerId);
1124
+
1125
+ $pointsToCash = Mage::helper('auguria_sponsorship/config')->getPointsToCash();
1126
+
1127
+ $usedPoints = array();
1128
+ $usedPoints['accumulated'] = $order->getAuguriaSponsorshipAccumulatedPointsUsed();
1129
+ $usedPoints['sponsorship'] = $order->getAuguriaSponsorshipSponsorPointsUsed();
1130
+ $usedPoints['fidelity'] = $order->getAuguriaSponsorshipFidelityPointsUsed();
1131
+ $toAdd = 0;
1132
+ //Add used points
1133
+ foreach ($usedPoints as $type=>$points) {
1134
+ if ($points>0) {
1135
+ //conversion en nombre de points
1136
+ $douTaux = 1;
1137
+ if (isset($pointsToCash[$type]) && (float)$pointsToCash[$type]>0){
1138
+ $douTaux = (float)$pointsToCash[$type];
1139
+ }
1140
+ //correction
1141
+ $haveUsedPoints = true;
1142
+ if ($type=='accumulated') {
1143
+ $toAdd += $points/$douTaux;
1144
+ $customer->setAccumulatedPoints($customer->getAccumulatedPoints()+$points/$douTaux);
1145
+ }
1146
+ elseif ($type=='sponsorship') {
1147
+ $toAdd += $points/$douTaux;
1148
+ $customer->setSponsorPoints($customer->getSponsorPoints()+$points/$douTaux);
1149
+ }
1150
+ elseif ($type=='fidelity') {
1151
+ $toAdd += $points/$douTaux;
1152
+ $customer->setFidelityPoints($customer->getFidelityPoints()+$points/$douTaux);
1153
+ }
1154
+ }
1155
+ }
1156
+ if ($toAdd>0) {
1157
+ $customer->save();
1158
+ $data = array(
1159
+ 'customer_id' => $customer->getId(),
1160
+ 'record_id' => $order->getId(),
1161
+ 'record_type' => 'cart',
1162
+ 'points' => $toAdd
1163
+ );
1164
+ $this->_addAuguriaSponsorshipLog($data);
1165
+ }
1166
+ }
1167
  }
app/code/community/Auguria/Sponsorship/Model/Total/Quote/Discount.php CHANGED
@@ -7,31 +7,40 @@
7
  */
8
  class Auguria_Sponsorship_Model_Total_Quote_Discount extends Mage_Sales_Model_Quote_Address_Total_Abstract
9
  {
10
- protected $_mode;
11
- protected $_activated;
12
- protected $_amount;
13
- protected $_store;
14
-
15
  public function __construct()
16
  {
17
  $this->setCode('auguria_sponsorship_discount');
18
  }
19
-
20
  protected function _getMode() {
21
- if (!isset($this->_mode)) {
22
- $this->_mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
23
- }
24
- return $this->_mode;
25
  }
26
-
27
  protected function _getActivated()
28
  {
29
- if (!isset($this->_activated)) {
30
- $this->_activated = Mage::helper('auguria_sponsorship/config')->getCartExchangeActivated($this->_getMode());
31
- }
32
- return $this->_activated;
 
 
 
 
 
 
 
 
 
33
  }
34
-
35
  /**
36
  * Collect address discount amount
37
  *
@@ -40,93 +49,93 @@ class Auguria_Sponsorship_Model_Total_Quote_Discount extends Mage_Sales_Model_Qu
40
  */
41
  public function collect(Mage_Sales_Model_Quote_Address $address)
42
  {
43
- parent::collect($address);
44
- $this->_store = $address->getQuote()->getStore();
45
- if (!isset($this->_amount)
46
- && $address->getSubtotal()>0) {
47
- $discountApplyIncludedTax = Mage::getStoreConfig('tax/calculation/discount_tax');
48
- $discountApplyBeforeTax = Mage::getStoreConfig('tax/calculation/apply_after_discount');
49
-
50
- //Apply discount before tax
51
- if ($discountApplyBeforeTax) {
52
- $maxAmount = $address->getBaseSubtotalWithDiscount();
53
- if ($maxAmount>0) {
54
- $this->_getAmount($address, $maxAmount);
55
- //recalcul tax amount with new amount
56
- $amountForTaxCalculation = $maxAmount - $this->_amount;
57
- $taxAmount = ($address->getBaseTaxAmount()*$amountForTaxCalculation)/$maxAmount;
58
- //@TODO add shipping tax if needed
59
- $address->setBaseTotalAmount('tax', $taxAmount);
60
- $address->setTotalAmount('tax', $this->_store->convertPrice($taxAmount));
61
-
62
- }
63
- else {
64
- $this->_amount = 0;
65
- }
66
-
67
- }
68
- //Apply discount after tax
69
- else {
70
- $maxAmount = $address->getBaseSubtotalWithDiscount();
71
- //Discount calculated included tax
72
- if ($discountApplyIncludedTax) {
73
- $maxAmount += $address->getBaseTaxAmount();
74
- }
75
- $this->_getAmount($address, $maxAmount);
76
- }
77
-
78
-
79
-
80
- if ($this->_amount > 0) {
81
- $baseAuguriaSponsorshipDiscountAmount = $this->_amount*-1;
82
- $auguriaSponsorshipDiscountAmount = $this->_store->convertPrice($baseAuguriaSponsorshipDiscountAmount);
83
-
84
- $this->_setAmount($auguriaSponsorshipDiscountAmount);
85
- $this->_setBaseAmount($baseAuguriaSponsorshipDiscountAmount);
86
-
87
- //$address->setGrandTotal($address->getGrandTotal() + $address->getAuguriaSponsorshipDiscountAmount());
88
- //$address->setBaseGrandTotal($address->getBaseGrandTotal() + $address->getBaseAuguriaSponsorshipDiscountAmount());
89
- }
90
- }
91
  return $this;
92
  }
93
-
94
  protected function _getAmount($address, $maxValue)
95
  {
96
- $modes = Mage::helper('auguria_sponsorship')->getCash();
97
- $this->_amount = 0;
98
-
99
- if (count($modes)>0) {
100
-
101
- $activated = $this->_getActivated();
102
- foreach ($modes as $mode=>$value) {
103
- if (isset($activated[$mode])
104
- && $activated[$mode]==true
105
- && $maxValue>$this->_amount
106
- && $value>0) {
107
- $sold = $maxValue - $this->_amount - $value;
108
- if ($sold >= 0) {
109
- $this->_amount += $value;
110
- }
111
- else {
112
- $value = $maxValue-$this->_amount;
113
- $this->_amount += $value;
114
- }
115
- if ($mode == 'fidelity') {
116
- $address->setAuguriaSponsorshipFidelityPointsUsed($value);
117
- }
118
- elseif ($mode == 'sponsorship') {
119
- $address->setAuguriaSponsorshipSponsorPointsUsed($value);
120
- }
121
- elseif ($mode == 'accumulated') {
122
- $address->setAuguriaSponsorshipAccumulatedPointsUsed($value);
123
- }
124
- }
125
- }
126
- }
127
- return $this->_amount;
128
  }
129
-
130
  /**
131
  * Add discount total information to address
132
  *
@@ -135,19 +144,19 @@ class Auguria_Sponsorship_Model_Total_Quote_Discount extends Mage_Sales_Model_Qu
135
  */
136
  public function fetch(Mage_Sales_Model_Quote_Address $address)
137
  {
138
- if ($this->_amount > 0) {
139
- $address->addTotal(array(
140
- 'code'=>$this->getCode(),
141
- 'title'=>$this->getLabel(),
142
- 'value'=>$address->getAuguriaSponsorshipDiscountAmount()
143
- ));
144
- }
145
  return $this;
146
  }
147
-
148
  public function getLabel()
149
  {
150
  return Mage::helper('auguria_sponsorship')->__('Sponsorship and fidelity discount');
151
  }
152
-
153
  }
7
  */
8
  class Auguria_Sponsorship_Model_Total_Quote_Discount extends Mage_Sales_Model_Quote_Address_Total_Abstract
9
  {
10
+ protected $_mode;
11
+ protected $_activated;
12
+ protected $_amount;
13
+ protected $_store;
14
+
15
  public function __construct()
16
  {
17
  $this->setCode('auguria_sponsorship_discount');
18
  }
19
+
20
  protected function _getMode() {
21
+ if (!isset($this->_mode)) {
22
+ $this->_mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
23
+ }
24
+ return $this->_mode;
25
  }
26
+
27
  protected function _getActivated()
28
  {
29
+ if (!isset($this->_activated)) {
30
+ $this->_activated = array();
31
+ $activated = Mage::helper('auguria_sponsorship/config')->getCartExchangeActivated($this->_getMode());
32
+ $isAutomatic = Mage::helper('auguria_sponsorship/config')->isCartExchangeAutomatic($this->_getMode());
33
+ foreach ($activated as $mode=>$value) {
34
+ if (isset($isAutomatic[$mode]) && $isAutomatic[$mode] == true) {
35
+ $this->_activated[$mode] = true;
36
+ } elseif (Mage::getSingleton('checkout/session')->getData('use_sponsorship_points_'.$mode) == true) {
37
+ $this->_activated[$mode] = true;
38
+ }
39
+ }
40
+ }
41
+ return $this->_activated;
42
  }
43
+
44
  /**
45
  * Collect address discount amount
46
  *
49
  */
50
  public function collect(Mage_Sales_Model_Quote_Address $address)
51
  {
52
+ parent::collect($address);
53
+ $this->_store = $address->getQuote()->getStore();
54
+ if (!isset($this->_amount)
55
+ && $address->getSubtotal()>0) {
56
+ $discountApplyIncludedTax = Mage::getStoreConfig('tax/calculation/discount_tax');
57
+ $discountApplyBeforeTax = Mage::getStoreConfig('tax/calculation/apply_after_discount');
58
+
59
+ //Apply discount before tax
60
+ if ($discountApplyBeforeTax) {
61
+ $maxAmount = $address->getBaseSubtotalWithDiscount();
62
+ if ($maxAmount>0) {
63
+ $this->_getAmount($address, $maxAmount);
64
+ //recalcul tax amount with new amount
65
+ $amountForTaxCalculation = $maxAmount - $this->_amount;
66
+ $taxAmount = ($address->getBaseTaxAmount()*$amountForTaxCalculation)/$maxAmount;
67
+ //@TODO add shipping tax if needed
68
+ $address->setBaseTotalAmount('tax', $taxAmount);
69
+ $address->setTotalAmount('tax', $this->_store->convertPrice($taxAmount));
70
+
71
+ }
72
+ else {
73
+ $this->_amount = 0;
74
+ }
75
+
76
+ }
77
+ //Apply discount after tax
78
+ else {
79
+ $maxAmount = $address->getBaseSubtotalWithDiscount();
80
+ //Discount calculated included tax
81
+ if ($discountApplyIncludedTax) {
82
+ $maxAmount += $address->getBaseTaxAmount();
83
+ }
84
+ $this->_getAmount($address, $maxAmount);
85
+ }
86
+
87
+
88
+
89
+ if ($this->_amount > 0) {
90
+ $baseAuguriaSponsorshipDiscountAmount = $this->_amount*-1;
91
+ $auguriaSponsorshipDiscountAmount = $this->_store->convertPrice($baseAuguriaSponsorshipDiscountAmount);
92
+
93
+ $this->_setAmount($auguriaSponsorshipDiscountAmount);
94
+ $this->_setBaseAmount($baseAuguriaSponsorshipDiscountAmount);
95
+
96
+ //$address->setGrandTotal($address->getGrandTotal() + $address->getAuguriaSponsorshipDiscountAmount());
97
+ //$address->setBaseGrandTotal($address->getBaseGrandTotal() + $address->getBaseAuguriaSponsorshipDiscountAmount());
98
+ }
99
+ }
100
  return $this;
101
  }
102
+
103
  protected function _getAmount($address, $maxValue)
104
  {
105
+ $modes = Mage::helper('auguria_sponsorship')->getCash();
106
+ $this->_amount = 0;
107
+
108
+ if (count($modes)>0) {
109
+
110
+ $activated = $this->_getActivated();
111
+ foreach ($modes as $mode=>$value) {
112
+ if (isset($activated[$mode])
113
+ && $activated[$mode]==true
114
+ && $maxValue>$this->_amount
115
+ && $value>0) {
116
+ $sold = $maxValue - $this->_amount - $value;
117
+ if ($sold >= 0) {
118
+ $this->_amount += $value;
119
+ }
120
+ else {
121
+ $value = $maxValue-$this->_amount;
122
+ $this->_amount += $value;
123
+ }
124
+ if ($mode == 'fidelity') {
125
+ $address->setAuguriaSponsorshipFidelityPointsUsed($value);
126
+ }
127
+ elseif ($mode == 'sponsorship') {
128
+ $address->setAuguriaSponsorshipSponsorPointsUsed($value);
129
+ }
130
+ elseif ($mode == 'accumulated') {
131
+ $address->setAuguriaSponsorshipAccumulatedPointsUsed($value);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ return $this->_amount;
137
  }
138
+
139
  /**
140
  * Add discount total information to address
141
  *
144
  */
145
  public function fetch(Mage_Sales_Model_Quote_Address $address)
146
  {
147
+ if ($this->_amount > 0) {
148
+ $address->addTotal(array(
149
+ 'code'=>$this->getCode(),
150
+ 'title'=>$this->getLabel(),
151
+ 'value'=>$address->getAuguriaSponsorshipDiscountAmount()
152
+ ));
153
+ }
154
  return $this;
155
  }
156
+
157
  public function getLabel()
158
  {
159
  return Mage::helper('auguria_sponsorship')->__('Sponsorship and fidelity discount');
160
  }
161
+
162
  }
app/code/community/Auguria/Sponsorship/controllers/CartController.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_Sponsorship
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ class Auguria_Sponsorship_CartController extends Mage_Core_Controller_Front_Action
9
+ {
10
+ public function usePointsAction()
11
+ {
12
+ $type = $this->getRequest()->getParam('sponsorship_type');
13
+ if ($type == 'sponsor') {
14
+ $type = 'sponsorship';
15
+ }
16
+ Mage::getSingleton('checkout/session')->setData('use_sponsorship_points_'.$type, true);
17
+ $this->_redirectUrl(Mage::getUrl('checkout/cart'));
18
+ }
19
+
20
+ public function doNotUsePointsAction()
21
+ {
22
+ $type = $this->getRequest()->getParam('sponsorship_type');
23
+ if ($type == 'sponsor') {
24
+ $type = 'sponsorship';
25
+ }
26
+ Mage::getSingleton('checkout/session')->setData('use_sponsorship_points_'.$type, false);
27
+ $this->_redirectUrl(Mage::getUrl('checkout/cart'));
28
+ }
29
+ }
app/code/community/Auguria/Sponsorship/controllers/PointsController.php CHANGED
@@ -8,465 +8,467 @@
8
  class Auguria_Sponsorship_PointsController extends Mage_Core_Controller_Front_Action
9
  {
10
 
11
- protected $_couponCode = NULL;
12
-
13
- public function preDispatch()
14
- {
15
- parent::preDispatch();
16
- if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
17
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
18
- }
19
- }
20
-
21
-
22
- public function indexAction()
23
- {
24
- $mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
25
- if ($mode=='accumulated') {
26
- $this->_redirect('*/*/accumulated');
27
- }
28
- elseif ($mode=='separated') {
29
- $this->_redirect('*/*/sponsorship');
30
- }
31
- elseif ($mode=='sponsorship') {
32
- $this->_redirect('*/*/sponsorship');
33
- }
34
- elseif ($mode=='fidelity') {
35
- $this->_redirect('*/*/fidelity');
36
- }
37
- else {
38
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
39
- }
40
- }
41
-
42
- public function accumulatedAction()
43
- {
44
- $this->loadLayout();
45
- $this->getLayout()->getBlock('customer');
46
- $this->_initLayoutMessages('customer/session');
47
- $this->_initLayoutMessages('catalog/session');
48
- $this->renderLayout();
49
- }
50
-
51
- public function sponsorshipAction()
52
- {
53
- $this->loadLayout();
54
- $this->getLayout()->getBlock('customer');
55
- $this->_initLayoutMessages('customer/session');
56
- $this->_initLayoutMessages('catalog/session');
57
- $this->renderLayout();
58
- }
59
-
60
- public function fidelityAction()
61
- {
62
- $this->loadLayout();
63
- $this->getLayout()->getBlock('customer');
64
- $this->_initLayoutMessages('customer/session');
65
- $this->_initLayoutMessages('catalog/session');
66
- $this->renderLayout();
67
- }
68
-
69
- /**
70
- * @TODO changeAccumulated + changeFidelityAction + changeSponsorshipAction
71
- *
72
- */
73
-
74
- public function changeAction()
75
- {
76
- $module = $this->getRequest()->getParam('module');
77
- $type = $this->getRequest()->getParam('type');
78
-
79
- //Set used module in session on change action for recover in checkout
80
- Mage::getSingleton('customer/session')->setData('auguria_sponsorship_change_module', $module);
81
-
82
- $resultValidate = $this->_validateChange($module, $type);
83
- if ($resultValidate == 'valide' )
84
- {
85
- $this->loadLayout();
86
- $block = $this->getLayout()->getBlock('customer_pointschange_'.$type);
87
- $this->getLayout()->getBlock('content')->append($block);
88
- $this->_initLayoutMessages('customer/session');
89
- $this->_initLayoutMessages('catalog/session');
90
- $this->renderLayout();
91
- }
92
- elseif ($resultValidate == 'inactif' )
93
- {
94
- $this->_redirect('*/*/');
95
- }
96
- elseif ($resultValidate == 'account' )
97
- {
98
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
99
- }
100
- }
101
-
102
- public function saveAction()
103
- {
104
- if (!$this->_validateFormKey()) {
105
- return $this->_redirect('*/*');
106
- }
107
- else
108
- {
109
- $module = $this->getRequest()->getPost('module');
110
- $type = $this->getRequest()->getPost('type');
111
- $points = $this->getRequest()->getPost('points');
112
-
113
- $resultValidate = $this->_validateChange($module, $type, $points);
114
-
115
- $value = $this->_getValue($points, $type, $module);
116
-
117
- if ($resultValidate == 'valide' )
118
- {
119
- try
120
- {
121
- $customerId = Mage::getSingleton('customer/session')->getId();
122
- $customer = Mage::getModel("customer/customer")->load($customerId);
123
-
124
- //récupération des points clients
125
- $getdatapoints = 'get'.ucfirst($module).'Points';
126
- $cPoints = $customer->$getdatapoints();
127
- //décrémentation des points du client
128
- $setdatapoints = 'set'.ucfirst($module).'Points';
129
- $newPoints = $cPoints - $points;
130
- $customer->$setdatapoints($newPoints);
131
- $customer->save();
132
-
133
- $dateTime = Mage::getModel('core/date')->gmtDate();
134
- $statut = "waiting";
135
-
136
- //inscription de l'opération dans la table des echanges
137
- $echange = Mage::getModel('auguria_sponsorship/change');
138
-
139
- $row = array(
140
- 'customer_id' => $customerId,
141
- 'type' => $type,
142
- 'module' => $module,
143
- 'statut' => $statut,
144
- 'datetime' => $dateTime,
145
- 'points' => $points,
146
- 'value' => $value,
147
- 'coupon_code' => $this->_couponCode
148
- );
149
- $echange->setData($row);
150
- $echange->save();
151
- $echangeId = $echange->getId();
152
-
153
- //inscription dans les logs
154
- $log = Mage::getModel('auguria_sponsorship/log');
155
- $data = array(
156
- 'customer_id' => $customerId,
157
- 'record_id' => $echangeId,
158
- 'record_type' => $type,
159
- 'datetime' => $dateTime,
160
- 'points' => -$points
161
- );
162
- $log->setData($data);
163
- $log->save();
164
- Mage::getSingleton('customer/session')->addSuccess(Mage::helper('auguria_sponsorship')->__('Your request has been submitted, you will soon receive an email confirmation.'));
165
- if ($module=='sponsor') {
166
- $module = 'sponsorship';
167
- }
168
- $this->_redirect('*/*/'.$module);
169
- }
170
-
171
- catch (Exception $e) {
172
- Mage::log($e->getMessage());
173
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while saving your request."));
174
- $this->_redirect('*/*/');
175
- }
176
- }
177
- elseif ($resultValidate == 'inactif' )
178
- {
179
- $this->_redirect('*/*/');
180
- }
181
- elseif ($resultValidate == 'account' )
182
- {
183
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
184
- }
185
- elseif ($resultValidate == 'points' )
186
- {
187
- $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
188
- }
189
- elseif ($resultValidate == 'mail' )
190
- {
191
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while sending mail."));
192
- $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
193
- }
194
- }
195
- }
196
-
197
- protected function _validateChange($module, $type, $points='')
198
- {
199
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
200
- $session = Mage::getSingleton('customer/session');
201
-
202
- $Module = ucfirst($module);
203
- $Type = ucfirst($type);
204
-
205
- $changeEnabled = 'get'.$Module.$Type.'Config';
206
- $moduleEnabled = 'get'.$Module.'EnabledConfig';
207
-
208
- if (($options->$moduleEnabled()==1 && $options->$changeEnabled()==1))
209
- {
210
- $validate = '_validate'.$Type;
211
- return $this->$validate($module,$points);
212
- }
213
- else
214
- {
215
- $session->addError(Mage::helper('auguria_sponsorship')->__('The exchange of %s points in %s is disabled.',$this->__($module),$this->__($type)));
216
- return 'inactif';
217
- }
218
- }
219
- protected function _validateCoupon ($module, $points='')
220
- {
221
- $validate = 'valide';
222
- $customerId = Mage::getSingleton('customer/session')->getId();
223
- $customer = Mage::getModel("customer/customer")->load($customerId);
224
-
225
- //vérification que les points à changer sonts inférieurs aux points du client
226
- if ($points != '')
227
- {
228
- $data = 'get'.ucfirst($module).'Points';
229
- $cPoints = $customer->$data();
230
- if ($points>$cPoints)
231
- {
232
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
233
- $validate = 'points';
234
- }
235
- else
236
- {
237
- //création de la règle panier---------------------------------------------------
238
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
239
- $srModel = Mage::getModel('salesrule/rule');
240
- $date = Mage::getModel('core/date')->gmtDate();
241
- $chars = array("-", ":", " ");
242
- $simpledate = str_replace($chars, "", $date);
243
- $couponCode = $customerId."-".$points.$simpledate;//idClient-date-module-somme
244
- $name = $this->__("%s points exchange for customer (%s)", $this->__($module), $customerId);
245
- $description = $name;
246
- $customerGroupId = $customer->getGroupId();
247
- $discountAmount = $this->_getValue ($points, "coupon", $module);
248
- $websiteId = $customer->getWebsiteId();
249
- $data = array
250
- (
251
- "name" => $name,
252
- "description" => $description,
253
- "from_date" => $date,
254
- "coupon_code" => $couponCode,
255
- "coupon_type" => 2,
256
- "uses_per_coupon" => 1,
257
- //"uses_per_customer" => 1,
258
- "customer_group_ids" => Array(0 => $customerGroupId),//get customer group
259
- "is_active" => 1,
260
- "conditions_serialized" => 'a:6:{s:4:"type";s:32:"salesrule/rule_condition_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
261
- "actions_serialized" => 'a:6:{s:4:"type";s:40:"salesrule/rule_condition_product_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
262
- "stop_rules_processing" => 0,
263
- "is_advanced" => 1,
264
- "sort_order" => 0,
265
- "simple_action" => "cart_fixed",
266
- "discount_amount" => $discountAmount,
267
- "discount_qty" => 1.0000,
268
- "discount_step" => 0,
269
- "simple_free_shipping" => 0,
270
- "times_used" => 0,
271
- "is_rss" => 1,
272
- "website_ids" => Array(0 => $websiteId)//get website id
273
- );
274
- $srModel->setData($data);
275
- $srModel->save();
276
- $this->_couponCode = $srModel->getData('coupon_code');
277
- //envoi du mail--------------------------------------------------------------
278
- //construction du message
279
- $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
280
-
281
- $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
282
- $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
283
-
284
- $subject = $this->__('%s vouchers points exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
285
-
286
- $sender = array("name"=>$sender_name, "email"=>$sender_email);
287
- $recipient_email = $customer->getData('email');
288
-
289
- $postObject = new Varien_Object();
290
- $postObject->setData(Array ("sender_name" => $sender_name,
291
- "sender_email" => $sender_email,
292
- "recipient_firstname" => $customer->getFirstname(),
293
- "recipient_lastname" => $customer->getLastname(),
294
- "discount_amount" => $discountAmount,
295
- "subject" => $subject,
296
- "coupon_code" => $couponCode,
297
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
298
- ));
299
-
300
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
301
- ->setReplyTo($sender_email)
302
- //->setReturnPath($sender_email)
303
- ->sendTransactional(
304
- Mage::getStoreConfig('auguria_sponsorship/coupon/template'),
305
- $sender,
306
- $recipient_email,
307
- $customer->getFirstname().' '.$customer->getLastname(),
308
- array('data' => $postObject)
309
- );
310
- if (!$mailTemplate->getSentSuccess())
311
- {
312
- $validate = "mail";
313
- }
314
-
315
- }
316
- }
317
- return $validate;
318
- }
319
-
320
- protected function _validateGift ($module, $points='')
321
- {
322
- return 'valide';
323
- }
324
-
325
- protected function _validateCash ($module, $points=0)
326
- {
327
- $validate = 'valide';
328
- $customerId = Mage::getSingleton('customer/session')->getId();
329
- //Validation qu'un Iban est renseigné
330
- $customer = Mage::getModel("customer/customer")->load($customerId);
331
-
332
- if ($points != 0)
333
- {
334
- $maxCash = "";
335
- $enableSiretChecking = true;
336
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
337
-
338
- if (!$customer->getIban() || !$customer->getBic()) {
339
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change your points into cash, you must indicate your IBAN and BIC.'));
340
- $validate = 'account';
341
- }
342
-
343
- //Validation qu'un Siret est renseigné si le max de cash pour un particulier est atteint
344
- if ($module=='sponsor') {
345
- $maxCash = $options->getSponsorMaxCashConfig ();
346
- $enableSiretChecking = $options->getSponsorEnableSiretConfig ();
347
- $timeMaxCash = $options->getSponsorTimeMaxCashConfig ();
348
- }
349
- elseif ($module=='fidelity') {
350
- $maxCash = $options->getFidelityMaxCashConfig ();
351
- $enableSiretChecking = $options->getFidelityEnableSiretConfig ();
352
- $timeMaxCash = $options->getFidelityTimeMaxCashConfig ();
353
- }
354
- elseif ($module=='accumulated') {
355
- $maxCash = $options->getAccumulatedMaxCashConfig ();
356
- $enableSiretChecking = $options->getAccumulatedEnableSiretConfig ();
357
- $timeMaxCash = $options->getAccumulatedTimeMaxCashConfig ();
358
- }
359
- $resource = Mage::getSingleton('core/resource');
360
- $read = $resource->getConnection('core_read');
361
- $datetime = Mage::getModel('core/date')->gmtDate();
362
- $select = $read->select()
363
- ->from($resource->getTableName('auguria_sponsorship/change'), 'SUM(points)')
364
- ->where('customer_id=?', $customerId)
365
- ->where('module=?', $module)
366
- ->where('type=?', 'cash')
367
- ->where('statut!=?', 'canceled')
368
- ->where('TO_DAYS("'.$datetime.'") - TO_DAYS(datetime) <=?', $timeMaxCash);
369
-
370
- $cashPoints = $read->fetchOne($select);
371
-
372
- //Addition des points déjà changés avec les points demandés
373
- $cashPoints = $points+$cashPoints;
374
-
375
- //vérification que le total ne dépasse pas le maximum autorisé
376
- if ($enableSiretChecking && ($cashPoints >= $maxCash)) {
377
- if (!$customer->getSiret())
378
- {
379
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change more cash, you must specify a company number.'));
380
- $validate = 'account';
381
- }
382
- }else{
383
-
384
- //vérification que les points à changer sonts inférieurs aux points du client
385
- if ($points != '')
386
- {
387
- $data = 'get'.ucfirst($module).'Points';
388
- $cPoints = $customer->$data();
389
- if ($points>$cPoints)
390
- {
391
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
392
- $validate = 'points';
393
- }
394
- else {
395
-
396
- //envoi du mail--------------------------------------------------------------
397
- //construction du message
398
- $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
399
-
400
- $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
401
- $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
402
- $subject = $this->__('%s cash exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
403
-
404
- $sender = array("name"=>$sender_name, "email"=>$sender_email);
405
- $recipient_email = $customer->getData('email');
406
-
407
- $postObject = new Varien_Object();
408
- $postObject->setData(Array ("sender_name" => $sender_name,
409
- "sender_email" => $sender_email,
410
- "recipient_firstname" => $customer->getFirstname(),
411
- "recipient_lastname" => $customer->getLastname(),
412
- "discount_amount" => $points,
413
- "subject" => $subject,
414
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
415
- ));
416
-
417
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
418
- ->setReplyTo($sender_email)
419
- ->sendTransactional(
420
- Mage::getStoreConfig('auguria_sponsorship/cash/template'),
421
- $sender,
422
- $recipient_email,
423
- $customer->getFirstname().' '.$customer->getLastname(),
424
- array('data' => $postObject)
425
- );
426
- if (!$mailTemplate->getSentSuccess())
427
- {
428
- $validate = "mail";
429
- }
430
- /* envoi de l'email a l'administration */
431
- $subject = $this->__('A customer wants to exchange %s Euros', $points);
432
-
433
- $adminEmail = Mage::helper('auguria_sponsorship/config')->getAdministratorEmail();
434
- if($adminEmail){
435
- $administratorPostObject = new Varien_Object();
436
- $administratorPostObject->setData(Array ("sender_name" => $sender_name,
437
- "sender_email" => $sender_email,
438
- "recipient_firstname" => $customer->getFirstname(),
439
- "recipient_lastname" => $customer->getLastname(),
440
- "discount_amount" => $points,
441
- "subject" => $subject,
442
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
443
- ));
444
-
445
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
446
- ->setReplyTo($sender_email)
447
- ->sendTransactional(
448
- Mage::getStoreConfig('auguria_sponsorship/cash/template'),
449
- $sender,
450
- $adminEmail,
451
- $customer->getFirstname().' '.$customer->getLastname(),
452
- array('data' => $administratorPostObject)
453
- );
454
- }
455
- }
456
- }
457
- }
458
- }
459
- return $validate;
460
- }
461
-
462
- protected function _getValue ($points, $type, $module)
463
- {
464
- //if ($type == 'cash')
465
- //recuperation du taux de conversion
466
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
467
- $getPointsToCash = 'get'.ucfirst($module).'PointsToCashConfig';
468
- $PointsToCash = $options->$getPointsToCash();
469
- $value = round($points*$PointsToCash,2);
470
- return $value;
471
- }
 
 
472
  }
8
  class Auguria_Sponsorship_PointsController extends Mage_Core_Controller_Front_Action
9
  {
10
 
11
+ protected $_couponCode = NULL;
12
+
13
+ public function preDispatch()
14
+ {
15
+ parent::preDispatch();
16
+ if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
17
+ $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
18
+ }
19
+ }
20
+
21
+
22
+ public function indexAction()
23
+ {
24
+ $mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
25
+ if ($mode=='accumulated') {
26
+ $this->_redirect('*/*/accumulated');
27
+ }
28
+ elseif ($mode=='separated') {
29
+ $this->_redirect('*/*/sponsorship');
30
+ }
31
+ elseif ($mode=='sponsorship') {
32
+ $this->_redirect('*/*/sponsorship');
33
+ }
34
+ elseif ($mode=='fidelity') {
35
+ $this->_redirect('*/*/fidelity');
36
+ }
37
+ else {
38
+ $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
39
+ }
40
+ }
41
+
42
+ public function accumulatedAction()
43
+ {
44
+ $this->loadLayout();
45
+ $this->getLayout()->getBlock('customer');
46
+ $this->_initLayoutMessages('customer/session');
47
+ $this->_initLayoutMessages('catalog/session');
48
+ $this->renderLayout();
49
+ }
50
+
51
+ public function sponsorshipAction()
52
+ {
53
+ $this->loadLayout();
54
+ $this->getLayout()->getBlock('customer');
55
+ $this->_initLayoutMessages('customer/session');
56
+ $this->_initLayoutMessages('catalog/session');
57
+ $this->renderLayout();
58
+ }
59
+
60
+ public function fidelityAction()
61
+ {
62
+ $this->loadLayout();
63
+ $this->getLayout()->getBlock('customer');
64
+ $this->_initLayoutMessages('customer/session');
65
+ $this->_initLayoutMessages('catalog/session');
66
+ $this->renderLayout();
67
+ }
68
+
69
+ /**
70
+ * @TODO changeAccumulated + changeFidelityAction + changeSponsorshipAction
71
+ *
72
+ */
73
+
74
+ public function changeAction()
75
+ {
76
+ $module = $this->getRequest()->getParam('module');
77
+ $type = $this->getRequest()->getParam('type');
78
+
79
+ //Set used module in session on change action for recover in checkout
80
+ Mage::getSingleton('customer/session')->setData('auguria_sponsorship_change_module', $module);
81
+
82
+ $resultValidate = $this->_validateChange($module, $type);
83
+ if ($resultValidate == 'valide' )
84
+ {
85
+ $this->loadLayout();
86
+ $block = $this->getLayout()->getBlock('customer_pointschange_'.$type);
87
+ $this->getLayout()->getBlock('content')->append($block);
88
+ $this->_initLayoutMessages('customer/session');
89
+ $this->_initLayoutMessages('catalog/session');
90
+ $this->renderLayout();
91
+ }
92
+ elseif ($resultValidate == 'inactif' )
93
+ {
94
+ $this->_redirect('*/*/');
95
+ }
96
+ elseif ($resultValidate == 'account' )
97
+ {
98
+ $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
99
+ }
100
+ }
101
+
102
+ public function saveAction()
103
+ {
104
+ if (!$this->_validateFormKey()) {
105
+ return $this->_redirect('*/*');
106
+ }
107
+ else
108
+ {
109
+ $module = $this->getRequest()->getPost('module');
110
+ $type = $this->getRequest()->getPost('type');
111
+ $points = $this->getRequest()->getPost('points');
112
+
113
+ $resultValidate = $this->_validateChange($module, $type, $points);
114
+
115
+ $value = $this->_getValue($points, $type, $module);
116
+
117
+ if ($resultValidate == 'valide' )
118
+ {
119
+ try
120
+ {
121
+ $customerId = Mage::getSingleton('customer/session')->getId();
122
+ $customer = Mage::getModel("customer/customer")->load($customerId);
123
+
124
+ //récupération des points clients
125
+ $getdatapoints = 'get'.ucfirst($module).'Points';
126
+ $cPoints = $customer->$getdatapoints();
127
+ //décrémentation des points du client
128
+ $setdatapoints = 'set'.ucfirst($module).'Points';
129
+ $newPoints = $cPoints - $points;
130
+ $customer->$setdatapoints($newPoints);
131
+ $customer->save();
132
+
133
+ $dateTime = Mage::getModel('core/date')->gmtDate();
134
+ $statut = "waiting";
135
+
136
+ //inscription de l'opération dans la table des echanges
137
+ $echange = Mage::getModel('auguria_sponsorship/change');
138
+
139
+ $row = array(
140
+ 'customer_id' => $customerId,
141
+ 'type' => $type,
142
+ 'module' => $module,
143
+ 'statut' => $statut,
144
+ 'datetime' => $dateTime,
145
+ 'points' => $points,
146
+ 'value' => $value,
147
+ 'coupon_code' => $this->_couponCode
148
+ );
149
+ $echange->setData($row);
150
+ $echange->save();
151
+ $echangeId = $echange->getId();
152
+
153
+ //inscription dans les logs
154
+ $log = Mage::getModel('auguria_sponsorship/log');
155
+ $data = array(
156
+ 'customer_id' => $customerId,
157
+ 'record_id' => $echangeId,
158
+ 'record_type' => $type,
159
+ 'datetime' => $dateTime,
160
+ 'points' => -$points
161
+ );
162
+ $log->setData($data);
163
+ $log->save();
164
+ Mage::getSingleton('customer/session')->addSuccess(Mage::helper('auguria_sponsorship')->__('Your request has been submitted, you will soon receive an email confirmation.'));
165
+ if ($module=='sponsor') {
166
+ $module = 'sponsorship';
167
+ }
168
+ $this->_redirect('*/*/'.$module);
169
+ }
170
+
171
+ catch (Exception $e) {
172
+ Mage::log($e->getMessage());
173
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while saving your request."));
174
+ $this->_redirect('*/*/');
175
+ }
176
+ }
177
+ elseif ($resultValidate == 'inactif' )
178
+ {
179
+ $this->_redirect('*/*/');
180
+ }
181
+ elseif ($resultValidate == 'account' )
182
+ {
183
+ $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
184
+ }
185
+ elseif ($resultValidate == 'points' )
186
+ {
187
+ $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
188
+ }
189
+ elseif ($resultValidate == 'mail' )
190
+ {
191
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while sending mail."));
192
+ $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
193
+ }
194
+ }
195
+ }
196
+
197
+ protected function _validateChange($module, $type, $points='')
198
+ {
199
+ $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
200
+ $session = Mage::getSingleton('customer/session');
201
+
202
+ $Module = ucfirst($module);
203
+ $Type = ucfirst($type);
204
+
205
+ $changeEnabled = 'get'.$Module.$Type.'Config';
206
+ $moduleEnabled = 'get'.$Module.'EnabledConfig';
207
+
208
+ if (($options->$moduleEnabled()==1 && $options->$changeEnabled()==1))
209
+ {
210
+ $validate = '_validate'.$Type;
211
+ return $this->$validate($module,$points);
212
+ }
213
+ else
214
+ {
215
+ $session->addError(Mage::helper('auguria_sponsorship')->__('The exchange of %s points in %s is disabled.',$this->__($module),$this->__($type)));
216
+ return 'inactif';
217
+ }
218
+ }
219
+ protected function _validateCoupon ($module, $points='')
220
+ {
221
+ $validate = 'valide';
222
+ $customerId = Mage::getSingleton('customer/session')->getId();
223
+ $customer = Mage::getModel("customer/customer")->load($customerId);
224
+
225
+ //vérification que les points à changer sonts inférieurs aux points du client
226
+ if ($points != '')
227
+ {
228
+ $data = 'get'.ucfirst($module).'Points';
229
+ $cPoints = $customer->$data();
230
+ if ($points>$cPoints)
231
+ {
232
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
233
+ $validate = 'points';
234
+ }
235
+ else
236
+ {
237
+ //création de la règle panier---------------------------------------------------
238
+ $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
239
+ $srModel = Mage::getModel('salesrule/rule');
240
+ $date = Mage::getModel('core/date')->gmtDate();
241
+ $chars = array("-", ":", " ");
242
+ $simpledate = str_replace($chars, "", $date);
243
+ $couponCode = $customerId."-".$points.$simpledate;//idClient-date-module-somme
244
+ $name = $this->__("%s points exchange for customer (%s)", $this->__($module), $customerId);
245
+ $description = $name;
246
+ $customerGroupId = $customer->getGroupId();
247
+ $discountAmount = $this->_getValue ($points, "coupon", $module);
248
+ $websiteId = $customer->getWebsiteId();
249
+
250
+
251
+
252
+ $data = array (
253
+ "name" => $name,
254
+ "description" => $description,
255
+ "from_date" => $date,
256
+ "coupon_code" => $couponCode,
257
+ "coupon_type" => 2,
258
+ "uses_per_coupon" => 1,
259
+ //"uses_per_customer" => 1,
260
+ "customer_group_ids" => Array(0 => $customerGroupId),//get customer group
261
+ "is_active" => 1,
262
+ "conditions_serialized" => 'a:6:{s:4:"type";s:32:"salesrule/rule_condition_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
263
+ "actions_serialized" => 'a:6:{s:4:"type";s:40:"salesrule/rule_condition_product_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
264
+ "stop_rules_processing" => 0,
265
+ "is_advanced" => 1,
266
+ "sort_order" => 0,
267
+ "simple_action" => "cart_fixed",
268
+ "discount_amount" => $discountAmount,
269
+ "discount_qty" => 0,
270
+ "discount_step" => 0,
271
+ "simple_free_shipping" => 0,
272
+ "times_used" => 0,
273
+ "is_rss" => 1,
274
+ "website_ids" => Array(0 => $websiteId)//get website id
275
+ );
276
+ $srModel->setData($data);
277
+ $srModel->save();
278
+ $this->_couponCode = $srModel->getData('coupon_code');
279
+ //envoi du mail--------------------------------------------------------------
280
+ //construction du message
281
+ $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
282
+
283
+ $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
284
+ $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
285
+
286
+ $subject = $this->__('%s vouchers points exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
287
+
288
+ $sender = array("name"=>$sender_name, "email"=>$sender_email);
289
+ $recipient_email = $customer->getData('email');
290
+
291
+ $postObject = new Varien_Object();
292
+ $postObject->setData(Array ("sender_name" => $sender_name,
293
+ "sender_email" => $sender_email,
294
+ "recipient_firstname" => $customer->getFirstname(),
295
+ "recipient_lastname" => $customer->getLastname(),
296
+ "discount_amount" => $discountAmount,
297
+ "subject" => $subject,
298
+ "coupon_code" => $couponCode,
299
+ "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
300
+ ));
301
+
302
+ $mailTemplate->setDesignConfig(array('area' => 'frontend'))
303
+ ->setReplyTo($sender_email)
304
+ //->setReturnPath($sender_email)
305
+ ->sendTransactional(
306
+ Mage::getStoreConfig('auguria_sponsorship/coupon/template'),
307
+ $sender,
308
+ $recipient_email,
309
+ $customer->getFirstname().' '.$customer->getLastname(),
310
+ array('data' => $postObject)
311
+ );
312
+ if (!$mailTemplate->getSentSuccess())
313
+ {
314
+ $validate = "mail";
315
+ }
316
+
317
+ }
318
+ }
319
+ return $validate;
320
+ }
321
+
322
+ protected function _validateGift ($module, $points='')
323
+ {
324
+ return 'valide';
325
+ }
326
+
327
+ protected function _validateCash ($module, $points=0)
328
+ {
329
+ $validate = 'valide';
330
+ $customerId = Mage::getSingleton('customer/session')->getId();
331
+ //Validation qu'un Iban est renseigné
332
+ $customer = Mage::getModel("customer/customer")->load($customerId);
333
+
334
+ if ($points != 0)
335
+ {
336
+ $maxCash = "";
337
+ $enableSiretChecking = true;
338
+ $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
339
+
340
+ if (!$customer->getIban() || !$customer->getBic()) {
341
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change your points into cash, you must indicate your IBAN and BIC.'));
342
+ $validate = 'account';
343
+ }
344
+
345
+ //Validation qu'un Siret est renseigné si le max de cash pour un particulier est atteint
346
+ if ($module=='sponsor') {
347
+ $maxCash = $options->getSponsorMaxCashConfig ();
348
+ $enableSiretChecking = $options->getSponsorEnableSiretConfig ();
349
+ $timeMaxCash = $options->getSponsorTimeMaxCashConfig ();
350
+ }
351
+ elseif ($module=='fidelity') {
352
+ $maxCash = $options->getFidelityMaxCashConfig ();
353
+ $enableSiretChecking = $options->getFidelityEnableSiretConfig ();
354
+ $timeMaxCash = $options->getFidelityTimeMaxCashConfig ();
355
+ }
356
+ elseif ($module=='accumulated') {
357
+ $maxCash = $options->getAccumulatedMaxCashConfig ();
358
+ $enableSiretChecking = $options->getAccumulatedEnableSiretConfig ();
359
+ $timeMaxCash = $options->getAccumulatedTimeMaxCashConfig ();
360
+ }
361
+ $resource = Mage::getSingleton('core/resource');
362
+ $read = $resource->getConnection('core_read');
363
+ $datetime = Mage::getModel('core/date')->gmtDate();
364
+ $select = $read->select()
365
+ ->from($resource->getTableName('auguria_sponsorship/change'), 'SUM(points)')
366
+ ->where('customer_id=?', $customerId)
367
+ ->where('module=?', $module)
368
+ ->where('type=?', 'cash')
369
+ ->where('statut!=?', 'canceled')
370
+ ->where('TO_DAYS("'.$datetime.'") - TO_DAYS(datetime) <=?', $timeMaxCash);
371
+
372
+ $cashPoints = $read->fetchOne($select);
373
+
374
+ //Addition des points déjà changés avec les points demandés
375
+ $cashPoints = $points+$cashPoints;
376
+
377
+ //vérification que le total ne dépasse pas le maximum autorisé
378
+ if ($enableSiretChecking && ($cashPoints >= $maxCash)) {
379
+ if (!$customer->getSiret())
380
+ {
381
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change more cash, you must specify a company number.'));
382
+ $validate = 'account';
383
+ }
384
+ }else{
385
+
386
+ //vérification que les points à changer sonts inférieurs aux points du client
387
+ if ($points != '')
388
+ {
389
+ $data = 'get'.ucfirst($module).'Points';
390
+ $cPoints = $customer->$data();
391
+ if ($points>$cPoints)
392
+ {
393
+ Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
394
+ $validate = 'points';
395
+ }
396
+ else {
397
+
398
+ //envoi du mail--------------------------------------------------------------
399
+ //construction du message
400
+ $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
401
+
402
+ $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
403
+ $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
404
+ $subject = $this->__('%s cash exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
405
+
406
+ $sender = array("name"=>$sender_name, "email"=>$sender_email);
407
+ $recipient_email = $customer->getData('email');
408
+
409
+ $postObject = new Varien_Object();
410
+ $postObject->setData(Array ("sender_name" => $sender_name,
411
+ "sender_email" => $sender_email,
412
+ "recipient_firstname" => $customer->getFirstname(),
413
+ "recipient_lastname" => $customer->getLastname(),
414
+ "discount_amount" => $points,
415
+ "subject" => $subject,
416
+ "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
417
+ ));
418
+
419
+ $mailTemplate->setDesignConfig(array('area' => 'frontend'))
420
+ ->setReplyTo($sender_email)
421
+ ->sendTransactional(
422
+ Mage::getStoreConfig('auguria_sponsorship/cash/template'),
423
+ $sender,
424
+ $recipient_email,
425
+ $customer->getFirstname().' '.$customer->getLastname(),
426
+ array('data' => $postObject)
427
+ );
428
+ if (!$mailTemplate->getSentSuccess())
429
+ {
430
+ $validate = "mail";
431
+ }
432
+ /* envoi de l'email a l'administration */
433
+ $subject = $this->__('A customer wants to exchange %s Euros', $points);
434
+
435
+ $adminEmail = Mage::helper('auguria_sponsorship/config')->getAdministratorEmail();
436
+ if($adminEmail){
437
+ $administratorPostObject = new Varien_Object();
438
+ $administratorPostObject->setData(Array ("sender_name" => $sender_name,
439
+ "sender_email" => $sender_email,
440
+ "recipient_firstname" => $customer->getFirstname(),
441
+ "recipient_lastname" => $customer->getLastname(),
442
+ "discount_amount" => $points,
443
+ "subject" => $subject,
444
+ "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
445
+ ));
446
+
447
+ $mailTemplate->setDesignConfig(array('area' => 'frontend'))
448
+ ->setReplyTo($sender_email)
449
+ ->sendTransactional(
450
+ Mage::getStoreConfig('auguria_sponsorship/cash/template'),
451
+ $sender,
452
+ $adminEmail,
453
+ $customer->getFirstname().' '.$customer->getLastname(),
454
+ array('data' => $administratorPostObject)
455
+ );
456
+ }
457
+ }
458
+ }
459
+ }
460
+ }
461
+ return $validate;
462
+ }
463
+
464
+ protected function _getValue ($points, $type, $module)
465
+ {
466
+ //if ($type == 'cash')
467
+ //recuperation du taux de conversion
468
+ $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
469
+ $getPointsToCash = 'get'.ucfirst($module).'PointsToCashConfig';
470
+ $PointsToCash = $options->$getPointsToCash();
471
+ $value = round($points*$PointsToCash,2);
472
+ return $value;
473
+ }
474
  }
app/code/community/Auguria/Sponsorship/controllers/PointsController.php~ DELETED
@@ -1,471 +0,0 @@
1
- <?php
2
- /**
3
- * @category Auguria
4
- * @package Auguria_Sponsorship
5
- * @author Auguria
6
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
- */
8
- class Auguria_Sponsorship_PointsController extends Mage_Core_Controller_Front_Action
9
- {
10
-
11
- protected $_couponCode = NULL;
12
-
13
- public function preDispatch()
14
- {
15
- parent::preDispatch();
16
- if (!Mage::getSingleton('customer/session')->isLoggedIn()) {
17
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
18
- }
19
- }
20
-
21
-
22
- public function indexAction()
23
- {
24
- $mode = Mage::helper('auguria_sponsorship/config')->getModuleMode();
25
- if ($mode=='accumulated') {
26
- $this->_redirect('*/*/accumulated');
27
- }
28
- elseif ($mode=='separated') {
29
- $this->_redirect('*/*/sponsorship');
30
- }
31
- elseif ($mode=='sponsorship') {
32
- $this->_redirect('*/*/sponsorship');
33
- }
34
- elseif ($mode=='fidelity') {
35
- $this->_redirect('*/*/fidelity');
36
- }
37
- else {
38
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl());
39
- }
40
- }
41
-
42
- public function accumulatedAction()
43
- {
44
- $this->loadLayout();
45
- $this->getLayout()->getBlock('customer');
46
- $this->_initLayoutMessages('customer/session');
47
- $this->_initLayoutMessages('catalog/session');
48
- $this->renderLayout();
49
- }
50
-
51
- public function sponsorshipAction()
52
- {
53
- $this->loadLayout();
54
- $this->getLayout()->getBlock('customer');
55
- $this->_initLayoutMessages('customer/session');
56
- $this->_initLayoutMessages('catalog/session');
57
- $this->renderLayout();
58
- }
59
-
60
- public function fidelityAction()
61
- {
62
- $this->loadLayout();
63
- $this->getLayout()->getBlock('customer');
64
- $this->_initLayoutMessages('customer/session');
65
- $this->_initLayoutMessages('catalog/session');
66
- $this->renderLayout();
67
- }
68
-
69
- /**
70
- * @TODO changeAccumulated + changeFidelityAction + changeSponsorshipAction
71
- *
72
- */
73
-
74
- public function changeAction()
75
- {
76
- $module = $this->getRequest()->getParam('module');
77
- $type = $this->getRequest()->getParam('type');
78
-
79
- //Set used module in session on change action for recover in checkout
80
- Mage::getSingleton('customer/session')->setData('auguria_sponsorship_change_module', $module);
81
-
82
- $resultValidate = $this->_validateChange($module, $type);
83
- if ($resultValidate == 'valide' )
84
- {
85
- $this->loadLayout();
86
- $block = $this->getLayout()->getBlock('customer_pointschange_'.$type);
87
- $this->getLayout()->getBlock('content')->append($block);
88
- $this->_initLayoutMessages('customer/session');
89
- $this->_initLayoutMessages('catalog/session');
90
- $this->renderLayout();
91
- }
92
- elseif ($resultValidate == 'inactif' )
93
- {
94
- $this->_redirect('*/*/');
95
- }
96
- elseif ($resultValidate == 'account' )
97
- {
98
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
99
- }
100
- }
101
-
102
- public function saveAction()
103
- {
104
- if (!$this->_validateFormKey()) {
105
- return $this->_redirect('*/*');
106
- }
107
- else
108
- {
109
- $module = $this->getRequest()->getPost('module');
110
- $type = $this->getRequest()->getPost('type');
111
- $points = $this->getRequest()->getPost('points');
112
-
113
- $resultValidate = $this->_validateChange($module, $type, $points);
114
-
115
- $value = $this->_getValue($points, $type, $module);
116
-
117
- if ($resultValidate == 'valide' )
118
- {
119
- try
120
- {
121
- $customerId = Mage::getSingleton('customer/session')->getId();
122
- $customer = Mage::getModel("customer/customer")->load($customerId);
123
-
124
- //récupération des points clients
125
- $getdatapoints = 'get'.ucfirst($module).'Points';
126
- $cPoints = $customer->$getdatapoints();
127
- //décrémentation des points du client
128
- $setdatapoints = 'set'.ucfirst($module).'Points';
129
- $newPoints = $cPoints - $points;
130
- $customer->$setdatapoints($newPoints);
131
- $customer->save();
132
-
133
- $dateTime = Mage::getModel('core/date')->gmtDate();
134
- $statut = "waiting";
135
-
136
- //inscription de l'opération dans la table des echanges
137
- $echange = Mage::getModel('auguria_sponsorship/change');
138
-
139
- $row = array(
140
- 'customer_id' => $customerId,
141
- 'type' => $type,
142
- 'module' => $module,
143
- 'statut' => $statut,
144
- 'datetime' => $dateTime,
145
- 'points' => $points,
146
- 'value' => $value,
147
- 'coupon_code' => $this->_couponCode
148
- );
149
- $echange->setData($row);
150
- $echange->save();
151
- $echangeId = $echange->getId();
152
-
153
- //inscription dans les logs
154
- $log = Mage::getModel('auguria_sponsorship/log');
155
- $data = array(
156
- 'customer_id' => $customerId,
157
- 'record_id' => $echangeId,
158
- 'record_type' => $type,
159
- 'datetime' => $dateTime,
160
- 'points' => -$points
161
- );
162
- $log->setData($data);
163
- $log->save();
164
- Mage::getSingleton('customer/session')->addSuccess(Mage::helper('auguria_sponsorship')->__('Your request has been submitted, you will soon receive an email confirmation.'));
165
- if ($module=='sponsor') {
166
- $module = 'sponsorship';
167
- }
168
- $this->_redirect('*/*/'.$module);
169
- }
170
-
171
- catch (Exception $e) {
172
- Mage::log($e->getMessage());
173
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while saving your request."));
174
- $this->_redirect('*/*/');
175
- }
176
- }
177
- elseif ($resultValidate == 'inactif' )
178
- {
179
- $this->_redirect('*/*/');
180
- }
181
- elseif ($resultValidate == 'account' )
182
- {
183
- $this->_redirectUrl(Mage::helper('customer')->getAccountUrl().'edit');
184
- }
185
- elseif ($resultValidate == 'points' )
186
- {
187
- $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
188
- }
189
- elseif ($resultValidate == 'mail' )
190
- {
191
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("An error occurred while sending mail."));
192
- $this->_redirect('*/*/change', Array('module'=>$module, 'type'=>$type));
193
- }
194
- }
195
- }
196
-
197
- protected function _validateChange($module, $type, $points='')
198
- {
199
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
200
- $session = Mage::getSingleton('customer/session');
201
-
202
- $Module = ucfirst($module);
203
- $Type = ucfirst($type);
204
-
205
- $changeEnabled = 'get'.$Module.$Type.'Config';
206
- $moduleEnabled = 'get'.$Module.'EnabledConfig';
207
-
208
- if (($options->$moduleEnabled()==1 && $options->$changeEnabled()==1))
209
- {
210
- $validate = '_validate'.$Type;
211
- return $this->$validate($module,$points);
212
- }
213
- else
214
- {
215
- $session->addError(Mage::helper('auguria_sponsorship')->__('The exchange of %s points in %s is disabled.',$this->__($module),$this->__($type)));
216
- return 'inactif';
217
- }
218
- }
219
- protected function _validateCoupon ($module, $points='')
220
- {
221
- $validate = 'valide';
222
- $customerId = Mage::getSingleton('customer/session')->getId();
223
- $customer = Mage::getModel("customer/customer")->load($customerId);
224
-
225
- //vérification que les points à changer sonts inférieurs aux points du client
226
- if ($points != '')
227
- {
228
- $data = 'get'.ucfirst($module).'Points';
229
- $cPoints = $customer->$data();
230
- if ($points>$cPoints)
231
- {
232
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
233
- $validate = 'points';
234
- }
235
- else
236
- {
237
- //création de la règle panier---------------------------------------------------
238
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
239
- $srModel = Mage::getModel('salesrule/rule');
240
- $date = Mage::getModel('core/date')->gmtDate();
241
- $chars = array("-", ":", " ");
242
- $simpledate = str_replace($chars, "", $date);
243
- $couponCode = $customerId."-".$points.$simpledate;//idClient-date-module-somme
244
- $name = $this->__("%s points exchange for customer (%s)", $this->__($module), $customerId);
245
- $description = $name;
246
- $customerGroupId = $customer->getGroupId();
247
- $discountAmount = $this->_getValue ($points, "coupon", $module);
248
- $websiteId = $customer->getWebsiteId();
249
- $data = array
250
- (
251
- "name" => $name,
252
- "description" => $description,
253
- "from_date" => $date,
254
- "coupon_code" => $couponCode,
255
- "coupon_type" => 2,
256
- "uses_per_coupon" => 1,
257
- //"uses_per_customer" => 1,
258
- "customer_group_ids" => Array(0 => $customerGroupId),//get customer group
259
- "is_active" => 1,
260
- "conditions_serialized" => 'a:6:{s:4:"type";s:32:"salesrule/rule_condition_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
261
- "actions_serialized" => 'a:6:{s:4:"type";s:40:"salesrule/rule_condition_product_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}',
262
- "stop_rules_processing" => 0,
263
- "is_advanced" => 1,
264
- "sort_order" => 0,
265
- "simple_action" => "cart_fixed",
266
- "discount_amount" => $discountAmount,
267
- "discount_qty" => 1.0000,
268
- "discount_step" => 0,
269
- "simple_free_shipping" => 0,
270
- "times_used" => 0,
271
- "is_rss" => 1,
272
- "website_ids" => Array(0 => $websiteId)//get website id
273
- );
274
- $srModel->setData($data);
275
- $srModel->save();
276
- $this->_couponCode = $srModel->getData('coupon_code');
277
- //envoi du mail--------------------------------------------------------------
278
- //construction du message
279
- $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
280
-
281
- $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
282
- $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
283
-
284
- $subject = $this->__('%s vouchers points exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
285
-
286
- $sender = array("name"=>$sender_name, "email"=>$sender_email);
287
- $recipient_email = $customer->getData('email');
288
-
289
- $postObject = new Varien_Object();
290
- $postObject->setData(Array ("sender_name" => $sender_name,
291
- "sender_email" => $sender_email,
292
- "recipient_firstname" => $customer->getFirstname(),
293
- "recipient_lastname" => $customer->getLastname(),
294
- "discount_amount" => $discountAmount,
295
- "subject" => $subject,
296
- "coupon_code" => $couponCode,
297
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
298
- ));
299
-
300
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
301
- ->setReplyTo($sender_email)
302
- //->setReturnPath($sender_email)
303
- ->sendTransactional(
304
- Mage::getStoreConfig('auguria_sponsorship/coupon/template'),
305
- $sender,
306
- $recipient_email,
307
- $customer->getFirstname().' '.$customer->getLastname(),
308
- array('data' => $postObject)
309
- );
310
- if (!$mailTemplate->getSentSuccess())
311
- {
312
- $validate = "mail";
313
- }
314
-
315
- }
316
- }
317
- return $validate;
318
- }
319
-
320
- protected function _validateGift ($module, $points='')
321
- {
322
- return 'valide';
323
- }
324
-
325
- protected function _validateCash ($module, $points=0)
326
- {
327
- $validate = 'valide';
328
- $customerId = Mage::getSingleton('customer/session')->getId();
329
- //Validation qu'un Iban est renseigné
330
- $customer = Mage::getModel("customer/customer")->load($customerId);
331
-
332
- if ($points != 0)
333
- {
334
- $maxCash = "";
335
- $enableSiretChecking = true;
336
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
337
-
338
- if (!$customer->getIban() || !$customer->getBic()) {
339
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change your points into cash, you must indicate your IBAN and BIC.'));
340
- $validate = 'account';
341
- }
342
-
343
- //Validation qu'un Siret est renseigné si le max de cash pour un particulier est atteint
344
- if ($module=='sponsor') {
345
- $maxCash = $options->getSponsorMaxCashConfig ();
346
- $enableSiretChecking = $options->getSponsorEnableSiretConfig ();
347
- $timeMaxCash = $options->getSponsorTimeMaxCashConfig ();
348
- }
349
- elseif ($module=='fidelity') {
350
- $maxCash = $options->getFidelityMaxCashConfig ();
351
- $enableSiretChecking = $options->getFidelityEnableSiretConfig ();
352
- $timeMaxCash = $options->getFidelityTimeMaxCashConfig ();
353
- }
354
- elseif ($module=='accumulated') {
355
- $maxCash = $options->getAccumulatedMaxCashConfig ();
356
- $enableSiretChecking = $options->getAccumulatedEnableSiretConfig ();
357
- $timeMaxCash = $options->getAccumulatedTimeMaxCashConfig ();
358
- }
359
- $resource = Mage::getSingleton('core/resource');
360
- $read = $resource->getConnection('core_read');
361
- $datetime = Mage::getModel('core/date')->gmtDate();
362
- $select = $read->select()
363
- ->from($resource->getTableName('auguria_sponsorship/change'), 'SUM(points)')
364
- ->where('customer_id=?', $customerId)
365
- ->where('module=?', $module)
366
- ->where('type=?', 'cash')
367
- ->where('statut!=?', 'canceled')
368
- ->where('TO_DAYS("'.$datetime.'") - TO_DAYS(datetime) <=?', $timeMaxCash);
369
-
370
- $cashPoints = $read->fetchOne($select);
371
-
372
- //Addition des points déjà changés avec les points demandés
373
- $cashPoints = $points+$cashPoints;
374
-
375
- //vérification que le total ne dépasse pas le maximum autorisé
376
- if ($enableSiretChecking && ($cashPoints >= $maxCash)) {
377
- if (!$customer->getSiret())
378
- {
379
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__('To change more cash, you must specify a company number.'));
380
- $validate = 'account';
381
- }
382
- }else{
383
-
384
- //vérification que les points à changer sonts inférieurs aux points du client
385
- if ($points != '')
386
- {
387
- $data = 'get'.ucfirst($module).'Points';
388
- $cPoints = $customer->$data();
389
- if ($points>$cPoints)
390
- {
391
- Mage::getSingleton('customer/session')->addError(Mage::helper('auguria_sponsorship')->__("You do not have as many points."));
392
- $validate = 'points';
393
- }
394
- } else {
395
-
396
- //envoi du mail--------------------------------------------------------------
397
- //construction du message
398
- $mailTemplate = Mage::getModel('auguria_sponsorship/Core_Email_Template');
399
-
400
- $sender_name = Mage::getStoreConfig('trans_email/ident_sales/name');
401
- $sender_email = Mage::getStoreConfig('trans_email/ident_sales/email');
402
- $subject = $this->__('%s cash exchange', Mage::helper('auguria_sponsorship/mail')->getStoreName());
403
-
404
- $sender = array("name"=>$sender_name, "email"=>$sender_email);
405
- $recipient_email = $customer->getData('email');
406
-
407
- $postObject = new Varien_Object();
408
- $postObject->setData(Array ("sender_name" => $sender_name,
409
- "sender_email" => $sender_email,
410
- "recipient_firstname" => $customer->getFirstname(),
411
- "recipient_lastname" => $customer->getLastname(),
412
- "discount_amount" => $points,
413
- "subject" => $subject,
414
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
415
- ));
416
-
417
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
418
- ->setReplyTo($sender_email)
419
- ->sendTransactional(
420
- Mage::getStoreConfig('auguria_sponsorship/cash/template'),
421
- $sender,
422
- $recipient_email,
423
- $customer->getFirstname().' '.$customer->getLastname(),
424
- array('data' => $postObject)
425
- );
426
- if (!$mailTemplate->getSentSuccess())
427
- {
428
- $validate = "mail";
429
- }
430
- /* envoi de l'email a l'administration */
431
- $subject = $this->__('A customer wants to exchange %s Euros', $points);
432
-
433
- $adminEmail = Mage::helper('auguria_sponsorship/config')->getAdministratorEmail();
434
- if($adminEmail){
435
- $administratorPostObject = new Varien_Object();
436
- $administratorPostObject->setData(Array ("sender_name" => $sender_name,
437
- "sender_email" => $sender_email,
438
- "recipient_firstname" => $customer->getFirstname(),
439
- "recipient_lastname" => $customer->getLastname(),
440
- "discount_amount" => $points,
441
- "subject" => $subject,
442
- "store_name" => Mage::helper('auguria_sponsorship/mail')->getStoreName()
443
- ));
444
-
445
- $mailTemplate->setDesignConfig(array('area' => 'frontend'))
446
- ->setReplyTo($sender_email)
447
- ->sendTransactional(
448
- Mage::getStoreConfig('auguria_sponsorship/cash/template'),
449
- $sender,
450
- $adminEmail,
451
- $customer->getFirstname().' '.$customer->getLastname(),
452
- array('data' => $administratorPostObject)
453
- );
454
- }
455
- }
456
- }
457
- }
458
- return $validate;
459
- }
460
-
461
- protected function _getValue ($points, $type, $module)
462
- {
463
- //if ($type == 'cash')
464
- //recuperation du taux de conversion
465
- $options = Mage::getBlockSingleton('auguria_sponsorship/customer_account_pointsDetail');
466
- $getPointsToCash = 'get'.ucfirst($module).'PointsToCashConfig';
467
- $PointsToCash = $options->$getPointsToCash();
468
- $value = round($points*$PointsToCash,2);
469
- return $value;
470
- }
471
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/Auguria/Sponsorship/etc/config.xml CHANGED
@@ -10,7 +10,7 @@
10
  <config>
11
  <modules>
12
  <Auguria_Sponsorship>
13
- <version>1.3.42</version>
14
  </Auguria_Sponsorship>
15
  </modules>
16
  <frontend>
10
  <config>
11
  <modules>
12
  <Auguria_Sponsorship>
13
+ <version>1.4.0</version>
14
  </Auguria_Sponsorship>
15
  </modules>
16
  <frontend>
app/code/community/Auguria/Sponsorship/etc/system.xml CHANGED
@@ -25,7 +25,7 @@
25
  <show_in_website>1</show_in_website>
26
  <show_in_store>1</show_in_store>
27
  <fields>
28
- <module_mode translate="label">
29
  <label>Mode of the module</label>
30
  <frontend_type>select</frontend_type>
31
  <source_model>auguria_sponsorship/adminhtml_system_config_source_mode</source_model>
@@ -34,7 +34,7 @@
34
  <show_in_default>1</show_in_default>
35
  <show_in_website>1</show_in_website>
36
  <show_in_store>1</show_in_store>
37
- </module_mode>
38
  </fields>
39
  </general>
40
  <accumulated translate="label">
@@ -56,54 +56,54 @@
56
  <show_in_website>1</show_in_website>
57
  <show_in_store>1</show_in_store>
58
  </heading_calculation>
59
- <points_validity>
60
- <label>Points validity in days(0 for unlimited)</label>
61
  <frontend_type>text</frontend_type>
62
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
63
  <sort_order>10</sort_order>
64
  <show_in_default>1</show_in_default>
65
  <show_in_website>1</show_in_website>
66
  <show_in_store>1</show_in_store>
67
- </points_validity>
68
- <cancel_earned_points>
69
- <label>Cancel earned points on credit memo creation</label>
70
  <frontend_type>select</frontend_type>
71
  <source_model>adminhtml/system_config_source_yesno</source_model>
72
  <sort_order>20</sort_order>
73
  <show_in_default>1</show_in_default>
74
  <show_in_website>1</show_in_website>
75
  <show_in_store>1</show_in_store>
76
- </cancel_earned_points>
77
- <points_to_cash>
78
- <label>Conversion rate of points in currency</label>
79
- <frontend_type>text</frontend_type>
80
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
81
- <sort_order>30</sort_order>
82
- <show_in_default>1</show_in_default>
83
- <show_in_website>1</show_in_website>
84
- <show_in_store>1</show_in_store>
85
- </points_to_cash>
86
- <newsletter_points>
87
- <label>Amount of winning points when subscribe to newsletter on account creation</label>
88
- <frontend_type>text</frontend_type>
89
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
90
- <sort_order>40</sort_order>
91
- <show_in_default>1</show_in_default>
92
- <show_in_website>1</show_in_website>
93
- <show_in_store>1</show_in_store>
94
- </newsletter_points>
95
- <first_order_points>
96
- <label>Amount of winning points for first order</label>
97
- <frontend_type>text</frontend_type>
98
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
99
- <sort_order>50</sort_order>
100
- <show_in_default>1</show_in_default>
101
- <show_in_website>1</show_in_website>
102
- <show_in_store>1</show_in_store>
103
- </first_order_points>
104
-
105
-
106
-
107
  <heading_cash translate="label">
108
  <label>Cash exchange</label>
109
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -111,16 +111,16 @@
111
  <show_in_default>1</show_in_default>
112
  <show_in_website>1</show_in_website>
113
  </heading_cash>
114
- <cash>
115
- <label>Cash exchange enabled</label>
116
- <frontend_type>select</frontend_type>
117
- <source_model>adminhtml/system_config_source_yesno</source_model>
118
- <sort_order>70</sort_order>
119
- <show_in_default>1</show_in_default>
120
- <show_in_website>1</show_in_website>
121
- <show_in_store>1</show_in_store>
122
- </cash>
123
- <enable_check_company_number>
124
  <label>Enable checking company number</label>
125
  <frontend_type>select</frontend_type>
126
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -130,27 +130,27 @@
130
  <show_in_website>1</show_in_website>
131
  <show_in_store>1</show_in_store>
132
  </enable_check_company_number>
133
- <max_cash>
134
- <label>Maximum amount permitted without company number</label>
135
- <frontend_type>text</frontend_type>
136
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
137
- <sort_order>90</sort_order>
138
- <show_in_default>1</show_in_default>
139
- <show_in_website>1</show_in_website>
140
- <show_in_store>1</show_in_store>
141
- </max_cash>
142
- <time_max_cash>
143
- <label>Calculation period of the maximum allowed for an individual (days)</label>
144
- <frontend_type>text</frontend_type>
145
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
146
- <sort_order>100</sort_order>
147
- <show_in_default>1</show_in_default>
148
- <show_in_website>1</show_in_website>
149
- <show_in_store>1</show_in_store>
150
- </time_max_cash>
151
-
152
-
153
-
154
  <heading_coupon translate="label">
155
  <label>Coupon exchange</label>
156
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -158,18 +158,18 @@
158
  <show_in_default>1</show_in_default>
159
  <show_in_website>1</show_in_website>
160
  </heading_coupon>
161
- <coupon>
162
- <label>Voucher exchange enabled</label>
163
- <frontend_type>select</frontend_type>
164
- <source_model>adminhtml/system_config_source_yesno</source_model>
165
- <sort_order>120</sort_order>
166
- <show_in_default>1</show_in_default>
167
- <show_in_website>1</show_in_website>
168
- <show_in_store>1</show_in_store>
169
- </coupon>
170
-
171
-
172
-
173
  <heading_cart translate="label">
174
  <label>Cart exchange</label>
175
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -178,27 +178,37 @@
178
  <show_in_website>1</show_in_website>
179
  <show_in_store>1</show_in_store>
180
  </heading_cart>
181
- <cart>
182
- <label>Automatic discount in cart</label>
183
  <frontend_type>select</frontend_type>
184
  <source_model>adminhtml/system_config_source_yesno</source_model>
185
  <sort_order>140</sort_order>
186
  <show_in_default>1</show_in_default>
187
  <show_in_website>1</show_in_website>
188
  <show_in_store>1</show_in_store>
189
- </cart>
190
- <cancel_cart_points>
191
- <label>Cancel the use of points on credit memo creation</label>
 
 
 
 
 
 
 
 
 
 
192
  <frontend_type>select</frontend_type>
193
  <source_model>adminhtml/system_config_source_yesno</source_model>
194
  <sort_order>150</sort_order>
195
  <show_in_default>1</show_in_default>
196
  <show_in_website>1</show_in_website>
197
  <show_in_store>1</show_in_store>
198
- </cancel_cart_points>
199
-
200
-
201
-
202
  <heading_gift translate="label">
203
  <label>Gift exchange</label>
204
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -207,18 +217,18 @@
207
  <show_in_website>1</show_in_website>
208
  <show_in_store>1</show_in_store>
209
  </heading_gift>
210
- <gift>
211
- <label>Gift exchange enabled</label>
212
- <frontend_type>select</frontend_type>
213
- <source_model>adminhtml/system_config_source_yesno</source_model>
214
- <sort_order>170</sort_order>
215
- <show_in_default>1</show_in_default>
216
- <show_in_website>1</show_in_website>
217
- <show_in_store>1</show_in_store>
218
- </gift>
219
-
220
-
221
-
222
  <heading_sponsorship translate="label">
223
  <label>Sponsorship</label>
224
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
@@ -227,62 +237,62 @@
227
  <show_in_website>1</show_in_website>
228
  <show_in_store>1</show_in_store>
229
  </heading_sponsorship>
230
- <optional_order>
231
- <label>Allow customers who have never ordered to send sponsorship invitations</label>
232
- <frontend_type>select</frontend_type>
233
- <source_model>adminhtml/system_config_source_yesno</source_model>
234
- <sort_order>190</sort_order>
235
- <show_in_default>1</show_in_default>
236
- <show_in_website>1</show_in_website>
237
- <show_in_store>1</show_in_store>
238
- </optional_order>
239
- <allow_invit_registred_users>
240
- <label>Allow to sponsor registred customers (but never ordered)</label>
241
- <frontend_type>select</frontend_type>
242
- <source_model>adminhtml/system_config_source_yesno</source_model>
243
- <sort_order>200</sort_order>
244
- <show_in_default>1</show_in_default>
245
- <show_in_website>1</show_in_website>
246
- <show_in_store>1</show_in_store>
247
- </allow_invit_registred_users>
248
- <sponsor_link_validity>
249
- <label>Inactivity time before removal of the sponsorship link (days)</label>
250
- <frontend_type>text</frontend_type>
251
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
252
- <comment>Needs to active cron jobs.</comment>
253
- <sort_order>210</sort_order>
254
- <show_in_default>1</show_in_default>
255
- <show_in_website>1</show_in_website>
256
- <show_in_store>1</show_in_store>
257
- </sponsor_link_validity>
258
- <sponsor_levels>
259
- <label>Maximum levels of sponsorship</label>
260
- <frontend_type>text</frontend_type>
261
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
262
- <sort_order>220</sort_order>
263
- <show_in_default>1</show_in_default>
264
- <show_in_website>1</show_in_website>
265
- <show_in_store>1</show_in_store>
266
- </sponsor_levels>
267
- <sponsor_percent>
268
- <label>Ratio applied from level 2 to calculate the points of the sponsor (in percentage)</label>
269
- <frontend_type>text</frontend_type>
270
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
271
- <sort_order>230</sort_order>
272
- <show_in_default>1</show_in_default>
273
- <show_in_website>1</show_in_website>
274
- <show_in_store>1</show_in_store>
275
- </sponsor_percent>
276
- <godson_first_order_points>
277
- <label>Amount of winning points for the first godson order</label>
278
- <frontend_type>text</frontend_type>
279
- <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
280
- <sort_order>240</sort_order>
281
- <show_in_default>1</show_in_default>
282
- <show_in_website>1</show_in_website>
283
- <show_in_store>1</show_in_store>
284
- </godson_first_order_points>
285
- <notification_enabled>
286
  <label>Send notification to sponsor when godchild make him earn points</label>
287
  <frontend_type>select</frontend_type>
288
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -301,7 +311,7 @@
301
  <show_in_store>1</show_in_store>
302
  </notification>
303
  </fields>
304
- </accumulated>
305
  <sponsor translate="label">
306
  <label>Sponsorship and separated mode options</label>
307
  <frontend_type>text</frontend_type>
@@ -321,25 +331,25 @@
321
  <show_in_website>1</show_in_website>
322
  <show_in_store>1</show_in_store>
323
  </heading_calculation>
324
- <points_validity>
325
- <label>Points validity in days(0 for unlimited)</label>
326
  <frontend_type>text</frontend_type>
327
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
328
  <sort_order>10</sort_order>
329
  <show_in_default>1</show_in_default>
330
  <show_in_website>1</show_in_website>
331
  <show_in_store>1</show_in_store>
332
- </points_validity>
333
- <cancel_earned_points>
334
- <label>Cancel earned points on credit memo creation</label>
335
  <frontend_type>select</frontend_type>
336
  <source_model>adminhtml/system_config_source_yesno</source_model>
337
  <sort_order>20</sort_order>
338
  <show_in_default>1</show_in_default>
339
  <show_in_website>1</show_in_website>
340
  <show_in_store>1</show_in_store>
341
- </cancel_earned_points>
342
- <sponsor_points_to_cash translate="label">
343
  <label>Conversion rate of points in currency</label>
344
  <frontend_type>text</frontend_type>
345
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
@@ -348,10 +358,10 @@
348
  <show_in_website>1</show_in_website>
349
  <show_in_store>1</show_in_store>
350
  </sponsor_points_to_cash>
351
-
352
-
353
-
354
- <heading_cash translate="label">
355
  <label>Cash exchange</label>
356
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
357
  <sort_order>40</sort_order>
@@ -406,15 +416,15 @@
406
  <show_in_default>1</show_in_default>
407
  <show_in_website>1</show_in_website>
408
  </heading_coupon>
409
- <sponsor_coupon translate="label">
410
  <label>Voucher exchange enabled</label>
411
  <frontend_type>select</frontend_type>
412
  <source_model>adminhtml/system_config_source_yesno</source_model>
413
  <sort_order>100</sort_order>
414
  <show_in_default>1</show_in_default>
415
  <show_in_website>1</show_in_website>
416
- <show_in_store>1</show_in_store>
417
- </sponsor_coupon>
418
 
419
 
420
 
@@ -427,7 +437,7 @@
427
  <show_in_store>1</show_in_store>
428
  </heading_cart>
429
  <sponsor_cart>
430
- <label>Automatic discount in cart</label>
431
  <frontend_type>select</frontend_type>
432
  <source_model>adminhtml/system_config_source_yesno</source_model>
433
  <sort_order>120</sort_order>
@@ -435,6 +445,16 @@
435
  <show_in_website>1</show_in_website>
436
  <show_in_store>1</show_in_store>
437
  </sponsor_cart>
 
 
 
 
 
 
 
 
 
 
438
  <cancel_cart_points>
439
  <label>Cancel the use of points on credit memo creation</label>
440
  <frontend_type>select</frontend_type>
@@ -463,7 +483,7 @@
463
  <show_in_default>1</show_in_default>
464
  <show_in_website>1</show_in_website>
465
  <show_in_store>1</show_in_store>
466
- </sponsor_gift>
467
 
468
 
469
 
@@ -474,7 +494,7 @@
474
  <show_in_default>1</show_in_default>
475
  <show_in_website>1</show_in_website>
476
  <show_in_store>1</show_in_store>
477
- </heading_sponsorship>
478
  <sponsor_optional_order translate="label">
479
  <label>Allow customers who have never ordered to send invitations</label>
480
  <frontend_type>select</frontend_type>
@@ -546,7 +566,7 @@
546
  <show_in_default>1</show_in_default>
547
  <show_in_website>1</show_in_website>
548
  <show_in_store>1</show_in_store>
549
- </notification>
550
  </fields>
551
  </sponsor>
552
  <fidelity translate="label">
@@ -568,25 +588,25 @@
568
  <show_in_website>1</show_in_website>
569
  <show_in_store>1</show_in_store>
570
  </heading_calculation>
571
- <points_validity>
572
- <label>Points validity in days(0 for unlimited)</label>
573
  <frontend_type>text</frontend_type>
574
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
575
  <sort_order>10</sort_order>
576
  <show_in_default>1</show_in_default>
577
  <show_in_website>1</show_in_website>
578
  <show_in_store>1</show_in_store>
579
- </points_validity>
580
- <cancel_earned_points>
581
- <label>Cancel earned points on credit memo creation</label>
582
  <frontend_type>select</frontend_type>
583
  <source_model>adminhtml/system_config_source_yesno</source_model>
584
  <sort_order>20</sort_order>
585
  <show_in_default>1</show_in_default>
586
  <show_in_website>1</show_in_website>
587
  <show_in_store>1</show_in_store>
588
- </cancel_earned_points>
589
- <fidelity_points_to_cash>
590
  <label>Conversion rate of points in currency</label>
591
  <frontend_type>text</frontend_type>
592
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
@@ -595,7 +615,7 @@
595
  <show_in_website>1</show_in_website>
596
  <show_in_store>1</show_in_store>
597
  </fidelity_points_to_cash>
598
- <newsletter_points>
599
  <label>Amount of winning points when subscribe to newsletter on account creation</label>
600
  <frontend_type>text</frontend_type>
601
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
@@ -613,10 +633,10 @@
613
  <show_in_website>1</show_in_website>
614
  <show_in_store>1</show_in_store>
615
  </first_order_points>
616
-
617
-
618
-
619
- <heading_cash translate="label">
620
  <label>Cash exchange</label>
621
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
622
  <sort_order>60</sort_order>
@@ -690,28 +710,38 @@
690
  <show_in_website>1</show_in_website>
691
  <show_in_store>1</show_in_store>
692
  </heading_cart>
693
- <fidelity_cart>
694
- <label>Automatic discount in cart</label>
695
  <frontend_type>select</frontend_type>
696
  <source_model>adminhtml/system_config_source_yesno</source_model>
697
  <sort_order>140</sort_order>
698
  <show_in_default>1</show_in_default>
699
  <show_in_website>1</show_in_website>
700
  <show_in_store>1</show_in_store>
701
- </fidelity_cart>
702
- <cancel_cart_points>
703
- <label>Cancel the use of points on credit memo creation</label>
 
 
 
 
 
 
 
 
 
 
704
  <frontend_type>select</frontend_type>
705
  <source_model>adminhtml/system_config_source_yesno</source_model>
706
  <sort_order>150</sort_order>
707
  <show_in_default>1</show_in_default>
708
  <show_in_website>1</show_in_website>
709
  <show_in_store>1</show_in_store>
710
- </cancel_cart_points>
711
-
712
 
713
 
714
- <heading_gift translate="label">
715
  <label>Gift exchange</label>
716
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
717
  <sort_order>160</sort_order>
@@ -766,8 +796,8 @@
766
  <show_in_store>1</show_in_store>
767
  </max_recipients>
768
  <template translate="label">
769
- <label>Invitation Email Template</label>
770
- <frontend_type>select</frontend_type>
771
  <source_model>adminhtml/system_config_source_email_template</source_model>
772
  <sort_order>30</sort_order>
773
  <show_in_default>1</show_in_default>
@@ -785,8 +815,8 @@
785
  <show_in_store>1</show_in_store>
786
  <fields>
787
  <template translate="label">
788
- <label>Coupon Email Template</label>
789
- <frontend_type>select</frontend_type>
790
  <source_model>adminhtml/system_config_source_email_template</source_model>
791
  <sort_order>0</sort_order>
792
  <show_in_default>1</show_in_default>
@@ -823,15 +853,15 @@
823
  </administrator_email>
824
  </fields>
825
  </cash>
826
- <open_inviter translate="label comment">
827
  <label>Open Inviter options</label>
828
  <sort_order>7</sort_order>
829
  <show_in_default>1</show_in_default>
830
  <show_in_website>1</show_in_website>
831
  <show_in_store>1</show_in_store>
832
  <fields>
833
- <open_inviter_enabled>
834
- <comment><![CDATA[Allows customers to import addressbook/contacts from different email providers like Yahoo, Gmail, Hotmail, Live etc. using different CMS software like Drupal, Joomla etc. or forum software like PHPBB, SMF etc. Learn more on <a href='http://openinviter.com'>openinviter.com</a>]]></comment>
835
  <label>Activated</label>
836
  <frontend_type>select</frontend_type>
837
  <source_model>adminhtml/system_config_source_yesno</source_model>
@@ -839,8 +869,8 @@
839
  <show_in_default>1</show_in_default>
840
  <show_in_website>1</show_in_website>
841
  <show_in_store>1</show_in_store>
842
- </open_inviter_enabled>
843
- <username>
844
  <label>Username</label>
845
  <frontend_type>text</frontend_type>
846
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_openinviter</backend_model>
@@ -848,17 +878,17 @@
848
  <show_in_default>1</show_in_default>
849
  <show_in_website>1</show_in_website>
850
  <show_in_store>1</show_in_store>
851
- </username>
852
- <private_key>
853
  <label>Private Key</label>
854
  <frontend_type>text</frontend_type>
855
  <sort_order>20</sort_order>
856
  <show_in_default>1</show_in_default>
857
  <show_in_website>1</show_in_website>
858
  <show_in_store>1</show_in_store>
859
- </private_key>
860
- </fields>
861
- </open_inviter>
862
  </groups>
863
  </auguria_sponsorship>
864
  </sections>
25
  <show_in_website>1</show_in_website>
26
  <show_in_store>1</show_in_store>
27
  <fields>
28
+ <module_mode translate="label">
29
  <label>Mode of the module</label>
30
  <frontend_type>select</frontend_type>
31
  <source_model>auguria_sponsorship/adminhtml_system_config_source_mode</source_model>
34
  <show_in_default>1</show_in_default>
35
  <show_in_website>1</show_in_website>
36
  <show_in_store>1</show_in_store>
37
+ </module_mode>
38
  </fields>
39
  </general>
40
  <accumulated translate="label">
56
  <show_in_website>1</show_in_website>
57
  <show_in_store>1</show_in_store>
58
  </heading_calculation>
59
+ <points_validity>
60
+ <label>Points validity in days(0 for unlimited)</label>
61
  <frontend_type>text</frontend_type>
62
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
63
  <sort_order>10</sort_order>
64
  <show_in_default>1</show_in_default>
65
  <show_in_website>1</show_in_website>
66
  <show_in_store>1</show_in_store>
67
+ </points_validity>
68
+ <cancel_earned_points>
69
+ <label>Cancel earned points on credit memo creation</label>
70
  <frontend_type>select</frontend_type>
71
  <source_model>adminhtml/system_config_source_yesno</source_model>
72
  <sort_order>20</sort_order>
73
  <show_in_default>1</show_in_default>
74
  <show_in_website>1</show_in_website>
75
  <show_in_store>1</show_in_store>
76
+ </cancel_earned_points>
77
+ <points_to_cash>
78
+ <label>Conversion rate of points in currency</label>
79
+ <frontend_type>text</frontend_type>
80
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
81
+ <sort_order>30</sort_order>
82
+ <show_in_default>1</show_in_default>
83
+ <show_in_website>1</show_in_website>
84
+ <show_in_store>1</show_in_store>
85
+ </points_to_cash>
86
+ <newsletter_points>
87
+ <label>Amount of winning points when subscribe to newsletter on account creation</label>
88
+ <frontend_type>text</frontend_type>
89
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
90
+ <sort_order>40</sort_order>
91
+ <show_in_default>1</show_in_default>
92
+ <show_in_website>1</show_in_website>
93
+ <show_in_store>1</show_in_store>
94
+ </newsletter_points>
95
+ <first_order_points>
96
+ <label>Amount of winning points for first order</label>
97
+ <frontend_type>text</frontend_type>
98
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
99
+ <sort_order>50</sort_order>
100
+ <show_in_default>1</show_in_default>
101
+ <show_in_website>1</show_in_website>
102
+ <show_in_store>1</show_in_store>
103
+ </first_order_points>
104
+
105
+
106
+
107
  <heading_cash translate="label">
108
  <label>Cash exchange</label>
109
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
111
  <show_in_default>1</show_in_default>
112
  <show_in_website>1</show_in_website>
113
  </heading_cash>
114
+ <cash>
115
+ <label>Cash exchange enabled</label>
116
+ <frontend_type>select</frontend_type>
117
+ <source_model>adminhtml/system_config_source_yesno</source_model>
118
+ <sort_order>70</sort_order>
119
+ <show_in_default>1</show_in_default>
120
+ <show_in_website>1</show_in_website>
121
+ <show_in_store>1</show_in_store>
122
+ </cash>
123
+ <enable_check_company_number>
124
  <label>Enable checking company number</label>
125
  <frontend_type>select</frontend_type>
126
  <source_model>adminhtml/system_config_source_yesno</source_model>
130
  <show_in_website>1</show_in_website>
131
  <show_in_store>1</show_in_store>
132
  </enable_check_company_number>
133
+ <max_cash>
134
+ <label>Maximum amount permitted without company number</label>
135
+ <frontend_type>text</frontend_type>
136
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
137
+ <sort_order>90</sort_order>
138
+ <show_in_default>1</show_in_default>
139
+ <show_in_website>1</show_in_website>
140
+ <show_in_store>1</show_in_store>
141
+ </max_cash>
142
+ <time_max_cash>
143
+ <label>Calculation period of the maximum allowed for an individual (days)</label>
144
+ <frontend_type>text</frontend_type>
145
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
146
+ <sort_order>100</sort_order>
147
+ <show_in_default>1</show_in_default>
148
+ <show_in_website>1</show_in_website>
149
+ <show_in_store>1</show_in_store>
150
+ </time_max_cash>
151
+
152
+
153
+
154
  <heading_coupon translate="label">
155
  <label>Coupon exchange</label>
156
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
158
  <show_in_default>1</show_in_default>
159
  <show_in_website>1</show_in_website>
160
  </heading_coupon>
161
+ <coupon>
162
+ <label>Voucher exchange enabled</label>
163
+ <frontend_type>select</frontend_type>
164
+ <source_model>adminhtml/system_config_source_yesno</source_model>
165
+ <sort_order>120</sort_order>
166
+ <show_in_default>1</show_in_default>
167
+ <show_in_website>1</show_in_website>
168
+ <show_in_store>1</show_in_store>
169
+ </coupon>
170
+
171
+
172
+
173
  <heading_cart translate="label">
174
  <label>Cart exchange</label>
175
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
178
  <show_in_website>1</show_in_website>
179
  <show_in_store>1</show_in_store>
180
  </heading_cart>
181
+ <cart>
182
+ <label>Cart exchange enabled</label>
183
  <frontend_type>select</frontend_type>
184
  <source_model>adminhtml/system_config_source_yesno</source_model>
185
  <sort_order>140</sort_order>
186
  <show_in_default>1</show_in_default>
187
  <show_in_website>1</show_in_website>
188
  <show_in_store>1</show_in_store>
189
+ </cart>
190
+ <automatic_cart>
191
+ <label>Automatic discount in cart</label>
192
+ <comment>If enables, customer has no choice and it points will be used</comment>
193
+ <frontend_type>select</frontend_type>
194
+ <source_model>adminhtml/system_config_source_yesno</source_model>
195
+ <sort_order>145</sort_order>
196
+ <show_in_default>1</show_in_default>
197
+ <show_in_website>1</show_in_website>
198
+ <show_in_store>1</show_in_store>
199
+ </automatic_cart>
200
+ <cancel_cart_points>
201
+ <label>Cancel the use of points on credit memo creation</label>
202
  <frontend_type>select</frontend_type>
203
  <source_model>adminhtml/system_config_source_yesno</source_model>
204
  <sort_order>150</sort_order>
205
  <show_in_default>1</show_in_default>
206
  <show_in_website>1</show_in_website>
207
  <show_in_store>1</show_in_store>
208
+ </cancel_cart_points>
209
+
210
+
211
+
212
  <heading_gift translate="label">
213
  <label>Gift exchange</label>
214
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
217
  <show_in_website>1</show_in_website>
218
  <show_in_store>1</show_in_store>
219
  </heading_gift>
220
+ <gift>
221
+ <label>Gift exchange enabled</label>
222
+ <frontend_type>select</frontend_type>
223
+ <source_model>adminhtml/system_config_source_yesno</source_model>
224
+ <sort_order>170</sort_order>
225
+ <show_in_default>1</show_in_default>
226
+ <show_in_website>1</show_in_website>
227
+ <show_in_store>1</show_in_store>
228
+ </gift>
229
+
230
+
231
+
232
  <heading_sponsorship translate="label">
233
  <label>Sponsorship</label>
234
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
237
  <show_in_website>1</show_in_website>
238
  <show_in_store>1</show_in_store>
239
  </heading_sponsorship>
240
+ <optional_order>
241
+ <label>Allow customers who have never ordered to send sponsorship invitations</label>
242
+ <frontend_type>select</frontend_type>
243
+ <source_model>adminhtml/system_config_source_yesno</source_model>
244
+ <sort_order>190</sort_order>
245
+ <show_in_default>1</show_in_default>
246
+ <show_in_website>1</show_in_website>
247
+ <show_in_store>1</show_in_store>
248
+ </optional_order>
249
+ <allow_invit_registred_users>
250
+ <label>Allow to sponsor registred customers (but never ordered)</label>
251
+ <frontend_type>select</frontend_type>
252
+ <source_model>adminhtml/system_config_source_yesno</source_model>
253
+ <sort_order>200</sort_order>
254
+ <show_in_default>1</show_in_default>
255
+ <show_in_website>1</show_in_website>
256
+ <show_in_store>1</show_in_store>
257
+ </allow_invit_registred_users>
258
+ <sponsor_link_validity>
259
+ <label>Inactivity time before removal of the sponsorship link (days)</label>
260
+ <frontend_type>text</frontend_type>
261
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
262
+ <comment>Needs to active cron jobs.</comment>
263
+ <sort_order>210</sort_order>
264
+ <show_in_default>1</show_in_default>
265
+ <show_in_website>1</show_in_website>
266
+ <show_in_store>1</show_in_store>
267
+ </sponsor_link_validity>
268
+ <sponsor_levels>
269
+ <label>Maximum levels of sponsorship</label>
270
+ <frontend_type>text</frontend_type>
271
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_entier</backend_model>
272
+ <sort_order>220</sort_order>
273
+ <show_in_default>1</show_in_default>
274
+ <show_in_website>1</show_in_website>
275
+ <show_in_store>1</show_in_store>
276
+ </sponsor_levels>
277
+ <sponsor_percent>
278
+ <label>Ratio applied from level 2 to calculate the points of the sponsor (in percentage)</label>
279
+ <frontend_type>text</frontend_type>
280
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
281
+ <sort_order>230</sort_order>
282
+ <show_in_default>1</show_in_default>
283
+ <show_in_website>1</show_in_website>
284
+ <show_in_store>1</show_in_store>
285
+ </sponsor_percent>
286
+ <godson_first_order_points>
287
+ <label>Amount of winning points for the first godson order</label>
288
+ <frontend_type>text</frontend_type>
289
+ <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
290
+ <sort_order>240</sort_order>
291
+ <show_in_default>1</show_in_default>
292
+ <show_in_website>1</show_in_website>
293
+ <show_in_store>1</show_in_store>
294
+ </godson_first_order_points>
295
+ <notification_enabled>
296
  <label>Send notification to sponsor when godchild make him earn points</label>
297
  <frontend_type>select</frontend_type>
298
  <source_model>adminhtml/system_config_source_yesno</source_model>
311
  <show_in_store>1</show_in_store>
312
  </notification>
313
  </fields>
314
+ </accumulated>
315
  <sponsor translate="label">
316
  <label>Sponsorship and separated mode options</label>
317
  <frontend_type>text</frontend_type>
331
  <show_in_website>1</show_in_website>
332
  <show_in_store>1</show_in_store>
333
  </heading_calculation>
334
+ <points_validity>
335
+ <label>Points validity in days(0 for unlimited)</label>
336
  <frontend_type>text</frontend_type>
337
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
338
  <sort_order>10</sort_order>
339
  <show_in_default>1</show_in_default>
340
  <show_in_website>1</show_in_website>
341
  <show_in_store>1</show_in_store>
342
+ </points_validity>
343
+ <cancel_earned_points>
344
+ <label>Cancel earned points on credit memo creation</label>
345
  <frontend_type>select</frontend_type>
346
  <source_model>adminhtml/system_config_source_yesno</source_model>
347
  <sort_order>20</sort_order>
348
  <show_in_default>1</show_in_default>
349
  <show_in_website>1</show_in_website>
350
  <show_in_store>1</show_in_store>
351
+ </cancel_earned_points>
352
+ <sponsor_points_to_cash translate="label">
353
  <label>Conversion rate of points in currency</label>
354
  <frontend_type>text</frontend_type>
355
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
358
  <show_in_website>1</show_in_website>
359
  <show_in_store>1</show_in_store>
360
  </sponsor_points_to_cash>
361
+
362
+
363
+
364
+ <heading_cash translate="label">
365
  <label>Cash exchange</label>
366
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
367
  <sort_order>40</sort_order>
416
  <show_in_default>1</show_in_default>
417
  <show_in_website>1</show_in_website>
418
  </heading_coupon>
419
+ <sponsor_coupon translate="label">
420
  <label>Voucher exchange enabled</label>
421
  <frontend_type>select</frontend_type>
422
  <source_model>adminhtml/system_config_source_yesno</source_model>
423
  <sort_order>100</sort_order>
424
  <show_in_default>1</show_in_default>
425
  <show_in_website>1</show_in_website>
426
+ <show_in_store>1</show_in_store>
427
+ </sponsor_coupon>
428
 
429
 
430
 
437
  <show_in_store>1</show_in_store>
438
  </heading_cart>
439
  <sponsor_cart>
440
+ <label>Cart exchange enabled</label>
441
  <frontend_type>select</frontend_type>
442
  <source_model>adminhtml/system_config_source_yesno</source_model>
443
  <sort_order>120</sort_order>
445
  <show_in_website>1</show_in_website>
446
  <show_in_store>1</show_in_store>
447
  </sponsor_cart>
448
+ <automatic_cart>
449
+ <label>Automatic discount in cart</label>
450
+ <comment>If enables, customer has no choice and it points will be used</comment>
451
+ <frontend_type>select</frontend_type>
452
+ <source_model>adminhtml/system_config_source_yesno</source_model>
453
+ <sort_order>125</sort_order>
454
+ <show_in_default>1</show_in_default>
455
+ <show_in_website>1</show_in_website>
456
+ <show_in_store>1</show_in_store>
457
+ </automatic_cart>
458
  <cancel_cart_points>
459
  <label>Cancel the use of points on credit memo creation</label>
460
  <frontend_type>select</frontend_type>
483
  <show_in_default>1</show_in_default>
484
  <show_in_website>1</show_in_website>
485
  <show_in_store>1</show_in_store>
486
+ </sponsor_gift>
487
 
488
 
489
 
494
  <show_in_default>1</show_in_default>
495
  <show_in_website>1</show_in_website>
496
  <show_in_store>1</show_in_store>
497
+ </heading_sponsorship>
498
  <sponsor_optional_order translate="label">
499
  <label>Allow customers who have never ordered to send invitations</label>
500
  <frontend_type>select</frontend_type>
566
  <show_in_default>1</show_in_default>
567
  <show_in_website>1</show_in_website>
568
  <show_in_store>1</show_in_store>
569
+ </notification>
570
  </fields>
571
  </sponsor>
572
  <fidelity translate="label">
588
  <show_in_website>1</show_in_website>
589
  <show_in_store>1</show_in_store>
590
  </heading_calculation>
591
+ <points_validity>
592
+ <label>Points validity in days(0 for unlimited)</label>
593
  <frontend_type>text</frontend_type>
594
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
595
  <sort_order>10</sort_order>
596
  <show_in_default>1</show_in_default>
597
  <show_in_website>1</show_in_website>
598
  <show_in_store>1</show_in_store>
599
+ </points_validity>
600
+ <cancel_earned_points>
601
+ <label>Cancel earned points on credit memo creation</label>
602
  <frontend_type>select</frontend_type>
603
  <source_model>adminhtml/system_config_source_yesno</source_model>
604
  <sort_order>20</sort_order>
605
  <show_in_default>1</show_in_default>
606
  <show_in_website>1</show_in_website>
607
  <show_in_store>1</show_in_store>
608
+ </cancel_earned_points>
609
+ <fidelity_points_to_cash>
610
  <label>Conversion rate of points in currency</label>
611
  <frontend_type>text</frontend_type>
612
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_float</backend_model>
615
  <show_in_website>1</show_in_website>
616
  <show_in_store>1</show_in_store>
617
  </fidelity_points_to_cash>
618
+ <newsletter_points>
619
  <label>Amount of winning points when subscribe to newsletter on account creation</label>
620
  <frontend_type>text</frontend_type>
621
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_naturalNumber</backend_model>
633
  <show_in_website>1</show_in_website>
634
  <show_in_store>1</show_in_store>
635
  </first_order_points>
636
+
637
+
638
+
639
+ <heading_cash translate="label">
640
  <label>Cash exchange</label>
641
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
642
  <sort_order>60</sort_order>
710
  <show_in_website>1</show_in_website>
711
  <show_in_store>1</show_in_store>
712
  </heading_cart>
713
+ <fidelity_cart>
714
+ <label>Cart exchange enabled</label>
715
  <frontend_type>select</frontend_type>
716
  <source_model>adminhtml/system_config_source_yesno</source_model>
717
  <sort_order>140</sort_order>
718
  <show_in_default>1</show_in_default>
719
  <show_in_website>1</show_in_website>
720
  <show_in_store>1</show_in_store>
721
+ </fidelity_cart>
722
+ <automatic_cart>
723
+ <label>Automatic discount in cart</label>
724
+ <comment>If enables, customer has no choice and it points will be used</comment>
725
+ <frontend_type>select</frontend_type>
726
+ <source_model>adminhtml/system_config_source_yesno</source_model>
727
+ <sort_order>145</sort_order>
728
+ <show_in_default>1</show_in_default>
729
+ <show_in_website>1</show_in_website>
730
+ <show_in_store>1</show_in_store>
731
+ </automatic_cart>
732
+ <cancel_cart_points>
733
+ <label>Cancel the use of points on credit memo creation</label>
734
  <frontend_type>select</frontend_type>
735
  <source_model>adminhtml/system_config_source_yesno</source_model>
736
  <sort_order>150</sort_order>
737
  <show_in_default>1</show_in_default>
738
  <show_in_website>1</show_in_website>
739
  <show_in_store>1</show_in_store>
740
+ </cancel_cart_points>
741
+
742
 
743
 
744
+ <heading_gift translate="label">
745
  <label>Gift exchange</label>
746
  <frontend_model>adminhtml/system_config_form_field_heading</frontend_model>
747
  <sort_order>160</sort_order>
796
  <show_in_store>1</show_in_store>
797
  </max_recipients>
798
  <template translate="label">
799
+ <label>Invitation Email Template</label>
800
+ <frontend_type>select</frontend_type>
801
  <source_model>adminhtml/system_config_source_email_template</source_model>
802
  <sort_order>30</sort_order>
803
  <show_in_default>1</show_in_default>
815
  <show_in_store>1</show_in_store>
816
  <fields>
817
  <template translate="label">
818
+ <label>Coupon Email Template</label>
819
+ <frontend_type>select</frontend_type>
820
  <source_model>adminhtml/system_config_source_email_template</source_model>
821
  <sort_order>0</sort_order>
822
  <show_in_default>1</show_in_default>
853
  </administrator_email>
854
  </fields>
855
  </cash>
856
+ <open_inviter translate="label comment">
857
  <label>Open Inviter options</label>
858
  <sort_order>7</sort_order>
859
  <show_in_default>1</show_in_default>
860
  <show_in_website>1</show_in_website>
861
  <show_in_store>1</show_in_store>
862
  <fields>
863
+ <open_inviter_enabled>
864
+ <comment><![CDATA[Allows customers to import addressbook/contacts from different email providers like Yahoo, Gmail, Hotmail, Live etc. using different CMS software like Drupal, Joomla etc. or forum software like PHPBB, SMF etc. Learn more on <a href='http://openinviter.com'>openinviter.com</a>]]></comment>
865
  <label>Activated</label>
866
  <frontend_type>select</frontend_type>
867
  <source_model>adminhtml/system_config_source_yesno</source_model>
869
  <show_in_default>1</show_in_default>
870
  <show_in_website>1</show_in_website>
871
  <show_in_store>1</show_in_store>
872
+ </open_inviter_enabled>
873
+ <username>
874
  <label>Username</label>
875
  <frontend_type>text</frontend_type>
876
  <backend_model>auguria_sponsorship/adminhtml_system_config_backend_sponsorship_openinviter</backend_model>
878
  <show_in_default>1</show_in_default>
879
  <show_in_website>1</show_in_website>
880
  <show_in_store>1</show_in_store>
881
+ </username>
882
+ <private_key>
883
  <label>Private Key</label>
884
  <frontend_type>text</frontend_type>
885
  <sort_order>20</sort_order>
886
  <show_in_default>1</show_in_default>
887
  <show_in_website>1</show_in_website>
888
  <show_in_store>1</show_in_store>
889
+ </private_key>
890
+ </fields>
891
+ </open_inviter>
892
  </groups>
893
  </auguria_sponsorship>
894
  </sections>
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-0.1.2-0.1.3.php CHANGED
@@ -8,80 +8,80 @@
8
  $setup = new Mage_Sales_Model_Mysql4_Setup('core_setup');
9
  $setup->startSetup();
10
  if (!$this->hasSponsorshipInstall()) {
11
- $setup->addAttribute('order_item', 'catalog_fidelity_points', array(
12
- 'type' => 'decimal',
13
- 'backend' => '',
14
- 'frontend' => '',
15
- 'label' => 'Points Fidélité',
16
- 'input' => 'text',
17
- 'class' => '',
18
- 'source' => '',
19
- 'visible' => true,
20
- 'required' => false,
21
- 'user_defined' => false,
22
- 'default' => 0,
23
- 'searchable' => false,
24
- 'filterable' => false,
25
- 'comparable' => false,
26
- 'visible_on_front' => false,
27
- 'unique' => false,
28
- ));
29
 
30
- $setup->addAttribute('order_item', 'catalog_sponsor_points', array(
31
- 'type' => 'decimal',
32
- 'backend' => '',
33
- 'frontend' => '',
34
- 'label' => 'Points Parrainage',
35
- 'input' => 'text',
36
- 'class' => '',
37
- 'source' => '',
38
- 'visible' => true,
39
- 'required' => false,
40
- 'user_defined' => false,
41
- 'default' => 0,
42
- 'searchable' => false,
43
- 'filterable' => false,
44
- 'comparable' => false,
45
- 'visible_on_front' => false,
46
- 'unique' => false,
47
- ));
48
 
49
- $setup->addAttribute('order_item', 'cart_fidelity_points', array(
50
- 'type' => 'decimal',
51
- 'backend' => '',
52
- 'frontend' => '',
53
- 'label' => 'Points Fidélité',
54
- 'input' => 'text',
55
- 'class' => '',
56
- 'source' => '',
57
- 'visible' => true,
58
- 'required' => false,
59
- 'user_defined' => false,
60
- 'default' => 0,
61
- 'searchable' => false,
62
- 'filterable' => false,
63
- 'comparable' => false,
64
- 'visible_on_front' => false,
65
- 'unique' => false,
66
- ));
67
 
68
- $setup->addAttribute('order_item', 'cart_sponsor_points', array(
69
- 'type' => 'decimal',
70
- 'backend' => '',
71
- 'frontend' => '',
72
- 'label' => 'Points Parrainage',
73
- 'input' => 'text',
74
- 'class' => '',
75
- 'source' => '',
76
- 'visible' => true,
77
- 'required' => false,
78
- 'user_defined' => false,
79
- 'default' => 0,
80
- 'searchable' => false,
81
- 'filterable' => false,
82
- 'comparable' => false,
83
- 'visible_on_front' => false,
84
- 'unique' => false,
85
- ));
86
  }
87
  $setup->endSetup();
8
  $setup = new Mage_Sales_Model_Mysql4_Setup('core_setup');
9
  $setup->startSetup();
10
  if (!$this->hasSponsorshipInstall()) {
11
+ $setup->addAttribute('order_item', 'catalog_fidelity_points', array(
12
+ 'type' => 'decimal',
13
+ 'backend' => '',
14
+ 'frontend' => '',
15
+ 'label' => 'Points Fidélité',
16
+ 'input' => 'text',
17
+ 'class' => '',
18
+ 'source' => '',
19
+ 'visible' => true,
20
+ 'required' => false,
21
+ 'user_defined' => false,
22
+ 'default' => 0,
23
+ 'searchable' => false,
24
+ 'filterable' => false,
25
+ 'comparable' => false,
26
+ 'visible_on_front' => false,
27
+ 'unique' => false,
28
+ ));
29
 
30
+ $setup->addAttribute('order_item', 'catalog_sponsor_points', array(
31
+ 'type' => 'decimal',
32
+ 'backend' => '',
33
+ 'frontend' => '',
34
+ 'label' => 'Points Parrainage',
35
+ 'input' => 'text',
36
+ 'class' => '',
37
+ 'source' => '',
38
+ 'visible' => true,
39
+ 'required' => false,
40
+ 'user_defined' => false,
41
+ 'default' => 0,
42
+ 'searchable' => false,
43
+ 'filterable' => false,
44
+ 'comparable' => false,
45
+ 'visible_on_front' => false,
46
+ 'unique' => false,
47
+ ));
48
 
49
+ $setup->addAttribute('order_item', 'cart_fidelity_points', array(
50
+ 'type' => 'decimal',
51
+ 'backend' => '',
52
+ 'frontend' => '',
53
+ 'label' => 'Points Fidélité',
54
+ 'input' => 'text',
55
+ 'class' => '',
56
+ 'source' => '',
57
+ 'visible' => true,
58
+ 'required' => false,
59
+ 'user_defined' => false,
60
+ 'default' => 0,
61
+ 'searchable' => false,
62
+ 'filterable' => false,
63
+ 'comparable' => false,
64
+ 'visible_on_front' => false,
65
+ 'unique' => false,
66
+ ));
67
 
68
+ $setup->addAttribute('order_item', 'cart_sponsor_points', array(
69
+ 'type' => 'decimal',
70
+ 'backend' => '',
71
+ 'frontend' => '',
72
+ 'label' => 'Points Parrainage',
73
+ 'input' => 'text',
74
+ 'class' => '',
75
+ 'source' => '',
76
+ 'visible' => true,
77
+ 'required' => false,
78
+ 'user_defined' => false,
79
+ 'default' => 0,
80
+ 'searchable' => false,
81
+ 'filterable' => false,
82
+ 'comparable' => false,
83
+ 'visible_on_front' => false,
84
+ 'unique' => false,
85
+ ));
86
  }
87
  $setup->endSetup();
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-0.1.7-0.1.8.php CHANGED
@@ -8,42 +8,42 @@
8
  $setup = new Mage_Sales_Model_Mysql4_Setup('core_setup');
9
  $setup->startSetup();
10
  if (!$this->hasSponsorshipInstall()) {
11
- $setup->addAttribute('quote_item', 'cart_fidelity_points', array(
12
- 'type' => 'decimal',
13
- 'backend' => '',
14
- 'frontend' => '',
15
- 'label' => 'Points Fidélité',
16
- 'input' => 'text',
17
- 'class' => '',
18
- 'source' => '',
19
- 'visible' => true,
20
- 'required' => false,
21
- 'user_defined' => false,
22
- 'default' => 0,
23
- 'searchable' => false,
24
- 'filterable' => false,
25
- 'comparable' => false,
26
- 'visible_on_front' => false,
27
- 'unique' => false,
28
- ));
29
 
30
- $setup->addAttribute('quote_item', 'cart_sponsor_points', array(
31
- 'type' => 'decimal',
32
- 'backend' => '',
33
- 'frontend' => '',
34
- 'label' => 'Points Parrainage',
35
- 'input' => 'text',
36
- 'class' => '',
37
- 'source' => '',
38
- 'visible' => true,
39
- 'required' => false,
40
- 'user_defined' => false,
41
- 'default' => 0,
42
- 'searchable' => false,
43
- 'filterable' => false,
44
- 'comparable' => false,
45
- 'visible_on_front' => false,
46
- 'unique' => false,
47
- ));
48
  }
49
  $setup->endSetup();
8
  $setup = new Mage_Sales_Model_Mysql4_Setup('core_setup');
9
  $setup->startSetup();
10
  if (!$this->hasSponsorshipInstall()) {
11
+ $setup->addAttribute('quote_item', 'cart_fidelity_points', array(
12
+ 'type' => 'decimal',
13
+ 'backend' => '',
14
+ 'frontend' => '',
15
+ 'label' => 'Points Fidélité',
16
+ 'input' => 'text',
17
+ 'class' => '',
18
+ 'source' => '',
19
+ 'visible' => true,
20
+ 'required' => false,
21
+ 'user_defined' => false,
22
+ 'default' => 0,
23
+ 'searchable' => false,
24
+ 'filterable' => false,
25
+ 'comparable' => false,
26
+ 'visible_on_front' => false,
27
+ 'unique' => false,
28
+ ));
29
 
30
+ $setup->addAttribute('quote_item', 'cart_sponsor_points', array(
31
+ 'type' => 'decimal',
32
+ 'backend' => '',
33
+ 'frontend' => '',
34
+ 'label' => 'Points Parrainage',
35
+ 'input' => 'text',
36
+ 'class' => '',
37
+ 'source' => '',
38
+ 'visible' => true,
39
+ 'required' => false,
40
+ 'user_defined' => false,
41
+ 'default' => 0,
42
+ 'searchable' => false,
43
+ 'filterable' => false,
44
+ 'comparable' => false,
45
+ 'visible_on_front' => false,
46
+ 'unique' => false,
47
+ ));
48
  }
49
  $setup->endSetup();
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.10-1.1.0.php CHANGED
@@ -10,41 +10,41 @@ $installer = $this;
10
 
11
  $installer->startSetup();
12
  if (!$installer->hasSponsorshipInstall()) {
13
- Mage::getSingleton( 'eav/config' )
14
- ->getAttribute( 'customer', 'sponsor' )
15
- ->setData( 'used_in_forms', array() )
16
- ->save();
17
-
18
- Mage::getSingleton( 'eav/config' )
19
- ->getAttribute( 'customer', 'special_rate' )
20
- ->setData( 'used_in_forms', array() )
21
- ->save();
22
-
23
- Mage::getSingleton( 'eav/config' )
24
- ->getAttribute( 'customer', 'fidelity_points' )
25
- ->setData( 'used_in_forms', array() )
26
- ->save();
27
-
28
- Mage::getSingleton( 'eav/config' )
29
- ->getAttribute( 'customer', 'sponsor_points' )
30
- ->setData( 'used_in_forms', array() )
31
- ->save();
32
-
33
- Mage::getSingleton( 'eav/config' )
34
- ->getAttribute( 'customer', 'iban' )
35
- ->setData( 'used_in_forms', array() )
36
- ->save();
37
-
38
- Mage::getSingleton( 'eav/config' )
39
- ->getAttribute( 'customer', 'siret' )
40
- ->setData( 'used_in_forms', array() )
41
- ->save();
42
-
43
- $installer->updateAttribute('customer', 'sponsor', 'group', 'Sponsorship');
44
- $installer->updateAttribute('customer', 'special_rate', 'group', 'Sponsorship');
45
- $installer->updateAttribute('customer', 'fidelity_points', 'group', 'Sponsorship');
46
- $installer->updateAttribute('customer', 'sponsor_points', 'group', 'Sponsorship');
47
- $installer->updateAttribute('customer', 'iban', 'group', 'Sponsorship');
48
- $installer->updateAttribute('customer', 'siret', 'group', 'Sponsorship');
49
  }
50
- $installer->endSetup();
10
 
11
  $installer->startSetup();
12
  if (!$installer->hasSponsorshipInstall()) {
13
+ Mage::getSingleton( 'eav/config' )
14
+ ->getAttribute( 'customer', 'sponsor' )
15
+ ->setData( 'used_in_forms', array() )
16
+ ->save();
17
+
18
+ Mage::getSingleton( 'eav/config' )
19
+ ->getAttribute( 'customer', 'special_rate' )
20
+ ->setData( 'used_in_forms', array() )
21
+ ->save();
22
+
23
+ Mage::getSingleton( 'eav/config' )
24
+ ->getAttribute( 'customer', 'fidelity_points' )
25
+ ->setData( 'used_in_forms', array() )
26
+ ->save();
27
+
28
+ Mage::getSingleton( 'eav/config' )
29
+ ->getAttribute( 'customer', 'sponsor_points' )
30
+ ->setData( 'used_in_forms', array() )
31
+ ->save();
32
+
33
+ Mage::getSingleton( 'eav/config' )
34
+ ->getAttribute( 'customer', 'iban' )
35
+ ->setData( 'used_in_forms', array() )
36
+ ->save();
37
+
38
+ Mage::getSingleton( 'eav/config' )
39
+ ->getAttribute( 'customer', 'siret' )
40
+ ->setData( 'used_in_forms', array() )
41
+ ->save();
42
+
43
+ $installer->updateAttribute('customer', 'sponsor', 'group', 'Sponsorship');
44
+ $installer->updateAttribute('customer', 'special_rate', 'group', 'Sponsorship');
45
+ $installer->updateAttribute('customer', 'fidelity_points', 'group', 'Sponsorship');
46
+ $installer->updateAttribute('customer', 'sponsor_points', 'group', 'Sponsorship');
47
+ $installer->updateAttribute('customer', 'iban', 'group', 'Sponsorship');
48
+ $installer->updateAttribute('customer', 'siret', 'group', 'Sponsorship');
49
  }
50
+ $installer->endSetup();
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.3-1.0.4.php CHANGED
@@ -9,18 +9,18 @@ $installer = $this;
9
 
10
  $installer->startSetup();
11
  if ($installer->hasSponsorshipInstall()) {
12
- $installer->run("ALTER TABLE `{$this->getTable('sponsorship_openinviter')}` RENAME `{$this->getTable('auguria_sponsorship/sponsorshipopeninviter')}`;");
13
  }
14
  else {
15
- $installer->run("
16
- CREATE TABLE IF NOT EXISTS {$this->getTable('auguria_sponsorship/sponsorshipopeninviter')} (
17
- `sponsorship_openinviter_id` int(11) unsigned NOT NULL auto_increment,
18
- `code` varchar(255) NOT NULL,
19
- `image` varchar(255) default NULL,
20
- `name` varchar(255) default NULL,
21
- `status` smallint(6) NOT NULL default '0',
22
- PRIMARY KEY (`sponsorship_openinviter_id`)
23
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
24
- ");
25
  }
26
- $installer->endSetup();
9
 
10
  $installer->startSetup();
11
  if ($installer->hasSponsorshipInstall()) {
12
+ $installer->run("ALTER TABLE `{$this->getTable('sponsorship_openinviter')}` RENAME `{$this->getTable('auguria_sponsorship/sponsorshipopeninviter')}`;");
13
  }
14
  else {
15
+ $installer->run("
16
+ CREATE TABLE IF NOT EXISTS {$this->getTable('auguria_sponsorship/sponsorshipopeninviter')} (
17
+ `sponsorship_openinviter_id` int(11) unsigned NOT NULL auto_increment,
18
+ `code` varchar(255) NOT NULL,
19
+ `image` varchar(255) default NULL,
20
+ `name` varchar(255) default NULL,
21
+ `status` smallint(6) NOT NULL default '0',
22
+ PRIMARY KEY (`sponsorship_openinviter_id`)
23
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
24
+ ");
25
  }
26
+ $installer->endSetup();
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.7-1.0.8.php CHANGED
@@ -11,11 +11,11 @@ $installer = $this;
11
  $installer->startSetup();
12
 
13
  if (!$installer->hasSponsorshipInstall()) {
14
- $installer->run("
15
- ALTER TABLE {$this->getTable('sponsorship_fidelity_log')} CHANGE `record_type` `record_type`
16
- ENUM('order', 'gift', 'coupon_code', 'cash', 'admin', 'first') NOT NULL;
17
- ALTER TABLE {$this->getTable('sponsorship_sponsor_log')} CHANGE `record_type` `record_type`
18
- ENUM('order', 'gift', 'coupon_code', 'cash', 'admin', 'first') NOT NULL;
19
- ");
20
  }
21
- $installer->endSetup();
11
  $installer->startSetup();
12
 
13
  if (!$installer->hasSponsorshipInstall()) {
14
+ $installer->run("
15
+ ALTER TABLE {$this->getTable('sponsorship_fidelity_log')} CHANGE `record_type` `record_type`
16
+ ENUM('order', 'gift', 'coupon_code', 'cash', 'admin', 'first') NOT NULL;
17
+ ALTER TABLE {$this->getTable('sponsorship_sponsor_log')} CHANGE `record_type` `record_type`
18
+ ENUM('order', 'gift', 'coupon_code', 'cash', 'admin', 'first') NOT NULL;
19
+ ");
20
  }
21
+ $installer->endSetup();
app/code/community/Auguria/Sponsorship/sql/auguria_sponsorship_setup/mysql4-upgrade-1.0.8-1.0.9.php CHANGED
@@ -11,28 +11,28 @@ $installer = $this;
11
  $installer->startSetup();
12
 
13
  if (!$installer->hasSponsorshipInstall()) {
14
- Mage::getSingleton( 'eav/config' )
15
- ->getAttribute( 'customer', 'sponsor' )
16
- ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
17
- ->save();
18
-
19
- Mage::getSingleton( 'eav/config' )
20
- ->getAttribute( 'customer', 'fidelity_points' )
21
- ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
22
- ->save();
23
-
24
- Mage::getSingleton( 'eav/config' )
25
- ->getAttribute( 'customer', 'sponsor_points' )
26
- ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
27
- ->save();
28
-
29
- $installer->updateAttribute('customer', 'sponsor', 'group', 'Default');
30
- $installer->updateAttribute('customer', 'fidelity_points', 'group', 'Default');
31
- $installer->updateAttribute('customer', 'sponsor_points', 'group', 'Default');
32
-
33
- $installer->updateAttribute('customer', 'sponsor', 'sort_order', 250);
34
- $installer->updateAttribute('customer', 'fidelity_points', 'sort_order', 251);
35
- $installer->updateAttribute('customer', 'sponsor_points', 'sort_order', 252);
36
  }
37
 
38
- $installer->endSetup();
11
  $installer->startSetup();
12
 
13
  if (!$installer->hasSponsorshipInstall()) {
14
+ Mage::getSingleton( 'eav/config' )
15
+ ->getAttribute( 'customer', 'sponsor' )
16
+ ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
17
+ ->save();
18
+
19
+ Mage::getSingleton( 'eav/config' )
20
+ ->getAttribute( 'customer', 'fidelity_points' )
21
+ ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
22
+ ->save();
23
+
24
+ Mage::getSingleton( 'eav/config' )
25
+ ->getAttribute( 'customer', 'sponsor_points' )
26
+ ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
27
+ ->save();
28
+
29
+ $installer->updateAttribute('customer', 'sponsor', 'group', 'Default');
30
+ $installer->updateAttribute('customer', 'fidelity_points', 'group', 'Default');
31
+ $installer->updateAttribute('customer', 'sponsor_points', 'group', 'Default');
32
+
33
+ $installer->updateAttribute('customer', 'sponsor', 'sort_order', 250);
34
+ $installer->updateAttribute('customer', 'fidelity_points', 'sort_order', 251);
35
+ $installer->updateAttribute('customer', 'sponsor_points', 'sort_order', 252);
36
  }
37
 
38
+ $installer->endSetup();
app/design/frontend/base/default/layout/auguria/sponsorship.xml CHANGED
@@ -18,17 +18,17 @@
18
 
19
  <!-- Déclaration du template OpenInviter -->
20
  <auguria_sponsorship_openinviter_index>
21
- <reference name="root">
22
- <action method="setTemplate"><template>page/empty.phtml</template></action>
23
- </reference>
24
  <reference name="content">
25
  <block type="auguria_sponsorship/openinviter" name="openinviter" template="auguria/sponsorship/openinviter.phtml" />
26
  </reference>
27
  </auguria_sponsorship_openinviter_index>
28
  <auguria_sponsorship_openinviter_import>
29
- <reference name="root">
30
- <action method="setTemplate"><template>page/empty.phtml</template></action>
31
- </reference>
32
  <reference name="content">
33
  <block type="auguria_sponsorship/openinviter" name="openinviter" template="auguria/sponsorship/openinviterimport.phtml" />
34
  </reference>
@@ -92,46 +92,53 @@
92
  <auguria_sponsorship_points_change>
93
  <update handle="customer_account"/>
94
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_cash" template="auguria/sponsorship/customer/form/pointschange.phtml">
95
- <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_cash" as="cash" template="auguria/sponsorship/customer/form/pointschange/pointschange_cash.phtml"/>
96
  </block>>
97
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_coupon" template="auguria/sponsorship/customer/form/pointschange.phtml">
98
- <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_coupon" as="coupon" template="auguria/sponsorship/customer/form/pointschange/pointschange_coupon.phtml"/>
99
  </block>>
100
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_gift" template="auguria/sponsorship/customer/form/pointschange.phtml">
101
- <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_gift" as="gift" template="auguria/sponsorship/customer/form/pointschange/pointschange_gift.phtml"/>
102
  </block>>
103
  </auguria_sponsorship_points_change>
104
 
 
 
 
 
 
 
 
105
  <!-- Add auguria sponsorship account point block into dashboard as info1 -->
106
  <customer_account_index>
107
- <reference name="customer_account_dashboard">
108
- <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_points" as="info1" template="auguria/sponsorship/customer/account/dashboard/points.phtml">
109
- <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_fidelity_points" as="customer_account_fidelity_points" template="auguria/sponsorship/customer/account/dashboard/fidelity_points.phtml"/>
110
- <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_sponsor_points" as="customer_account_sponsor_points" template="auguria/sponsorship/customer/account/dashboard/sponsor_points.phtml"/>
111
- <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_accumulated_points" as="customer_account_accumulated_points" template="auguria/sponsorship/customer/account/dashboard/accumulated_points.phtml"/>
112
- </block>
113
- </reference>
114
- </customer_account_index>
115
-
116
- <!-- Remplacement de edit.phtml pour ajout champ Iban et Bic dans les informations du compte -->
117
- <customer_account_edit>
118
  <reference name="customer_edit">
119
- <action method="setTemplate">
120
- <template>auguria/sponsorship/customer/form/edit.phtml</template>
121
- </action>
122
  </reference>
123
  </customer_account_edit>
124
 
125
  <!-- Ajout d'un lien vers le détail des points -->
126
- <customer_account>
127
- <reference name="customer_account_navigation">
128
  <action ifconfig="auguria_sponsorship/fidelity/fidelity_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>fidelity_points</name><path>auguria_sponsorship/points/fidelity</path><label>Fidelity points management</label></action>
129
  <action ifconfig="auguria_sponsorship/sponsor/sponsor_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>sponsor_points</name><path>auguria_sponsorship/points/sponsorship</path><label>Sponsorship management</label></action>
130
  <action ifconfig="auguria_sponsorship/accumulated/accumulated_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>accumulated_points</name><path>auguria_sponsorship/points/accumulated</path><label>Fidelity points and sponsorship management</label></action>
131
  </reference>
132
- </customer_account>
133
- <!-- Ajout du js pour le remplissage automatique des champs lors de l'invitation-->
134
- <customer_account_create>
135
  <reference name="content">
136
  <block type="auguria_sponsorship/customer_javascript" name="customer_javascript" />
137
  </reference>
18
 
19
  <!-- Déclaration du template OpenInviter -->
20
  <auguria_sponsorship_openinviter_index>
21
+ <reference name="root">
22
+ <action method="setTemplate"><template>page/empty.phtml</template></action>
23
+ </reference>
24
  <reference name="content">
25
  <block type="auguria_sponsorship/openinviter" name="openinviter" template="auguria/sponsorship/openinviter.phtml" />
26
  </reference>
27
  </auguria_sponsorship_openinviter_index>
28
  <auguria_sponsorship_openinviter_import>
29
+ <reference name="root">
30
+ <action method="setTemplate"><template>page/empty.phtml</template></action>
31
+ </reference>
32
  <reference name="content">
33
  <block type="auguria_sponsorship/openinviter" name="openinviter" template="auguria/sponsorship/openinviterimport.phtml" />
34
  </reference>
92
  <auguria_sponsorship_points_change>
93
  <update handle="customer_account"/>
94
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_cash" template="auguria/sponsorship/customer/form/pointschange.phtml">
95
+ <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_cash" as="cash" template="auguria/sponsorship/customer/form/pointschange/pointschange_cash.phtml"/>
96
  </block>>
97
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_coupon" template="auguria/sponsorship/customer/form/pointschange.phtml">
98
+ <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_coupon" as="coupon" template="auguria/sponsorship/customer/form/pointschange/pointschange_coupon.phtml"/>
99
  </block>>
100
  <block type="auguria_sponsorship/customer_form_pointsChange" name="customer_pointschange_gift" template="auguria/sponsorship/customer/form/pointschange.phtml">
101
+ <block type="auguria_sponsorship/customer_form_pointsChange" name="sponsorship_customer_pointschange_gift" as="gift" template="auguria/sponsorship/customer/form/pointschange/pointschange_gift.phtml"/>
102
  </block>>
103
  </auguria_sponsorship_points_change>
104
 
105
+ <!-- Add block to claim for cart points exchange -->
106
+ <checkout_cart_index>
107
+ <reference name="content">
108
+ <block after="checkout.cart" type="auguria_sponsorship/cart_exchange" as="cart_points_exchange" name="cart_points_exchange" template="auguria/sponsorship/cart/exchange.phtml"/>
109
+ </reference>
110
+ </checkout_cart_index>
111
+
112
  <!-- Add auguria sponsorship account point block into dashboard as info1 -->
113
  <customer_account_index>
114
+ <reference name="customer_account_dashboard">
115
+ <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_points" as="info1" template="auguria/sponsorship/customer/account/dashboard/points.phtml">
116
+ <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_fidelity_points" as="customer_account_fidelity_points" template="auguria/sponsorship/customer/account/dashboard/fidelity_points.phtml"/>
117
+ <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_sponsor_points" as="customer_account_sponsor_points" template="auguria/sponsorship/customer/account/dashboard/sponsor_points.phtml"/>
118
+ <block type="auguria_sponsorship/customer_account_pointsDetail" name="customer_account_accumulated_points" as="customer_account_accumulated_points" template="auguria/sponsorship/customer/account/dashboard/accumulated_points.phtml"/>
119
+ </block>
120
+ </reference>
121
+ </customer_account_index>
122
+
123
+ <!-- Remplacement de edit.phtml pour ajout champ Iban et Bic dans les informations du compte -->
124
+ <customer_account_edit>
125
  <reference name="customer_edit">
126
+ <action method="setTemplate">
127
+ <template>auguria/sponsorship/customer/form/edit.phtml</template>
128
+ </action>
129
  </reference>
130
  </customer_account_edit>
131
 
132
  <!-- Ajout d'un lien vers le détail des points -->
133
+ <customer_account>
134
+ <reference name="customer_account_navigation">
135
  <action ifconfig="auguria_sponsorship/fidelity/fidelity_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>fidelity_points</name><path>auguria_sponsorship/points/fidelity</path><label>Fidelity points management</label></action>
136
  <action ifconfig="auguria_sponsorship/sponsor/sponsor_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>sponsor_points</name><path>auguria_sponsorship/points/sponsorship</path><label>Sponsorship management</label></action>
137
  <action ifconfig="auguria_sponsorship/accumulated/accumulated_enabled" method="addLink" translate="label" module="auguria_sponsorship"><name>accumulated_points</name><path>auguria_sponsorship/points/accumulated</path><label>Fidelity points and sponsorship management</label></action>
138
  </reference>
139
+ </customer_account>
140
+ <!-- Ajout du js pour le remplissage automatique des champs lors de l'invitation-->
141
+ <customer_account_create>
142
  <reference name="content">
143
  <block type="auguria_sponsorship/customer_javascript" name="customer_javascript" />
144
  </reference>
app/design/frontend/base/default/template/auguria/sponsorship/cart/exchange.phtml ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @category Auguria
4
+ * @package Auguria_GiftCatalog
5
+ * @author Auguria
6
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
+ /* @var $this Auguria_Sponsorship_Block_Cart_Exchange */
9
+ ?>
10
+ <?php
11
+ $itemQty = $this->helper('checkout/cart')->getItemsQty();
12
+
13
+ if ($itemQty > 0):
14
+ // For each points type
15
+ $modules = Mage::helper('auguria_sponsorship/config')->getPointsTypes();
16
+
17
+ foreach ($modules as $module):
18
+
19
+ $isActivated = $this->isActivated($module);
20
+ $isAutomatic = $this->isAutomatic($module);
21
+ $availablePoints = $this->getAvailablePoints($module);
22
+
23
+ // If exchange is activated, not automatic and customer has points
24
+ if ($isActivated && !$isAutomatic && $availablePoints > 0):
25
+ // Check if customer has actvated points exchange
26
+ if ($this->isPointUseActivated($module)):
27
+ ?>
28
+ <div class="block block-exchange">
29
+ <div class="block-content">
30
+ <div class='button'>
31
+ <form method="post" action="<?php echo $this->getUrl('sponsorship/cart/doNotUsePoints'); ?>">
32
+ <input type="hidden" name="sponsorship_type" value="<?php echo $module; ?>" />
33
+ <button style="padding-top: 9px;" type="submit" title="<?php echo $this->__('Cancel the use of my %s points', $this->__($module)) ?>" class="button btn-cart">
34
+ <span><span><?php echo $this->__('Cancel the use of my %s points', $this->__($module)); ?></span></span>
35
+ </button>
36
+ </form>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <?php
41
+ //Customer has not activated exchange
42
+ else:
43
+ $availableCash = $this->getAvailableCash($module);
44
+ ?>
45
+ <div class="block block-exchange">
46
+ <div class="block-content">
47
+ <p class="block-subtitle">
48
+ <?php
49
+ echo $this->__(
50
+ "You have %d points %s equivalent to %s",
51
+ $availablePoints,
52
+ $this->__($module),
53
+ Mage::app()->getStore()->formatPrice($availableCash)
54
+ );
55
+ ?>
56
+ </p>
57
+ <div class='button'>
58
+ <form method="post" action="<?php echo $this->getUrl('sponsorship/cart/usePoints'); ?>">
59
+ <input type="hidden" name="sponsorship_type" value="<?php echo $module; ?>" />
60
+ <button type="submit" title="<?php echo $this->__('Use my points') ?>" class="button btn-cart">
61
+ <span><span><?php echo $this->__('Use my points'); ?></span></span>
62
+ </button>
63
+ </form>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ <?php
68
+ endif;
69
+ endif;
70
+ endforeach;
71
+ endif;
72
+ ?>
app/design/frontend/base/default/template/auguria/sponsorship/customer/account/fidelitypointsdetail.phtml CHANGED
@@ -4,12 +4,12 @@
4
  * @package Auguria_Sponsorship
5
  * @author Auguria
6
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
- */
8
  -->
9
- <?php
10
  /* @var $this Auguria_Sponsorship_Block_Customer_Account_PointsDetail */
11
  ?>
12
-
13
  <div class="std">
14
  <div class="page-title">
15
  <h1>
4
  * @package Auguria_Sponsorship
5
  * @author Auguria
6
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
7
+ */
8
  -->
9
+ <?php
10
  /* @var $this Auguria_Sponsorship_Block_Customer_Account_PointsDetail */
11
  ?>
12
+
13
  <div class="std">
14
  <div class="page-title">
15
  <h1>
app/locale/fr_FR/Auguria_Sponsorship.csv CHANGED
@@ -1,288 +1,293 @@
1
- Action,Action
2
- :You will receive an email with the discount code you can use on your next order.,: Vous recevrez un mail avec le code de réduction que vous pourrez utiliser lors de votre prochaine commande.
3
- '%s' is not a valid number.,'%s' n'est pas un nombre valide.
4
- '%s' is not an integer.,'%s' n'est pas un entier.
5
- '%s' is not greater than 0.,'%s' n'est pas supérieur à 0.
6
- * Required Fields,* Champs obligatoires
7
- %s is already an email to our customers,%s est déjà l'email d'un de nos clients
8
- %s points,%s points
9
- %s points exchange for customer (%s),Échange de points %s pour le client (%s)
10
- %s cash exchange,%s Échange d'argent
11
- %s sponsor points,Points de parrainage %s
12
- %s vouchers points exchange,%s échange de points en bon de réduction
13
- <a href='%s'>%s</a>,<a href='%s'>%s</a>
14
- A value is required.,Une valeur est requise.
15
- Accumulated mode options,Options du mode fidélité et parrainage accumulé
16
- Activated,Activé
17
- Active godsons:,Filleuls actifs :
18
- Add a change,Ajouter un échange
19
- Add a provider,Ajouter un fournisseur
20
- Add a sponsorship,Ajouter un parrainage
21
- Add an invitation,Ajouter une invitation
22
- Add Recipient,Ajouter un destinataire
23
- Add recipients,Ajoutez les destinataires.
24
- Add recipients.,Ajoutez les destinataires.
25
- Address book provider:,Fournisseur de carnet d'adresse :
26
- Administrator email,Email de l'administrateur
27
- Allow customers who have never ordered to send invitations,Autoriser les clients n'ayant jamais commandé à envoyer des invitations
28
- Allow customers who have never ordered to send sponsorship invitations,Autoriser les clients n'ayant jamais commandé à envoyer des invitations
29
- Allow to sponsor registred customers (but never ordered),Autoriser le parainage de clients déjà enregistrés (mais n'ayant jamais commandé)
 
30
  "Allows customers to import addressbook/contacts from different email providers like Yahoo, Gmail, Hotmail, Live etc. using different CMS software like Drupal, Joomla etc. or forum software like PHPBB, SMF etc. Learn more on <a href='http://openinviter.com'>openinviter.com</a>","Permet aux clients d'importer leur carnet d'adresse depuis plusieurs fournisseurs comme Yahoo, Gmail, Hotmail, Live etc. Plus de sétails sur <a href='http://openinviter.com'>openinviter.com</a>"
31
- Amount,Montant
32
- Amount of winning points for first order,Montant des points gagnés pour une première commande
33
- Amount of winning points for the first godson order,Montant des points gagnés lors de la première commande d'un filleul
34
- Amount of winning points when subscribe to newsletter on account creation,Montant des points gagnés si le client s'abonne à la newletter lors de son inscription
35
- An error occured while sending sponsor notification email.,Une erreur est survenue lors de l'envoi du mail de notification au parrain
36
- An error occurred while saving your request.,Une erreur est survenue lors de l'enregistrement de votre demande.
37
- An error occurred while sending mail.,Une erreur est survenue lors de l'envoi du mail.
38
  "An error occurred, the mail to %s could not be delivred.","Une erreur est survenue, le mail destiné à %s n'a pas pu être délivré."
39
- An exception occured !,Une exception s'est produite !
40
- And it ends as follows:,Et il se terminera comme suit :
41
- Are you sure to process mass action?,Êtes vous sure de vouloir procéder à une action de masse ?
42
- Automatic discount in cart,Remise automatique dans le panier
43
- Back,Retour
44
- But it could not be saved.,Mais il n'a pas pu être enregistré.
45
- Buying,Achat
46
- Buying cancellation,Annulation d'achat
47
- Calculation period of the maximum allowed for an individual (days),Période de calcul du maximum autorisé pour un particulier (jours)
48
- Company number,SIRET
49
- Cancel earned points on credit memo creation,Annuler les points gagnés lors de la création d'un avoir
50
- Cancel the use of points on credit memo creation,Annuler l'utilisation des points lors de la création d'un avoir
51
- Canceled,Annulé
52
- Cart exchange,Échange panier
53
- Cash,Cash
54
- cash,cash
55
- Cash Email Template, Gabarit du mail de l'échange de cash
56
- Cash exchange,Échange en cash
57
- Cash exchange,Échange de cash
58
- Cash exchange cancellation,Annulation échange de cash
59
- Cash exchange enabled,Échange en cash activé
60
- Change information,Information sur l'échange
61
- Change your points into:,Cliquez sur un des liens suivants pour changer vos points :
62
- Check or uncheck all,Tout sélectionner ou tout de-sélectionner
63
- Choose your provider,Choisissez votre fournisseur
64
- Conversion rate of points in currency,Taux de conversion des points en monnaie
65
- coupon,bon de réduction
66
- Coupon Email Template,Gabarit du mail d'envoi du bon de réduction
67
- Coupon exchange,Échange en bons de réductions
68
- Coupon exchange,Échange en bon de réduction
69
- Coupon exchange cancellation,Annulation échange en bon de réduction
70
- Creation date,Date de création
71
- Customer,Client
72
- Customer ID,ID Client
73
- Customer name,Nom client
74
- Date,Date
75
- Date first invitation,Date de la première invitation
76
- Date last mail,Date du dernier email
 
 
 
77
  "Dear %s %s,","Bonjour %s %s,"
78
- Details,Détails
79
- Edit,Éditer
80
- Edition of the change '%s',Édition de l'échange '%s'
81
- Edition of the invitation '%s',Édition de l'invitation '%s'
82
- Edition of the Open inviter provider '%s',Edition du fournisseur Open inviter '%s'
83
- Edition of the sponsorship '%s',Édition du parrainage '%s'
84
- Email Address:,Email :
85
- Email missing !,Il manque l'email !
86
- Email Providers,Fournisseurs de mails
87
- Email:,Email :
88
- Enable checking company number, Activer la vérification du SIRET
89
- Enter the cash you want.,Indiquez le cash que vous souhaitez obtenir.
90
- Enter the points you want to convert.,Indiquez les points que vous voulez convertir.
91
- Entries Per Page:,Nombre par page :
92
- Exchange detail,Détail échange
93
- Exchange of your %s points into %s,Échange de vos points %s en %s
94
- Expiry,Fin de validité
95
- Exported,Exporté
96
- Fidelity,Fidélité
97
- fidelity,fidélité
98
- Fidelity and separated mode options,Options du mode fidélité et séparé
99
- Fidelity and Sponsorship,Fidélité et Parrainage
100
- Fidelity and Sponsorship (accumulated),Fidélité et parrainage (accumulé)
101
- Fidelity and Sponsorship (separated),Fidélité et parrainage (séparé)
102
- Fidelity balance:,Solde fidélité :
103
- Fidelity module activated,Module de fidélité activé
104
- Fidelity options,Options de fidélité
105
- Fidelity points,Points fidélité
106
- Fidelity points and sponsorship management,Points de fidélité et gestion du parrainage
107
- Fidelity points by fixed amount,Points de fidélité en montant fixe
108
- Fidelity points by fixed amount for whole cart,Points de fidélités fixe sur tout le panier
109
- Fidelity points by percentage of the original price,Points de fidélité en pourcentage du prix
110
- Fidelity points management,Gestion des points de fidélité
111
- Fidelity points:,Points fidélité :
112
- First,Premier
113
- First name,Prénom
114
- First name:,Prénom :
115
- First order,Première commande
116
- gift,cadeau
117
- Gift exchange,Échange en cadeaux
118
- Gift exchange,Échange cadeau
119
- Gift exchange cancellation,Annulation échange cadeau
120
- Gift exchange enabled,Échange en cadeaux activé
121
- Gifts,Cadeaux
122
- Godchild first order,Première commande d'un filleul
123
- Godson,Filleul
124
- Godson ID,ID Filleul
125
- Godson name,Nom filleul
126
- Guest first name,Prénom invité
127
- Guest last name,Nom invité
128
- Guest mail,Email invité
129
- Guest name,Nom invité
130
- IBAN,IBAN
131
- ID,ID
132
- "If you uncheck this option, the option 'Maximum amount permitted without company number' will not be activated", "Si vous désactivez l'option, l'option 'Montant maximum autorisé sans SIRET' ne fonctionnera pas"
133
- Import Contacts,Importer contacts
134
- Import selected contacts,Importer les contacts sélectionnés
135
- Inactivity time before removal of the sponsorship link (days),Temps d'inactivité avant suppression du lien de parrainage (jours)
136
- "Invalid IBAN code ""%s""","Le code IBAN ""%s"" est invalide"
137
  "Invalid BIC code ""%s""","Le code BIC ""%s"" est invalide"
138
- Invitation detail,Détail de l'invitation
139
- Invitation does not exist,L'invitation n'existe pas
140
- Invitation Email Template,Gabarit du mail d'invitation
141
- Invitation information,Information sur l'invitation
142
- Invitation to %s,Invitation %s
143
- Invitation was successfully saved,L'invitation a bien été enregistrée
144
- Invitations list,Liste des invitations
145
- Last,Dernier
146
- Last name,Nom
147
- Last name:,Nom :
148
- Last order date,Date dernière commande
149
- Listing date,Date inscription
150
- loading,chargement
151
- Login failed. Please check the email and password you have provided and try again later !,L'authentification a échouée. Merci de vérifier votre identifiant et votre mot de passe.
152
- Manual changes,Modification manuelle
153
- Max invitations,Nombre max d'invitations
154
- Maximum amount permitted without company number,Montant maximum autorisé sans SIRET
155
- Maximum levels of sponsorship,Nombre maximum de niveaux de parrainage
156
- Message,Message
157
- Mode of the module,Mode du module
158
- Module,Module
159
- Movement,Mouvement
160
- My fidelity points,Mes points de fidélité
161
- My sponsor points,Mes points de parrainage
162
- Name:,Nom :
163
- Newsletter subscription,Abonnement à la newsletter
164
- Next,Suivant
165
- Notification Email Template,Gabarit du mail de notification
166
- Number of sponsorships,Nombre de parrainages
167
- of,sur
 
168
  "Once you will have points, you can change them into:","Lorsque vous aurez des points, vous pourrez les changer en :"
169
- Open inviter providers,Fournisseurs Open Inviter
170
- Or add recipient manually.,Ou ajoutez vos destinataires manuellement.
171
- Order,Commande
172
- Page,Page
173
- Password missing !,Il manque le mot de passe !
174
- Please check the form fields.,Veuillez vérifier les champs du formulaire.
175
  "Please enter the full email, not just the username","Merci d'indiquer votre email, et pas seulement votre nom d'utilisateur."
176
- Please select changes,Merci de sélectionner des échanges
177
- Points,Points
178
- Points balance:,Solde de vos points :
179
- Points calculation,Calcul des points
180
- Points exchanges list,Liste des échanges de points
181
- Points to exchange:,Points à échanger :
182
- Points validity in days(0 for unlimited),Validité des points en jours (0 pour illimité)
183
- Previous,Précèdent
184
- Principles of Sponsorship,Principes du parrainage
185
- Provider detail,Détail du fournisseur
186
- Provider missing !,Il manque le fournisseur !
187
- Provider was successfully deleted,Le fournisseur a bien été effacé
188
- Provider was successfully saved,Le fournisseur a bien été sauvegardé
189
- Ratio applied from level 2 to calculate the points of the sponsor (in percentage),"Ratio appliqué à partir du niveau 2, pour le calcul des points du parrain (en pourcentage)"
190
- Recall,Relancer
191
- Recall %s %s,Relance de %s %s
192
- Recipient:,Destinataire :
193
- Recipients:,Destinataires :
194
- Recovery date,Date de relance
195
- Related ID,ID parent
196
- Related mail,Email parent
197
- Related name,Nom parent
198
- Remove Recipient,Supprimer le destinataire
199
- Required Fields,Champs obligatoires
200
- Select recipients from your address book:,Sélectionnez les destinataires dans votre carnet d'adresses :
201
- Select recipients from your address book.,Sélectionnez les destinataires à partir de votre carnet d'adresses.
202
- Select your provider and sign in:,Sélectionnez votre fournisseur et identifiez vous :
203
- Send email,Envoyer l'email
204
- Send notification to sponsor when godchild make him earn points,Envoyer une notification au parrain lorsqu'un filleul lui fait gagner des points
205
- Sender:,Expéditeur :
206
- Social Networks,Réseaux sociaux
207
- Solved,Réglé
208
- Special Rate,Taux spécial
209
- Special rate,Taux spécial
210
- Sponsor,Parrain
211
- sponsor,parrainage
212
- Sponsor friends,Parrainez des amis
213
- Sponsor ID,ID parrain
214
- Sponsor points ,Points parrainage
215
- Sponsorship,Parrainage
216
- Sponsorship and separated mode options,Options du mode parrainage et séparé
217
- Sponsorship balance:,Solde parrainage :
218
- Sponsorship coupon,Bon de réduction parrainage
219
- Sponsorship date,Date de parrainage
220
- Sponsorship detail,Détail parrainage
221
- Sponsorship information,Information sur le parrainage
222
- Sponsorship invitation,Invitation parrainage
223
- Sponsorship mail options,Options des mails de parrainage
224
- Sponsorship management,Gestion du parrainage
225
- Sponsorship module activated,Module de parrainage activé
226
- Sponsorship notification,Notification du parrain
227
- Sponsorship options,Options de parrainage
228
- Sponsorship points,Points parrainage
229
- Sponsorship points by fixed amount,Points de parrainage en montant fixe
230
- Sponsorship points by fixed amount for whole cart,Points de parrainage fixe sur tout le panier
231
- Sponsorship points by percentage of the original price,Points de parrainage en pourcentage du prix
232
- Sponsorship points:,Points parrainage :
233
- Sponsorship was successfully saved,Le parrainage a bien été mis à jour
234
- Sponsorships list,Liste des parrainages
235
- Status,Statut
236
- Subject:,Sujet :
237
- The change has been successfully recorded,L'échange a bien été enregistré
238
- The exchange of %s points in %s is disabled.,Le change des points %s en %s est désactivé.
239
- The gifts exchange is not yet implemented.,L'échange en cadeaux n'est pas encore disponible.
240
- This change doesn't exist,L'échange n'existe pas
241
- This sponsorship doesn't exist,Ce parrainage n'existe pas
242
- Time to send it automatically (days),Temps avant la relance automatique (jours)
243
- Time validity invitations (days),Temps de validité des invitations (jours)
 
244
  "To change more cash, you must specify a company number.","Pour changer plus de cash, vous devez indiquer un numéro SIRET."
245
  "To change your points into cash, you must indicate your IBAN and BIC.","Pour changer vos points en cash, vous devez indiquer votre code IBAN et BIC."
246
- Type,Type
247
- Unable to find change to save,Impossible de trouver l'échange à enregistrer
248
- Unable to find invitation to save,Impossible de trouver l'invitation à enregistrer
249
- Unable to find sponsorship to save,Impossible de trouver le parrainage à enregistrer
250
- Unable to get contacts !,Impossible de récupérer les contacts !
251
- Update status,Modifier le statut
252
- Use of your fidelity points,Utilisation de vos points fidélité
253
- Use of your points,Utilisation de vos points
254
- Use of your sponsorship points,Utilisation de vos points parrainage
255
- Validate,Valider
256
- Validity fidelity points ,Validité des points de fidélité
257
- Validity points,Validité des points
258
- Validity sponsorship points ,Validité des points de parrainage
259
- Value,Valeur
260
- Voucher exchange enabled,Échange en bons de réductions activé
261
- Voucher exchange mail options,Options des mails d'échange de points en bon de réduction
262
- Vouchers,Bons de réduction
263
- Vouchers:,Bons de réduction :
264
- Waiting,En attente
265
- Winning,Points gagnés
266
- worth %s,soit %s
267
- Cash exchange mail options,Options des mails d'échange de cash
268
- A customer wants to exchange %s Euros,Un client souhaite échanger %s Euros
269
- You can't send an invitation to yourself,Vous ne pouvez pas vous envoyer une invitation à vous même.
270
- You do not have active godson.,Vous n'avez pas de filleul actif.
271
- You do not have as many points.,Vous ne disposez pas d'autant de points.
272
- You do not have yet send invit.,Vous n'avez pas encore envoyé d'invitation.
273
- You have %d points.,Vous disposez de %d points.
274
- You must already have purchased to sponsor.,Vous devez déjà avoir commandé pour parrainer.
275
- You should visit this website. It offers interesting products.,Tu devrais aller sur ce site. Ils ont des produits intéressants.
276
- Your email has been successfully sent.,Votre email a bien été envoyé.
277
- Your godsons,Vos filleuls
278
- Your invitations,Vos invitations
279
- Your lastest orders,Vos dernières commandes
280
- Your login:,Votre identifiant :
281
  "Your mail has not been sent, please try again later.","Votre mail n'a pas pu être délivré, veuillez essayer plus tard."
282
- Your message,Votre message
283
- Your message will be preceded by:,Votre message sera précédé de :
284
- Your message will ends as follows:,Votre message se terminera comme suit :
285
- Your message:,Votre message :
286
- Your points are valid until the %s,Vos points sont valables jusqu’au %s
287
- Your points exchanges:,Vos échanges de points :
288
  "Your request has been submitted, you will soon receive an email confirmation.","Votre demande a bien été transmise, vous recevrez bientôt un mail de confirmation."
1
+ ":You will receive an email with the discount code you can use on your next order.",": Vous recevrez un mail avec le code de réduction que vous pourrez utiliser lors de votre prochaine commande."
2
+ "'%s' is not a valid number.","'%s' n'est pas un nombre valide."
3
+ "'%s' is not an integer.","'%s' n'est pas un entier."
4
+ "'%s' is not greater than 0.","'%s' n'est pas supérieur à 0."
5
+ "* Required Fields","* Champs obligatoires"
6
+ "%s cash exchange","%s Échange d'argent"
7
+ "%s is already an email to our customers","%s est déjà l'email d'un de nos clients"
8
+ "%s points","%s points"
9
+ "%s points exchange for customer (%s)","Échange de points %s pour le client (%s)"
10
+ "%s sponsor points","Points de parrainage %s"
11
+ "%s vouchers points exchange","%s échange de points en bon de réduction"
12
+ "<a href='%s'>%s</a>","<a href='%s'>%s</a>"
13
+ "A customer wants to exchange %s Euros","Un client souhaite échanger %s Euros"
14
+ "A value is required.","Une valeur est requise."
15
+ "Accumulated mode options","Options du mode fidélité et parrainage accumulé"
16
+ "Action","Action"
17
+ "Activated","Activé"
18
+ "Active godsons:","Filleuls actifs :"
19
+ "Add a change","Ajouter un échange"
20
+ "Add a provider","Ajouter un fournisseur"
21
+ "Add a sponsorship","Ajouter un parrainage"
22
+ "Add an invitation","Ajouter une invitation"
23
+ "Add Recipient","Ajouter un destinataire"
24
+ "Add recipients","Ajoutez les destinataires."
25
+ "Add recipients.","Ajoutez les destinataires."
26
+ "Address book provider:","Fournisseur de carnet d'adresse :"
27
+ "Administrator email","Email de l'administrateur"
28
+ "Allow customers who have never ordered to send invitations","Autoriser les clients n'ayant jamais commandé à envoyer des invitations"
29
+ "Allow customers who have never ordered to send sponsorship invitations","Autoriser les clients n'ayant jamais commandé à envoyer des invitations"
30
+ "Allow to sponsor registred customers (but never ordered)","Autoriser le parainage de clients déjà enregistrés (mais n'ayant jamais commandé)"
31
  "Allows customers to import addressbook/contacts from different email providers like Yahoo, Gmail, Hotmail, Live etc. using different CMS software like Drupal, Joomla etc. or forum software like PHPBB, SMF etc. Learn more on <a href='http://openinviter.com'>openinviter.com</a>","Permet aux clients d'importer leur carnet d'adresse depuis plusieurs fournisseurs comme Yahoo, Gmail, Hotmail, Live etc. Plus de sétails sur <a href='http://openinviter.com'>openinviter.com</a>"
32
+ "Amount","Montant"
33
+ "Amount of winning points for first order","Montant des points gagnés pour une première commande"
34
+ "Amount of winning points for the first godson order","Montant des points gagnés lors de la première commande d'un filleul"
35
+ "Amount of winning points when subscribe to newsletter on account creation","Montant des points gagnés si le client s'abonne à la newletter lors de son inscription"
36
+ "An error occured while sending sponsor notification email.","Une erreur est survenue lors de l'envoi du mail de notification au parrain"
37
+ "An error occurred while saving your request.","Une erreur est survenue lors de l'enregistrement de votre demande."
38
+ "An error occurred while sending mail.","Une erreur est survenue lors de l'envoi du mail."
39
  "An error occurred, the mail to %s could not be delivred.","Une erreur est survenue, le mail destiné à %s n'a pas pu être délivré."
40
+ "An exception occured !","Une exception s'est produite !"
41
+ "And it ends as follows:","Et il se terminera comme suit :"
42
+ "Are you sure to process mass action?","Êtes vous sure de vouloir procéder à une action de masse ?"
43
+ "Automatic discount in cart","Remise automatique dans le panier"
44
+ "Back","Retour"
45
+ "But it could not be saved.","Mais il n'a pas pu être enregistré."
46
+ "Buying","Achat"
47
+ "Buying cancellation","Annulation d'achat"
48
+ "Calculation period of the maximum allowed for an individual (days)","Période de calcul du maximum autorisé pour un particulier (jours)"
49
+ "Cancel earned points on credit memo creation","Annuler les points gagnés lors de la création d'un avoir"
50
+ "Cancel the use of my %s points","Annuler l'utilisation de mes points %s"
51
+ "Cancel the use of points on credit memo creation","Annuler l'utilisation des points lors de la création d'un avoir"
52
+ "Canceled","Annulé"
53
+ "cart","panier"
54
+ "Cart exchange","Échange panier"
55
+ "Cash","Cash"
56
+ "cash","cash"
57
+ "Cash Email Template"," Gabarit du mail de l'échange de cash"
58
+ "Cash exchange","Échange en cash"
59
+ "Cash exchange","Échange de cash"
60
+ "Cash exchange cancellation","Annulation échange de cash"
61
+ "Cash exchange enabled","Échange en cash activé"
62
+ "Cash exchange mail options","Options des mails d'échange de cash"
63
+ "Change information","Information sur l'échange"
64
+ "Change your points into:","Cliquez sur un des liens suivants pour changer vos points :"
65
+ "Check or uncheck all","Tout sélectionner ou tout de-sélectionner"
66
+ "Choose your provider","Choisissez votre fournisseur"
67
+ "Company number","SIRET"
68
+ "Conversion rate of points in currency","Taux de conversion des points en monnaie"
69
+ "coupon","bon de réduction"
70
+ "Coupon Email Template","Gabarit du mail d'envoi du bon de réduction"
71
+ "Coupon exchange","Échange en bons de réductions"
72
+ "Coupon exchange","Échange en bon de réduction"
73
+ "Coupon exchange cancellation","Annulation échange en bon de réduction"
74
+ "Creation date","Date de création"
75
+ "Customer","Client"
76
+ "Customer ID","ID Client"
77
+ "Customer name","Nom client"
78
+ "Date","Date"
79
+ "Date first invitation","Date de la première invitation"
80
+ "Date last mail","Date du dernier email"
81
  "Dear %s %s,","Bonjour %s %s,"
82
+ "Details","Détails"
83
+ "Edit","Éditer"
84
+ "Edition of the change '%s'","Édition de l'échange '%s'"
85
+ "Edition of the invitation '%s'","Édition de l'invitation '%s'"
86
+ "Edition of the Open inviter provider '%s'","Edition du fournisseur Open inviter '%s'"
87
+ "Edition of the sponsorship '%s'","Édition du parrainage '%s'"
88
+ "Email Address:","Email :"
89
+ "Email missing !","Il manque l'email !"
90
+ "Email Providers","Fournisseurs de mails"
91
+ "Email:","Email :"
92
+ "Enable checking company number"," Activer la vérification du SIRET"
93
+ "Enter the cash you want.","Indiquez le cash que vous souhaitez obtenir."
94
+ "Enter the points you want to convert.","Indiquez les points que vous voulez convertir."
95
+ "Entries Per Page:","Nombre par page :"
96
+ "Exchange detail","Détail échange"
97
+ "Exchange of your %s points into %s","Échange de vos points %s en %s"
98
+ "Expiry","Fin de validité"
99
+ "Exported","Exporté"
100
+ "Fidelity","Fidélité"
101
+ "fidelity","fidélité"
102
+ "Fidelity and separated mode options","Options du mode fidélité et séparé"
103
+ "Fidelity and Sponsorship","Fidélité et Parrainage"
104
+ "Fidelity and Sponsorship (accumulated)","Fidélité et parrainage (accumulé)"
105
+ "Fidelity and Sponsorship (separated)","Fidélité et parrainage (séparé)"
106
+ "Fidelity balance:","Solde fidélité :"
107
+ "Fidelity module activated","Module de fidélité activé"
108
+ "Fidelity options","Options de fidélité"
109
+ "Fidelity points","Points fidélité"
110
+ "Fidelity points and sponsorship management","Points de fidélité et gestion du parrainage"
111
+ "Fidelity points by fixed amount","Points de fidélité en montant fixe"
112
+ "Fidelity points by fixed amount for whole cart","Points de fidélités fixe sur tout le panier"
113
+ "Fidelity points by percentage of the original price","Points de fidélité en pourcentage du prix"
114
+ "Fidelity points management","Gestion des points de fidélité"
115
+ "Fidelity points:","Points fidélité :"
116
+ "First","Premier"
117
+ "First name","Prénom"
118
+ "First name:","Prénom :"
119
+ "First order","Première commande"
120
+ "gift","cadeau"
121
+ "Gift exchange","Échange en cadeaux"
122
+ "Gift exchange","Échange cadeau"
123
+ "Gift exchange cancellation","Annulation échange cadeau"
124
+ "Gift exchange enabled","Échange en cadeaux activé"
125
+ "Gifts","Cadeaux"
126
+ "Godchild first order","Première commande d'un filleul"
127
+ "Godson","Filleul"
128
+ "Godson ID","ID Filleul"
129
+ "Godson name","Nom filleul"
130
+ "Guest first name","Prénom invité"
131
+ "Guest last name","Nom invité"
132
+ "Guest mail","Email invité"
133
+ "Guest name","Nom invité"
134
+ "IBAN","IBAN"
135
+ "ID","ID"
136
+ "If you uncheck this option, the option 'Maximum amount permitted without company number' will not be activated","Si vous désactivez l'option, l'option 'Montant maximum autorisé sans SIRET' ne fonctionnera pas"
137
+ "Import Contacts","Importer contacts"
138
+ "Import selected contacts","Importer les contacts sélectionnés"
139
+ "Inactivity time before removal of the sponsorship link (days)","Temps d'inactivité avant suppression du lien de parrainage (jours)"
 
140
  "Invalid BIC code ""%s""","Le code BIC ""%s"" est invalide"
141
+ "Invalid IBAN code ""%s""","Le code IBAN ""%s"" est invalide"
142
+ "Invitation detail","Détail de l'invitation"
143
+ "Invitation does not exist","L'invitation n'existe pas"
144
+ "Invitation Email Template","Gabarit du mail d'invitation"
145
+ "Invitation information","Information sur l'invitation"
146
+ "Invitation to %s","Invitation %s"
147
+ "Invitation was successfully saved","L'invitation a bien été enregistrée"
148
+ "Invitations list","Liste des invitations"
149
+ "Last","Dernier"
150
+ "Last name","Nom"
151
+ "Last name:","Nom :"
152
+ "Last order date","Date dernière commande"
153
+ "Listing date","Date inscription"
154
+ "loading","chargement"
155
+ "Login failed. Please check the email and password you have provided and try again later !","L'authentification a échouée. Merci de vérifier votre identifiant et votre mot de passe."
156
+ "Manual changes","Modification manuelle"
157
+ "Max invitations","Nombre max d'invitations"
158
+ "Maximum amount permitted without company number","Montant maximum autorisé sans SIRET"
159
+ "Maximum levels of sponsorship","Nombre maximum de niveaux de parrainage"
160
+ "Message","Message"
161
+ "Mode of the module","Mode du module"
162
+ "Module","Module"
163
+ "Movement","Mouvement"
164
+ "My fidelity points","Mes points de fidélité"
165
+ "My sponsor points","Mes points de parrainage"
166
+ "Name:","Nom :"
167
+ "Newsletter subscription","Abonnement à la newsletter"
168
+ "Next","Suivant"
169
+ "Notification Email Template","Gabarit du mail de notification"
170
+ "Number of sponsorships","Nombre de parrainages"
171
+ "of","sur"
172
  "Once you will have points, you can change them into:","Lorsque vous aurez des points, vous pourrez les changer en :"
173
+ "Open inviter providers","Fournisseurs Open Inviter"
174
+ "Or add recipient manually.","Ou ajoutez vos destinataires manuellement."
175
+ "Order","Commande"
176
+ "Page","Page"
177
+ "Password missing !","Il manque le mot de passe !"
178
+ "Please check the form fields.","Veuillez vérifier les champs du formulaire."
179
  "Please enter the full email, not just the username","Merci d'indiquer votre email, et pas seulement votre nom d'utilisateur."
180
+ "Please select changes","Merci de sélectionner des échanges"
181
+ "Points","Points"
182
+ "Points balance:","Solde de vos points :"
183
+ "Points calculation","Calcul des points"
184
+ "Points exchanges list","Liste des échanges de points"
185
+ "Points to exchange:","Points à échanger :"
186
+ "Points validity in days(0 for unlimited)","Validité des points en jours (0 pour illimité)"
187
+ "Previous","Précèdent"
188
+ "Principles of Sponsorship","Principes du parrainage"
189
+ "Provider detail","Détail du fournisseur"
190
+ "Provider missing !","Il manque le fournisseur !"
191
+ "Provider was successfully deleted","Le fournisseur a bien été effacé"
192
+ "Provider was successfully saved","Le fournisseur a bien été sauvegardé"
193
+ "Ratio applied from level 2 to calculate the points of the sponsor (in percentage)","Ratio appliqué à partir du niveau 2, pour le calcul des points du parrain (en pourcentage)"
194
+ "Recall","Relancer"
195
+ "Recall %s %s","Relance de %s %s"
196
+ "Recipient:","Destinataire :"
197
+ "Recipients:","Destinataires :"
198
+ "Recovery date","Date de relance"
199
+ "Related ID","ID parent"
200
+ "Related mail","Email parent"
201
+ "Related name","Nom parent"
202
+ "Remove Recipient","Supprimer le destinataire"
203
+ "Required Fields","Champs obligatoires"
204
+ "Select recipients from your address book:","Sélectionnez les destinataires dans votre carnet d'adresses :"
205
+ "Select recipients from your address book.","Sélectionnez les destinataires à partir de votre carnet d'adresses."
206
+ "Select your provider and sign in:","Sélectionnez votre fournisseur et identifiez vous :"
207
+ "Send email","Envoyer l'email"
208
+ "Send notification to sponsor when godchild make him earn points","Envoyer une notification au parrain lorsqu'un filleul lui fait gagner des points"
209
+ "Sender:","Expéditeur :"
210
+ "Social Networks","Réseaux sociaux"
211
+ "Solved","Réglé"
212
+ "Special Rate","Taux spécial"
213
+ "Special rate","Taux spécial"
214
+ "Sponsor","Parrain"
215
+ "sponsor","parrainage"
216
+ "Sponsor friends","Parrainez des amis"
217
+ "Sponsor ID","ID parrain"
218
+ "Sponsor points ","Points parrainage"
219
+ "Sponsorship","Parrainage"
220
+ "Sponsorship and fidelity discount","Remise fidélité et parrainage"
221
+ "Sponsorship and separated mode options","Options du mode parrainage et séparé"
222
+ "Sponsorship balance:","Solde parrainage :"
223
+ "Sponsorship coupon","Bon de réduction parrainage"
224
+ "Sponsorship date","Date de parrainage"
225
+ "Sponsorship detail","Détail parrainage"
226
+ "Sponsorship information","Information sur le parrainage"
227
+ "Sponsorship invitation","Invitation parrainage"
228
+ "Sponsorship mail options","Options des mails de parrainage"
229
+ "Sponsorship management","Gestion du parrainage"
230
+ "Sponsorship module activated","Module de parrainage activé"
231
+ "Sponsorship notification","Notification du parrain"
232
+ "Sponsorship options","Options de parrainage"
233
+ "Sponsorship points","Points parrainage"
234
+ "Sponsorship points by fixed amount","Points de parrainage en montant fixe"
235
+ "Sponsorship points by fixed amount for whole cart","Points de parrainage fixe sur tout le panier"
236
+ "Sponsorship points by percentage of the original price","Points de parrainage en pourcentage du prix"
237
+ "Sponsorship points:","Points parrainage :"
238
+ "Sponsorship was successfully saved","Le parrainage a bien été mis à jour"
239
+ "Sponsorships list","Liste des parrainages"
240
+ "Status","Statut"
241
+ "Subject:","Sujet :"
242
+ "The change has been successfully recorded","L'échange a bien été enregistré"
243
+ "The exchange of %s points in %s is disabled.","Le change des points %s en %s est désactivé."
244
+ "The gifts exchange is not yet implemented.","L'échange en cadeaux n'est pas encore disponible."
245
+ "This change doesn't exist","L'échange n'existe pas"
246
+ "This sponsorship doesn't exist","Ce parrainage n'existe pas"
247
+ "Time to send it automatically (days)","Temps avant la relance automatique (jours)"
248
+ "Time validity invitations (days)","Temps de validité des invitations (jours)"
249
  "To change more cash, you must specify a company number.","Pour changer plus de cash, vous devez indiquer un numéro SIRET."
250
  "To change your points into cash, you must indicate your IBAN and BIC.","Pour changer vos points en cash, vous devez indiquer votre code IBAN et BIC."
251
+ "Type","Type"
252
+ "Unable to find change to save","Impossible de trouver l'échange à enregistrer"
253
+ "Unable to find invitation to save","Impossible de trouver l'invitation à enregistrer"
254
+ "Unable to find sponsorship to save","Impossible de trouver le parrainage à enregistrer"
255
+ "Unable to get contacts !","Impossible de récupérer les contacts !"
256
+ "Update status","Modifier le statut"
257
+ "Use my points","Utiliser mes points"
258
+ "Use of your fidelity points","Utilisation de vos points fidélité"
259
+ "Use of your points","Utilisation de vos points"
260
+ "Use of your sponsorship points","Utilisation de vos points parrainage"
261
+ "Validate","Valider"
262
+ "Validity fidelity points ","Validité des points de fidélité"
263
+ "Validity points","Validité des points"
264
+ "Validity sponsorship points ","Validité des points de parrainage"
265
+ "Value","Valeur"
266
+ "Voucher exchange enabled","Échange en bons de réductions activé"
267
+ "Voucher exchange mail options","Options des mails d'échange de points en bon de réduction"
268
+ "Vouchers","Bons de réduction"
269
+ "Vouchers:","Bons de réduction :"
270
+ "Waiting","En attente"
271
+ "Winning","Points gagnés"
272
+ "worth %s","soit %s"
273
+ "You can't send an invitation to yourself","Vous ne pouvez pas vous envoyer une invitation à vous même."
274
+ "You do not have active godson.","Vous n'avez pas de filleul actif."
275
+ "You do not have as many points.","Vous ne disposez pas d'autant de points."
276
+ "You do not have yet send invit.","Vous n'avez pas encore envoyé d'invitation."
277
+ "You have %d points %s equivalent to %s","Vous disposez de %d points %s équivalent à %s"
278
+ "You have %d points.","Vous disposez de %d points."
279
+ "You must already have purchased to sponsor.","Vous devez déjà avoir commandé pour parrainer."
280
+ "You should visit this website. It offers interesting products.","Tu devrais aller sur ce site. Ils ont des produits intéressants."
281
+ "Your email has been successfully sent.","Votre email a bien été envoyé."
282
+ "Your godsons","Vos filleuls"
283
+ "Your invitations","Vos invitations"
284
+ "Your lastest orders","Vos dernières commandes"
285
+ "Your login:","Votre identifiant :"
286
  "Your mail has not been sent, please try again later.","Votre mail n'a pas pu être délivré, veuillez essayer plus tard."
287
+ "Your message","Votre message"
288
+ "Your message will be preceded by:","Votre message sera précédé de :"
289
+ "Your message will ends as follows:","Votre message se terminera comme suit :"
290
+ "Your message:","Votre message :"
291
+ "Your points are valid until the %s","Vos points sont valables jusqu’au %s"
292
+ "Your points exchanges:","Vos échanges de points :"
293
  "Your request has been submitted, you will soon receive an email confirmation.","Votre demande a bien été transmise, vous recevrez bientôt un mail de confirmation."
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Auguria_Sponsorship</name>
4
- <version>1.3.43</version>
5
  <stability>stable</stability>
6
  <license>OSL 3.0</license>
7
  <channel>community</channel>
@@ -24,14 +24,13 @@ Once installed, you must:&#xD;
24
  - Create one or several catalog or cart rules for increment fidelity and sponsorship points&#xD;
25
  - Edit CMS Page on sponsorship information&#xD;
26
  - If you enable automatic sponsorship recall, activate magento cron</description>
27
- <notes>- fixed a bug on install&#xD;
28
- &#xD;
29
- Call to undefined method Mage_Sales_Model_Mysql4_Setup::hasSponsorshipInstall() [...] app\code\community\Auguria\Sponsorship\sql\auguria_sponsorship_setup\mysql4-upgrade-0.1.2-0.1.3.php on line 10&#xD;
30
  </notes>
31
  <authors><author><name>Auguria</name><user>Auguria</user><email>magento@auguria.net</email></author></authors>
32
- <date>2013-11-22</date>
33
- <time>18:17:23</time>
34
- <contents><target name="magecommunity"><dir name="Auguria"><dir name="Sponsorship"><dir name="Block"><dir name="Adminhtml"><dir name="Change"><dir name="Edit"><file name="Form.php" hash="ae7412b583874b8fffc05cc3897f1a2b"/><dir name="Tab"><file name="Form.php" hash="7271b9c47190cdff0b2af24968c4e155"/></dir><file name="Tabs.php" hash="2c8257d215289d5ae86c985f42721650"/></dir><file name="Edit.php" hash="856fb2d016982d1c1f47c462195e7f39"/><file name="Grid.php" hash="39bae596eb7cd73879a5e769d82c00db"/></dir><file name="Change.php" hash="b9046a8e50dceaacc6d248471275a9ca"/><dir name="Customer"><dir name="Tabs"><file name="Sponsorship.php" hash="a32d0d1979be05d6a37bb928820b6e04"/></dir></dir><dir name="Link"><dir name="Edit"><file name="Form.php" hash="e6e087ae96b24d4edbe9e1f578e7a55a"/><dir name="Tab"><file name="Form.php" hash="89cf7a2479cd6b5606884a73d9122d4a"/></dir><file name="Tabs.php" hash="fd3d95a2cfe3e194d26ba94c45353bf1"/></dir><file name="Edit.php" hash="4ecef8c6e59c6642a6b3348ae24d5ab8"/><file name="Grid.php" hash="17bb23c2a473542e44d3e2878c61af58"/></dir><file name="Link.php" hash="4c9673d016652b74338b8e5ed49b5240"/><dir name="Openinviter"><dir name="Edit"><file name="Form.php" hash="b4bdc64549563f0117f65c66f97d0fb8"/><dir name="Tab"><file name="Form.php" hash="a0f4530da07ba12f9d4aa53c612cca09"/></dir><file name="Tabs.php" hash="a7595c7aab4bb62da7a55674bac936e8"/></dir><file name="Edit.php" hash="79c8c3b6ca7d0e07e9a9cb8ddc18a9c5"/><file name="Grid.php" hash="7c323452ac344c6bb446d90f7c42e11c"/></dir><file name="Openinviter.php" hash="2fbf061ee8aaff7ee34a9f5b723d84c0"/><dir name="Sales"><dir name="Order"><dir name="Invoice"><file name="Totals.php" hash="292697b2443939616b7db683ecfe64d0"/></dir><file name="Totals.php" hash="e174624626a3d4952b257f4a9481f471"/></dir></dir><dir name="Sponsorship"><dir name="Edit"><file name="Form.php" hash="a3a2352db1c72663af0caa289287a9d2"/><dir name="Tab"><file name="Form.php" hash="ac62217927d4092f047b8fb8b849668f"/></dir><file name="Tabs.php" hash="88eb68796c7de324dc1cdea77deaa4ae"/></dir><file name="Edit.php" hash="7ae0b40486d27042caa70bf42c747383"/><file name="Grid.php" hash="a10dd155e32fea5c218880211573832d"/></dir><file name="Sponsorship.php" hash="6d133ec629d775d5e23b7967bb7bcc78"/><dir name="Widget"><dir name="Grid"><file name="Renderer.php" hash="35c8a336e1a0e2dcc8d48b558cee9253"/></dir></dir></dir><dir name="Customer"><dir name="Account"><file name="PointsDetail.php" hash="21feb78a8244d90a0acfe920f89eab3c"/></dir><dir name="Form"><file name="Boost.php" hash="18c1f531695bc529103af1bc4c3394d6"/><file name="PointsChange.php" hash="db26c8991b5ba182662424f94f020cd2"/></dir><file name="Javascript.php" hash="dc15b84e9428b848bb9194f219ad4885"/><dir name="Widget"><file name="Virement.php" hash="cafde77d6d5504ae64c63fc9732a3461"/></dir></dir><file name="Openinviter.php" hash="21ef404cb6b1d609cfd75d67274efc1c"/><dir name="Promo"><dir name="Catalog"><dir name="Edit"><dir name="Tab"><file name="Actions.php" hash="f5926196fd291cb45c13b5a8e1c018b6"/></dir></dir></dir><dir name="Quote"><dir name="Edit"><dir name="Tab"><file name="Actions.php" hash="4ff4de9b5e4d5200111d602625f91362"/></dir></dir></dir></dir><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="da373c7bfc6dadefa78f38ac96a0e7c4"/></dir></dir><file name="Sponsorship.php" hash="b38d23fea90cf387b00508c264da736c"/></dir><dir name="Helper"><file name="Config.php" hash="c8b156ac74a6117bc99a0cef16d675da"/><file name="Data.php" hash="ab6aad8d2d024aceb0530f2a3f2dd42f"/><file name="Mail.php" hash="cf14e468758d6ce250ffc8b60533fed4"/></dir><dir name="Lib"><dir name="OpenInviter"><file name="LICENSE.txt" hash="277c3d400c7488e54746141297a952cb"/><file name="POLICY.txt" hash="6262372bc84e172c7fd89d9ac61f9794"/><file name="autoupdate.php" hash="df781d645e37271f23432bb82b3360a2"/><dir name="conf"><file name="_hosted.conf" hash="1d09309103e660729b492433acda9822"/><file name="abv.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="aol.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="apropo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="atlas.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="aussiemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="azet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="badoo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bebo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bigstring.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="bookcrossing.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bordermail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="brazencareerist.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="canoe.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="care2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="clevergo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="cyworld.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="doramail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="eons.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="evite.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="facebook.conf" hash="12cfb187449596c39774c4ac193295cc"/><file name="faces.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="famiva.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="fastmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="fdcareer.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flickr.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flingr.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flixster.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="fm5.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="freemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="friendfeed.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="friendster.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="gawab.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="gmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="gmx_net.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="graffiti.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hi5.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="hotmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hushmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hyves.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="inbox.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="india.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="indiatimes.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="inet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="interia.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="katamail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="kids.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="kincafe.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="konnects.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="koolro.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lastfm.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="libero.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="linkedin.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="livejournal.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lovento.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lycos.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail2world.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_com.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_in.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_ru.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="meinvz.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="meta.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mevio.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="motortopia.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="msn.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="multiply.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mycatspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mydogspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mynet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="myspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="netaddress.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="netlog.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="ning.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="nz11.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="o2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="operamail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="orkut.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="perfspot.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plaxo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plazes.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plurk.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="pochta.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="popstarmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="rambler.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="rediff.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="sapo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="skyrock.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="tagged.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="techemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="terra.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="twitter.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="uk2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="vimeo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="virgilio.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="vkontakte.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="walla.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="web_de.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="wpl.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="xanga.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="xing.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="xuqa.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="yahoo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="yandex.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="youtube.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="zapak.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/></dir><file name="config.php" hash="5d26c1c274de93252c6d076c11fd5a4f"/><dir name="images"><file name="ers.gif" hash="cccdfd4ed0795b767d2a01f531781c10"/><file name="oks.gif" hash="6b4b170c9f10a0fa4b25307dd8f47e5b"/></dir><file name="notifier.php" hash="88e3be687de995aae52a8ce248c49bce"/><file name="openinviter.php" hash="d2c0237f86cd7c21dadc2c441e73abb1"/><dir name="plugins"><file name="_base.php" hash="79459bef6fcea96f6a7d4a584add9052"/><file name="_hosted.plg.php" hash="69514e56e1833df16884b6762bc620ce"/><file name="abv.plg.php" hash="1685755eae909c468055b9b36c915822"/><file name="aol.plg.php" hash="dd3522033c2cafeb62fd0beed5949bcf"/><file name="apropo.plg.php" hash="4426f976c1953383cf9d1f892aa9576e"/><file name="atlas.plg.php" hash="0b8e4237970ae54ff20187f5e861f972"/><file name="aussiemail.plg.php" hash="d40188b33455b3fd2e88cbde25f61709"/><file name="azet.plg.php" hash="e4a7c19450ca1ad84783a06ae3b1d61f"/><file name="badoo.plg.php" hash="b1d4863a173a80fc9d77331f1e60f2df"/><file name="bebo.plg.php" hash="2d7db898c660380ee74963667bec6bae"/><file name="bigstring.plg.php" hash="7de7a5516a8f0c71580970d8da4121eb"/><file name="bookcrossing.plg.php" hash="212a53a3a95659c56e15d6848549e25e"/><file name="bordermail.plg.php" hash="30190fa3da58d63ddd7e30e6ab0190dc"/><file name="brazencareerist.plg.php" hash="c68f39b6d7a07550abd63ed044ad85c2"/><file name="canoe.plg.php" hash="7737d89b163689cb793f0f37f6028efb"/><file name="care2.plg.php" hash="c066e81973194cca90036c37c7740937"/><file name="clevergo.plg.php" hash="9bd12fea0eb7f60043bcdca9116cb1bc"/><file name="cyworld.plg.php" hash="588dfdddcc2bc9ab2ff26c4616e0a42c"/><file name="doramail.plg.php" hash="81037085958f90a05111ad030c5a72f8"/><file name="eons.plg.php" hash="35009d6e25ae5584c554808b50145a19"/><file name="evite.plg.php" hash="d6c8acf7c24c2848eccedb269928d6eb"/><file name="facebook.plg.php" hash="6a1cfdc0dfc76b3dc3781aa2327ee833"/><file name="faces.plg.php" hash="d0affdf4e73ff6134acfaae5fda29323"/><file name="famiva.plg.php" hash="eee1c0a9a6d645baf014245ca2e9c3e9"/><file name="fastmail.plg.php" hash="da86fea25210ed40258ae2a107dcfe8f"/><file name="fdcareer.plg.php" hash="aad3d525fe09269de056f8ec03e43104"/><file name="flickr.plg.php" hash="055d1e64f116113379e3192b23dc84fc"/><file name="flingr.plg.php" hash="c2b415851babadb8048609874b411979"/><file name="flixster.plg.php" hash="773fad1c2c1775fcb74fb33f51d1fa24"/><file name="fm5.plg.php" hash="0576df91534edaab3d6b333d1968781a"/><file name="freemail.plg.php" hash="142951e9c20ce4447f44c6db7e5cc2e8"/><file name="friendfeed.plg.php" hash="399c987766110735fdd301979997fe48"/><file name="friendster.plg.php" hash="8b3402876a73bf91a84d3a6d8dbb1951"/><file name="gawab.plg.php" hash="c4cb42d893a99b370d9597f20da5c01e"/><file name="gmail.plg.php" hash="83d92f7f75e048210aec2fdecdbd67e0"/><file name="gmx_net.plg.php" hash="218b73370a1367455aeee09695bc4e2a"/><file name="graffiti.plg.php" hash="36f6a6f03fceb9b0e008c1a281a17eb2"/><file name="hi5.plg.php" hash="ba133ae4e865c10f6ce3ddc738751374"/><file name="hotmail.plg.php" hash="ef3241a0a43020412162d8f6dd9dd206"/><file name="hushmail.plg.php" hash="d3f9f339ac03c8aa2426f7a2fe4f2606"/><file name="hyves.plg.php" hash="4dca8f35b17070c42bd16fd86352baf3"/><file name="inbox.plg.php" hash="34066ac6458b6506921e11dde302e3c2"/><file name="india.plg.php" hash="cdd4e86f5b21122b2ebf898eb78b0311"/><file name="indiatimes.plg.php" hash="bbbda190c92579f469f0b4712ba9806f"/><file name="inet.plg.php" hash="6bc3da45b492ba41012b25e501c05273"/><file name="interia.plg.php" hash="3fb3cb41913d12228f162ac32539a848"/><file name="katamail.plg.php" hash="2c2c85f1cab23f236295e5340da10511"/><file name="kids.plg.php" hash="5fae2d825799b0793e2b131162ec8e07"/><file name="kincafe.plg.php" hash="39f0d662293f3db3bd9b0bb9e57b8e27"/><file name="konnects.plg.php" hash="0fd4bc3f8361fb7e5f04d277b4f7f121"/><file name="koolro.plg.php" hash="ebc1936657a99eb8b96ee178d9b7e15c"/><file name="lastfm.plg.php" hash="a293d4bde8a36b1868ddc432e1f201e6"/><file name="libero.plg.php" hash="29cbf372f39d77fd0b62d0777ded4317"/><file name="linkedin.plg.php" hash="a705475d12bb2458d9bad14497211a14"/><file name="livejournal.plg.php" hash="c9c4bd30963d28eee5038841a7d7c788"/><file name="lovento.plg.php" hash="e26c7fe712efdd69fe3788b02ebf514b"/><file name="lycos.plg.php" hash="41a133d41ef4627b353b0f33149629c0"/><file name="mail2world.plg.php" hash="5737b208425e9d03988303d1c20baac6"/><file name="mail_com.plg.php" hash="5d2c20c61d5ba58c4e4c4fc6e162cb20"/><file name="mail_in.plg.php" hash="bf443e42022a368819bcbb788baaa095"/><file name="mail_ru.plg.php" hash="64b7d2daef963b4fd7e72dd969a04cd2"/><file name="meinvz.plg.php" hash="409380a6ca5c70f8f7ae998d37195115"/><file name="meta.plg.php" hash="17bd2e282a8509a14c2d440ea02d8961"/><file name="mevio.plg.php" hash="d175cd50dc07d749e7118a3a3b836800"/><file name="motortopia.plg.php" hash="507c050bb6e0cc73884c427d4745c7a0"/><file name="msn.plg.php" hash="2a205b0556aa7b8908dca3b15017db4f"/><file name="multiply.plg.php" hash="22e5d241084c259a79330eebff508d95"/><file name="mycatspace.plg.php" hash="1282b9619ddfcba5d924c0e31ea74cc7"/><file name="mydogspace.plg.php" hash="be44672096adbe4e2532d0a9df027b5f"/><file name="mynet.plg.php" hash="a2a38a688707957e216d3868c8b1741e"/><file name="myspace.plg.php" hash="bfcabb115825937a9ed4f9745f52ca7e"/><file name="netaddress.plg.php" hash="8e2ccf82123f831b2616c8d3a80f579f"/><file name="netlog.plg.php" hash="246411cc237ef587d31003c03c61b05b"/><file name="ning.plg.php" hash="e59cb73b203a22978ead363c49e48d3d"/><file name="nz11.plg.php" hash="b94995c177198c061b628ddc82d4c7fc"/><file name="o2.plg.php" hash="8e44c5027c493fff7be428ff034f0466"/><file name="operamail.plg.php" hash="5e3a90f0be46b03bcde54eebd76371c9"/><file name="orkut.plg.php" hash="1a291548a82889b36f976bd091260aa5"/><file name="perfspot.plg.php" hash="9d4a9b33f8cf809e5c73bfc517af53db"/><file name="plaxo.plg.php" hash="d640845713388d7c87a206b3f51060f2"/><file name="plazes.plg.php" hash="f6d71432926c126d7f165e6c83a16854"/><file name="plurk.plg.php" hash="e780f5cdd31029cc1b153a1c5b14a965"/><file name="pochta.plg.php" hash="b5732832c05bf982a5950fa32ee4d62a"/><file name="popstarmail.plg.php" hash="a36517a17fa2a461ab890861a4c452fd"/><file name="rambler.plg.php" hash="148cfdfa5b4e5eb2479692dd9f1533a7"/><file name="rediff.plg.php" hash="5679b17973310ecf1ba8b097d3acffaa"/><file name="sapo.plg.php" hash="2bd76d540c454da5f014eba59074e835"/><file name="skyrock.plg.php" hash="1d6113c0c726f48c250160bcc7826aa2"/><file name="tagged.plg.php" hash="1a88811dfd57937db6aece3026f7f99a"/><file name="techemail.plg.php" hash="9894baf3c22e835dbcf62796327d9f99"/><file name="terra.plg.php" hash="094ae4ab8e63dd0f075a860c9aba2094"/><file name="twitter.plg.php" hash="a385725eb41c3cc003c52429295d1355"/><file name="uk2.plg.php" hash="ca5238d090e6a65709302a149caf5ffb"/><file name="vimeo.plg.php" hash="de5ab46f0cc5919b242c5b200f0ef724"/><file name="virgilio.plg.php" hash="38df3729142bd2b40792b7a1793446b7"/><file name="vkontakte.plg.php" hash="7db9b7a03e8f4ee2d2d7f5192ec18912"/><file name="walla.plg.php" hash="5340dda0d54849d2e313ab97015db215"/><file name="web_de.plg.php" hash="d3ed9a0c556f08bc5c67f978c7be4727"/><file name="wpl.plg.php" hash="b151407c39c360f49ffb9ca9fd73b32b"/><file name="xanga.plg.php" hash="89b5c2c3db98e735e4d1f19fb1c81786"/><file name="xing.plg.php" hash="4f89f01bb8bcbc856441cb6ecb2fbe60"/><file name="xuqa.plg.php" hash="1219e94f6ef0919025b2c93741e55fbd"/><file name="yahoo.plg.php" hash="f2953a803d0d61ffce2c9136d1706758"/><file name="yandex.plg.php" hash="2c211df8b0511fb8c832a00976f2cee1"/><file name="youtube.plg.php" hash="fc05c436e6c2dd1c6c8fa336e7e893c5"/><file name="zapak.plg.php" hash="2274bd725d3bda8df0ae9d45d3ce1470"/></dir><file name="stats.php" hash="5af8362ab3e9f89f5e8560b2623f767a"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Sponsorship"><file name="Entier.php" hash="cf171a4ec5debf707f182bd0ec09e3a2"/><file name="Float.php" hash="ff5bc3a5019785a1d87bfe9e9e85eeec"/><file name="Mode.php" hash="6fbdbd370813976837cb77369cc36f60"/><file name="NaturalNumber.php" hash="383c3f35a56c6d00d7a23c2c0080481e"/><file name="Openinviter.php" hash="b4ac237d528a505bb389f9b29d2ec486"/></dir></dir><dir name="Source"><file name="Mode.php" hash="79b02420ae291a2a0bfbd3b7b4dbe4c6"/></dir></dir></dir></dir><file name="ApplyValidity.php" hash="79ffbe31be02b062e2649a33e61d68be"/><file name="AutoBoost.php" hash="a8f27a827bc1eaeadb80e78d77df5c6b"/><file name="Change.php" hash="b2c4962c0eba8a8e661fe7231bdea130"/><file name="Changestatut.php" hash="11e5d285ee8ab8d6dce81fd47df89947"/><dir name="Core"><dir name="Email"><file name="Template.php" hash="f0cee8df7fae1cbd7d00cfa1a99baa1e"/></dir></dir><dir name="Eav"><dir name="Entity"><file name="Setup.php" hash="94056f3946824a5f37fa32efc97a8836"/></dir></dir><file name="Log.php" hash="0fb2fa51dd96857c1b75aa88ffd51d84"/><dir name="Mysql4"><dir name="CatalogFidelityPoint"><file name="Collection.php" hash="c868af7749d3f4bb3613c24b910a0a01"/></dir><file name="CatalogFidelityPoint.php" hash="972dc679be4e776e655ee91da788bfa9"/><dir name="CatalogSponsorPoint"><file name="Collection.php" hash="a7641c2909bc1bb6709e1fdde41bf3a3"/></dir><file name="CatalogSponsorPoint.php" hash="600b57d8ca471c97338961937aa6d551"/><dir name="Change"><file name="Collection.php" hash="bdc69d01c3e5d5ef56aa2b4fb895473b"/></dir><file name="Change.php" hash="756d869c8993f7bf582964876cdf0bab"/><dir name="Log"><file name="Collection.php" hash="bdaf560e27eae80a47e17b86b69cc5be"/></dir><file name="Log.php" hash="39c4dfcddd04caa6b1d7665eaa8a0ec3"/><file name="Rule.php" hash="afb4dce6ff602c44d69f506ec76c0383"/><dir name="Sponsorship"><file name="Collection.php" hash="4308184c9423622b51ea3cb6ce901eb7"/></dir><file name="Sponsorship.php" hash="23332641f0e4330e44a3f103d8903490"/><dir name="Sponsorshipopeninviter"><file name="Collection.php" hash="92e554ef5e4e989607dc2ce398271aa2"/></dir><file name="Sponsorshipopeninviter.php" hash="151e51e1ac5091f33df564408d3920a8"/></dir><file name="Observer.php" hash="0090c67ab3b076fa71df9724286031e3"/><file name="Openinviter.php" hash="fefd02e022771fc0738c89cb188456c2"/><dir name="SocialBookmarking"><file name="Urls.php" hash="8507b7302d5aa76c9b6bc8e1e92e0598"/></dir><file name="Sponsorship.php" hash="8d8097f19381b803b7e8c9f6a9a4bc4c"/><file name="Sponsorshipopeninviter.php" hash="9552a5df39edcd97f682bf0fb97c48c0"/><file name="Status.php" hash="ad7199148cba19358874c50216c4dfde"/><dir name="Total"><dir name="Creditmemo"><file name="Discount.php" hash="be82cd179cbda9a7121ec8bf8a5451aa"/></dir><dir name="Invoice"><file name="Discount.php" hash="b0b7dd8c49ce237e9d7eb384170dc118"/></dir><dir name="Quote"><file name="Discount.php" hash="0edf8b85e88860452648885d33d3065e"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ChangeController.php" hash="6963b3313b4ac5ddb8600bcde4d465b2"/><file name="LinkController.php" hash="ab8ac9481d252a01768a7a6073ad056f"/><file name="OpeninviterController.php" hash="bbe5124ae5c6eb41f3694a54a52691f8"/><file name="SponsorshipController.php" hash="28c9468f489e1f9762ab7d2d5c15954a"/></dir><file name="BoostController.php" hash="d65930c627d96b7640bd1e218c59eafb"/><file name="IndexController.php" hash="cd0c664a1dbf9781affed72c7a3a892e"/><file name="OpeninviterController.php" hash="0484d949bd6f6725133d7cff812650dd"/><file name="PointsController.php" hash="11a0ad42b150c39c9f5a40b778ba93e7"/><file name="PointsController.php~" hash="b60689e1ee6047a38370c7dfc92d4dfb"/><file name="SponsorController.php" hash="b81147d898f8903d5167ab0eed14a8ed"/></dir><dir name="etc"><file name="config.xml" hash="1c006e306105c7d55146028ad55d3107"/><file name="system.xml" hash="78383561b59a43a8cac257574c4cae63"/></dir><dir name="sql"><dir name="auguria_sponsorship_setup"><file name="mysql4-install-0.1.0.php" hash="097cbb4d980ca504738458bbc621205e"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="209b1d59555704d1d203d4f6f345d216"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="93b2f00355c4c524753d57b7d2942bc6"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="d783dd639aa5f388bfd2c30309fbd95d"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="93f84ef54fc8d2df334d8b41d06e9f41"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="1d3a1e2e4f4801ec8c1e89f85a308bc9"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="d6ed18d5dfd6e32d802b94907395ebab"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="548b1dcadfb413c949bb8aba2d4f94b7"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="84853debcd7a5334b862d520b1f55e47"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="6f3437e234811779a75378c269c54617"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="d8dbde5d26e4c4ceccb6321dabc2b742"/><file name="mysql4-upgrade-1.0.10-1.1.0.php" hash="3f5c4f63ad0e076df7a0aae373bf3a7d"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="47a47f9b34313bc487f49a8be35c1429"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="712278e2d503a27b91e18d52a5cf5c24"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="c264c3776a50c3c0f118aab398678dfd"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="05a79302810930b42b45707af6a2af03"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="fd17577efce7d682cc238d04c6b3db75"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="f63e39c3d9372830942cae2757b1944c"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="5b746c9b0b10c55896a920a82ca16f87"/><file name="mysql4-upgrade-1.1.4-1.1.5.php" hash="f0d2bc8f465e6d79555e4eedc1763b24"/><file name="mysql4-upgrade-1.1.5-1.1.6.php" hash="f95981f2ba8c69c1f5da030e22c4e334"/><file name="mysql4-upgrade-1.1.6-1.1.7.php" hash="8ae766daa9638512d717e312b6dca41c"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="8cd04c3921e305484edc60bd3a2087ac"/><file name="mysql4-upgrade-1.1.8-1.1.9.php" hash="7dfc00ec719161b356e7906c7472dd8b"/><file name="mysql4-upgrade-1.1.9-1.2.0.php" hash="447ca4ba43020737475ed29e354bd600"/><file name="mysql4-upgrade-1.3.0-1.3.1.php" hash="255323dd7d20366c60a03baef0880ed4"/><file name="mysql4-upgrade-1.3.1-1.3.2.php" hash="57839bcd4a36fc76611b7ad12d72e461"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sponsorship.xml" hash="da2e6256da1bb58b56d92d67167caa80"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sponsorship"><dir name="customer"><dir name="tabs"><file name="sponsorship.phtml" hash="8a50d044a4f529f1113925adeff7c673"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sponsorship.xml" hash="7228401afc4fbd2ecfed4691a97c4ded"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sponsorship"><dir name="customer"><dir name="account"><file name="accumulatedpointsdetail.phtml" hash="137fd22f7e3faba820d77a0d022d4be3"/><dir name="dashboard"><file name="accumulated_points.phtml" hash="4fa4eff30def3f87b229ce0b312268de"/><file name="fidelity_points.phtml" hash="91bd2ce632a8e17b76aaf67d4dce2fa8"/><file name="points.phtml" hash="c779f3966c372a40d77d433d78fcf4eb"/><file name="sponsor_points.phtml" hash="d87849c128855339c696589ecbb0e1d1"/></dir><file name="fidelitypointsdetail.phtml" hash="aa127f85191922581148bb64abd670a4"/><file name="sponsorpointsdetail.phtml" hash="525a267858d23e4843f341552c00b40e"/></dir><dir name="form"><file name="boost.phtml" hash="e5c4a698f08480c262279891cf3b1a65"/><file name="edit.phtml" hash="50a7d4826f68baf95754c7f1cae554a6"/><dir name="pointschange"><file name="pointschange_cash.phtml" hash="58adf546a6e8aa93b340a2d1aab50e73"/><file name="pointschange_coupon.phtml" hash="c9704825166c4766471a73e058509409"/><file name="pointschange_gift.phtml" hash="29a244c931252894b98e1a9bf1c40fc4"/></dir><file name="pointschange.phtml" hash="83ef04108e63b4bce003316b6b9cdb18"/></dir><file name="javascript.phtml" hash="bc1df21ce70b4760c964edb52517c904"/><dir name="widget"><file name="virement.phtml" hash="8b4692454e7c86ce949e70c7813886a5"/></dir></dir><file name="openinviter.phtml" hash="fe76f00f45dd2e26be07b9d52eec2971"/><file name="openinviterimport.phtml" hash="8a81b13bf5aaa6b033926fa71736bed0"/><file name="sponsorship.phtml" hash="cc7737d96f469058472e80824cef0caa"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Auguria_Sponsorship.xml" hash="2ace21d88c17b2636514543e866169eb"/></dir></dir></dir><dir name="js"><dir name="auguria"><dir name="sponsorship"><file name="admin.js" hash="8a55dbcd832c6fb18bff3c9f423ce7a8"/><file name="sorter.js" hash="aeedb979ceafb91f876525e5a392220d"/></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Auguria_Sponsorship.csv" hash="53c358af2da3b98623a8562d4dc48bf6"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="2482dc079cb57efb26fa97647f9a52c0"/><file name="sponsorship_coupon.html" hash="f1642eb0cef04b1bdacaf2b8ed8e69ad"/><file name="sponsorship_invitation.html" hash="9919cbb62cc7489a863883f06e45e974"/><file name="sponsorship_notification.html" hash="159712c9ab2e26ca210a5d6eeb8217f8"/></dir></dir></dir></dir></dir><dir name="de_DE"><file name="Auguria_Sponsorship.csv" hash="db9b02ed8a00479a96bb83a0a5b9f293"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="37e57b2cb046f4e2a9c03a237fb0dee2"/><file name="sponsorship_coupon.html" hash="087a9a72f7f7c63d4136ff498730382f"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir><dir name="en_US"><file name="Auguria_Sponsorship.csv" hash="fbb67ec0b525bb2576544d82d4cee7f1"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="3b7a0b9562401aa058b811ac45fdedec"/><file name="sponsorship_coupon.html" hash="0ca5d0c23070e0a6a9f9822ad9612678"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir><dir name="es_ES"><file name="Auguria_Sponsorship.csv" hash="e060bf41dc40cafa679e324a530dfa0d"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="bb116860a8a840849049a1c5eb7deaeb"/><file name="sponsorship_coupon.html" hash="5918b7eba6d7cdeb8f410de14e7f2329"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="auguria"><dir name="sponsorship"><file name="sorter.css" hash="f46615a19ca05b5e9bbd84d479773de2"/></dir></dir></dir><dir name="images"><dir name="auguria"><dir name="sponsorship"><dir name="sorter"><file name="asc.gif" hash="58e5329314e6a12f494990ce04867020"/><file name="desc.gif" hash="7e396735fb1e84edcb688e7df472855b"/><file name="first.gif" hash="491e4cb4e5a66671d6a59abf7af1f597"/><file name="last.gif" hash="501077205048ae683c0ef6b4158e9320"/><file name="next.gif" hash="ed4d6640624c2b6edeab4c212314bd6d"/><file name="previous.gif" hash="75973b020105dccbaf34e49d7852552d"/><file name="sorter.gif" hash="e3153c533d1a71bcc71c641b64cdf676"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
35
  <compatible/>
36
  <dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php></required></dependencies>
37
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Auguria_Sponsorship</name>
4
+ <version>1.4.0</version>
5
  <stability>stable</stability>
6
  <license>OSL 3.0</license>
7
  <channel>community</channel>
24
  - Create one or several catalog or cart rules for increment fidelity and sponsorship points&#xD;
25
  - Edit CMS Page on sponsorship information&#xD;
26
  - If you enable automatic sponsorship recall, activate magento cron</description>
27
+ <notes>Resolve bug in separated mode&#xD;
28
+ Add ability to customer to choose using points in cart&#xD;
 
29
  </notes>
30
  <authors><author><name>Auguria</name><user>Auguria</user><email>magento@auguria.net</email></author></authors>
31
+ <date>2014-03-10</date>
32
+ <time>13:20:37</time>
33
+ <contents><target name="magecommunity"><dir name="Auguria"><dir name="Sponsorship"><dir name="Block"><dir name="Adminhtml"><dir name="Change"><dir name="Edit"><file name="Form.php" hash="ae7412b583874b8fffc05cc3897f1a2b"/><dir name="Tab"><file name="Form.php" hash="7271b9c47190cdff0b2af24968c4e155"/></dir><file name="Tabs.php" hash="2c8257d215289d5ae86c985f42721650"/></dir><file name="Edit.php" hash="856fb2d016982d1c1f47c462195e7f39"/><file name="Grid.php" hash="39bae596eb7cd73879a5e769d82c00db"/></dir><file name="Change.php" hash="b9046a8e50dceaacc6d248471275a9ca"/><dir name="Customer"><dir name="Tabs"><file name="Sponsorship.php" hash="a32d0d1979be05d6a37bb928820b6e04"/></dir></dir><dir name="Link"><dir name="Edit"><file name="Form.php" hash="e6e087ae96b24d4edbe9e1f578e7a55a"/><dir name="Tab"><file name="Form.php" hash="89cf7a2479cd6b5606884a73d9122d4a"/></dir><file name="Tabs.php" hash="fd3d95a2cfe3e194d26ba94c45353bf1"/></dir><file name="Edit.php" hash="4ecef8c6e59c6642a6b3348ae24d5ab8"/><file name="Grid.php" hash="17bb23c2a473542e44d3e2878c61af58"/></dir><file name="Link.php" hash="4c9673d016652b74338b8e5ed49b5240"/><dir name="Openinviter"><dir name="Edit"><file name="Form.php" hash="b4bdc64549563f0117f65c66f97d0fb8"/><dir name="Tab"><file name="Form.php" hash="a0f4530da07ba12f9d4aa53c612cca09"/></dir><file name="Tabs.php" hash="a7595c7aab4bb62da7a55674bac936e8"/></dir><file name="Edit.php" hash="79c8c3b6ca7d0e07e9a9cb8ddc18a9c5"/><file name="Grid.php" hash="7c323452ac344c6bb446d90f7c42e11c"/></dir><file name="Openinviter.php" hash="2fbf061ee8aaff7ee34a9f5b723d84c0"/><dir name="Sales"><dir name="Order"><dir name="Invoice"><file name="Totals.php" hash="292697b2443939616b7db683ecfe64d0"/></dir><file name="Totals.php" hash="e174624626a3d4952b257f4a9481f471"/></dir></dir><dir name="Sponsorship"><dir name="Edit"><file name="Form.php" hash="a3a2352db1c72663af0caa289287a9d2"/><dir name="Tab"><file name="Form.php" hash="ac62217927d4092f047b8fb8b849668f"/></dir><file name="Tabs.php" hash="88eb68796c7de324dc1cdea77deaa4ae"/></dir><file name="Edit.php" hash="7ae0b40486d27042caa70bf42c747383"/><file name="Grid.php" hash="a10dd155e32fea5c218880211573832d"/></dir><file name="Sponsorship.php" hash="6d133ec629d775d5e23b7967bb7bcc78"/><dir name="Widget"><dir name="Grid"><file name="Renderer.php" hash="35c8a336e1a0e2dcc8d48b558cee9253"/></dir></dir></dir><dir name="Cart"><file name="Exchange.php" hash="a3d9672b1541c85bacaf43482ab741e6"/></dir><dir name="Customer"><dir name="Account"><file name="PointsDetail.php" hash="21feb78a8244d90a0acfe920f89eab3c"/></dir><dir name="Form"><file name="Boost.php" hash="18c1f531695bc529103af1bc4c3394d6"/><file name="PointsChange.php" hash="db26c8991b5ba182662424f94f020cd2"/></dir><file name="Javascript.php" hash="dc15b84e9428b848bb9194f219ad4885"/><dir name="Widget"><file name="Virement.php" hash="cafde77d6d5504ae64c63fc9732a3461"/></dir></dir><file name="Openinviter.php" hash="21ef404cb6b1d609cfd75d67274efc1c"/><dir name="Promo"><dir name="Catalog"><dir name="Edit"><dir name="Tab"><file name="Actions.php" hash="f5926196fd291cb45c13b5a8e1c018b6"/></dir></dir></dir><dir name="Quote"><dir name="Edit"><dir name="Tab"><file name="Actions.php" hash="4ff4de9b5e4d5200111d602625f91362"/></dir></dir></dir></dir><dir name="Sales"><dir name="Order"><file name="Totals.php" hash="8d2932e3decc91b07ca5bb5f2bfe1c2a"/></dir></dir><file name="Sponsorship.php" hash="b38d23fea90cf387b00508c264da736c"/></dir><dir name="Helper"><file name="Config.php" hash="28b6bdf6d194ce5e88d670e8667b5ab7"/><file name="Data.php" hash="ab6aad8d2d024aceb0530f2a3f2dd42f"/><file name="Mail.php" hash="cf14e468758d6ce250ffc8b60533fed4"/></dir><dir name="Lib"><dir name="OpenInviter"><file name="LICENSE.txt" hash="277c3d400c7488e54746141297a952cb"/><file name="POLICY.txt" hash="6262372bc84e172c7fd89d9ac61f9794"/><file name="autoupdate.php" hash="df781d645e37271f23432bb82b3360a2"/><dir name="conf"><file name="_hosted.conf" hash="1d09309103e660729b492433acda9822"/><file name="abv.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="aol.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="apropo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="atlas.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="aussiemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="azet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="badoo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bebo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bigstring.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="bookcrossing.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="bordermail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="brazencareerist.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="canoe.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="care2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="clevergo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="cyworld.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="doramail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="eons.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="evite.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="facebook.conf" hash="12cfb187449596c39774c4ac193295cc"/><file name="faces.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="famiva.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="fastmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="fdcareer.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flickr.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flingr.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="flixster.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="fm5.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="freemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="friendfeed.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="friendster.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="gawab.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="gmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="gmx_net.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="graffiti.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hi5.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="hotmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hushmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="hyves.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="inbox.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="india.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="indiatimes.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="inet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="interia.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="katamail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="kids.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="kincafe.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="konnects.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="koolro.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lastfm.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="libero.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="linkedin.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="livejournal.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lovento.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="lycos.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail2world.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_com.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_in.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mail_ru.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="meinvz.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="meta.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="mevio.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="motortopia.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="msn.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="multiply.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mycatspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mydogspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="mynet.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="myspace.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="netaddress.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="netlog.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="ning.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="nz11.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="o2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="operamail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="orkut.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="perfspot.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plaxo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plazes.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="plurk.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="pochta.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="popstarmail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="rambler.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="rediff.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="sapo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="skyrock.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="tagged.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="techemail.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="terra.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="twitter.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="uk2.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="vimeo.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="virgilio.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="vkontakte.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="walla.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="web_de.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="wpl.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="xanga.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="xing.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="xuqa.conf" hash="6e2fad3c6d126d7da250cb8976a9ad4f"/><file name="yahoo.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="yandex.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="youtube.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/><file name="zapak.conf" hash="42ed0b97cb6919d0cd402831bccc1ea3"/></dir><file name="config.php" hash="6c16534afd6e50dfda0c5be417bd6fe7"/><dir name="images"><file name="ers.gif" hash="cccdfd4ed0795b767d2a01f531781c10"/><file name="oks.gif" hash="6b4b170c9f10a0fa4b25307dd8f47e5b"/></dir><file name="notifier.php" hash="88e3be687de995aae52a8ce248c49bce"/><file name="openinviter.php" hash="d2c0237f86cd7c21dadc2c441e73abb1"/><dir name="plugins"><file name="_base.php" hash="79459bef6fcea96f6a7d4a584add9052"/><file name="_hosted.plg.php" hash="69514e56e1833df16884b6762bc620ce"/><file name="abv.plg.php" hash="1685755eae909c468055b9b36c915822"/><file name="aol.plg.php" hash="dd3522033c2cafeb62fd0beed5949bcf"/><file name="apropo.plg.php" hash="4426f976c1953383cf9d1f892aa9576e"/><file name="atlas.plg.php" hash="0b8e4237970ae54ff20187f5e861f972"/><file name="aussiemail.plg.php" hash="d40188b33455b3fd2e88cbde25f61709"/><file name="azet.plg.php" hash="e4a7c19450ca1ad84783a06ae3b1d61f"/><file name="badoo.plg.php" hash="b1d4863a173a80fc9d77331f1e60f2df"/><file name="bebo.plg.php" hash="2d7db898c660380ee74963667bec6bae"/><file name="bigstring.plg.php" hash="7de7a5516a8f0c71580970d8da4121eb"/><file name="bookcrossing.plg.php" hash="212a53a3a95659c56e15d6848549e25e"/><file name="bordermail.plg.php" hash="30190fa3da58d63ddd7e30e6ab0190dc"/><file name="brazencareerist.plg.php" hash="c68f39b6d7a07550abd63ed044ad85c2"/><file name="canoe.plg.php" hash="7737d89b163689cb793f0f37f6028efb"/><file name="care2.plg.php" hash="c066e81973194cca90036c37c7740937"/><file name="clevergo.plg.php" hash="9bd12fea0eb7f60043bcdca9116cb1bc"/><file name="cyworld.plg.php" hash="588dfdddcc2bc9ab2ff26c4616e0a42c"/><file name="doramail.plg.php" hash="81037085958f90a05111ad030c5a72f8"/><file name="eons.plg.php" hash="35009d6e25ae5584c554808b50145a19"/><file name="evite.plg.php" hash="d6c8acf7c24c2848eccedb269928d6eb"/><file name="facebook.plg.php" hash="6a1cfdc0dfc76b3dc3781aa2327ee833"/><file name="faces.plg.php" hash="d0affdf4e73ff6134acfaae5fda29323"/><file name="famiva.plg.php" hash="eee1c0a9a6d645baf014245ca2e9c3e9"/><file name="fastmail.plg.php" hash="da86fea25210ed40258ae2a107dcfe8f"/><file name="fdcareer.plg.php" hash="aad3d525fe09269de056f8ec03e43104"/><file name="flickr.plg.php" hash="055d1e64f116113379e3192b23dc84fc"/><file name="flingr.plg.php" hash="c2b415851babadb8048609874b411979"/><file name="flixster.plg.php" hash="773fad1c2c1775fcb74fb33f51d1fa24"/><file name="fm5.plg.php" hash="0576df91534edaab3d6b333d1968781a"/><file name="freemail.plg.php" hash="142951e9c20ce4447f44c6db7e5cc2e8"/><file name="friendfeed.plg.php" hash="399c987766110735fdd301979997fe48"/><file name="friendster.plg.php" hash="8b3402876a73bf91a84d3a6d8dbb1951"/><file name="gawab.plg.php" hash="c4cb42d893a99b370d9597f20da5c01e"/><file name="gmail.plg.php" hash="83d92f7f75e048210aec2fdecdbd67e0"/><file name="gmx_net.plg.php" hash="218b73370a1367455aeee09695bc4e2a"/><file name="graffiti.plg.php" hash="36f6a6f03fceb9b0e008c1a281a17eb2"/><file name="hi5.plg.php" hash="ba133ae4e865c10f6ce3ddc738751374"/><file name="hotmail.plg.php" hash="ef3241a0a43020412162d8f6dd9dd206"/><file name="hushmail.plg.php" hash="d3f9f339ac03c8aa2426f7a2fe4f2606"/><file name="hyves.plg.php" hash="4dca8f35b17070c42bd16fd86352baf3"/><file name="inbox.plg.php" hash="34066ac6458b6506921e11dde302e3c2"/><file name="india.plg.php" hash="cdd4e86f5b21122b2ebf898eb78b0311"/><file name="indiatimes.plg.php" hash="bbbda190c92579f469f0b4712ba9806f"/><file name="inet.plg.php" hash="6bc3da45b492ba41012b25e501c05273"/><file name="interia.plg.php" hash="3fb3cb41913d12228f162ac32539a848"/><file name="katamail.plg.php" hash="2c2c85f1cab23f236295e5340da10511"/><file name="kids.plg.php" hash="5fae2d825799b0793e2b131162ec8e07"/><file name="kincafe.plg.php" hash="39f0d662293f3db3bd9b0bb9e57b8e27"/><file name="konnects.plg.php" hash="0fd4bc3f8361fb7e5f04d277b4f7f121"/><file name="koolro.plg.php" hash="ebc1936657a99eb8b96ee178d9b7e15c"/><file name="lastfm.plg.php" hash="a293d4bde8a36b1868ddc432e1f201e6"/><file name="libero.plg.php" hash="29cbf372f39d77fd0b62d0777ded4317"/><file name="linkedin.plg.php" hash="a705475d12bb2458d9bad14497211a14"/><file name="livejournal.plg.php" hash="c9c4bd30963d28eee5038841a7d7c788"/><file name="lovento.plg.php" hash="e26c7fe712efdd69fe3788b02ebf514b"/><file name="lycos.plg.php" hash="41a133d41ef4627b353b0f33149629c0"/><file name="mail2world.plg.php" hash="5737b208425e9d03988303d1c20baac6"/><file name="mail_com.plg.php" hash="5d2c20c61d5ba58c4e4c4fc6e162cb20"/><file name="mail_in.plg.php" hash="bf443e42022a368819bcbb788baaa095"/><file name="mail_ru.plg.php" hash="64b7d2daef963b4fd7e72dd969a04cd2"/><file name="meinvz.plg.php" hash="409380a6ca5c70f8f7ae998d37195115"/><file name="meta.plg.php" hash="17bd2e282a8509a14c2d440ea02d8961"/><file name="mevio.plg.php" hash="d175cd50dc07d749e7118a3a3b836800"/><file name="motortopia.plg.php" hash="507c050bb6e0cc73884c427d4745c7a0"/><file name="msn.plg.php" hash="2a205b0556aa7b8908dca3b15017db4f"/><file name="multiply.plg.php" hash="22e5d241084c259a79330eebff508d95"/><file name="mycatspace.plg.php" hash="1282b9619ddfcba5d924c0e31ea74cc7"/><file name="mydogspace.plg.php" hash="be44672096adbe4e2532d0a9df027b5f"/><file name="mynet.plg.php" hash="a2a38a688707957e216d3868c8b1741e"/><file name="myspace.plg.php" hash="bfcabb115825937a9ed4f9745f52ca7e"/><file name="netaddress.plg.php" hash="8e2ccf82123f831b2616c8d3a80f579f"/><file name="netlog.plg.php" hash="246411cc237ef587d31003c03c61b05b"/><file name="ning.plg.php" hash="e59cb73b203a22978ead363c49e48d3d"/><file name="nz11.plg.php" hash="b94995c177198c061b628ddc82d4c7fc"/><file name="o2.plg.php" hash="8e44c5027c493fff7be428ff034f0466"/><file name="operamail.plg.php" hash="5e3a90f0be46b03bcde54eebd76371c9"/><file name="orkut.plg.php" hash="1a291548a82889b36f976bd091260aa5"/><file name="perfspot.plg.php" hash="9d4a9b33f8cf809e5c73bfc517af53db"/><file name="plaxo.plg.php" hash="d640845713388d7c87a206b3f51060f2"/><file name="plazes.plg.php" hash="f6d71432926c126d7f165e6c83a16854"/><file name="plurk.plg.php" hash="e780f5cdd31029cc1b153a1c5b14a965"/><file name="pochta.plg.php" hash="b5732832c05bf982a5950fa32ee4d62a"/><file name="popstarmail.plg.php" hash="a36517a17fa2a461ab890861a4c452fd"/><file name="rambler.plg.php" hash="148cfdfa5b4e5eb2479692dd9f1533a7"/><file name="rediff.plg.php" hash="5679b17973310ecf1ba8b097d3acffaa"/><file name="sapo.plg.php" hash="2bd76d540c454da5f014eba59074e835"/><file name="skyrock.plg.php" hash="1d6113c0c726f48c250160bcc7826aa2"/><file name="tagged.plg.php" hash="1a88811dfd57937db6aece3026f7f99a"/><file name="techemail.plg.php" hash="9894baf3c22e835dbcf62796327d9f99"/><file name="terra.plg.php" hash="094ae4ab8e63dd0f075a860c9aba2094"/><file name="twitter.plg.php" hash="a385725eb41c3cc003c52429295d1355"/><file name="uk2.plg.php" hash="ca5238d090e6a65709302a149caf5ffb"/><file name="vimeo.plg.php" hash="de5ab46f0cc5919b242c5b200f0ef724"/><file name="virgilio.plg.php" hash="38df3729142bd2b40792b7a1793446b7"/><file name="vkontakte.plg.php" hash="7db9b7a03e8f4ee2d2d7f5192ec18912"/><file name="walla.plg.php" hash="5340dda0d54849d2e313ab97015db215"/><file name="web_de.plg.php" hash="d3ed9a0c556f08bc5c67f978c7be4727"/><file name="wpl.plg.php" hash="b151407c39c360f49ffb9ca9fd73b32b"/><file name="xanga.plg.php" hash="89b5c2c3db98e735e4d1f19fb1c81786"/><file name="xing.plg.php" hash="4f89f01bb8bcbc856441cb6ecb2fbe60"/><file name="xuqa.plg.php" hash="1219e94f6ef0919025b2c93741e55fbd"/><file name="yahoo.plg.php" hash="f2953a803d0d61ffce2c9136d1706758"/><file name="yandex.plg.php" hash="2c211df8b0511fb8c832a00976f2cee1"/><file name="youtube.plg.php" hash="fc05c436e6c2dd1c6c8fa336e7e893c5"/><file name="zapak.plg.php" hash="2274bd725d3bda8df0ae9d45d3ce1470"/></dir><file name="stats.php" hash="5af8362ab3e9f89f5e8560b2623f767a"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Sponsorship"><file name="Entier.php" hash="cf171a4ec5debf707f182bd0ec09e3a2"/><file name="Float.php" hash="ff5bc3a5019785a1d87bfe9e9e85eeec"/><file name="Mode.php" hash="6fbdbd370813976837cb77369cc36f60"/><file name="NaturalNumber.php" hash="383c3f35a56c6d00d7a23c2c0080481e"/><file name="Openinviter.php" hash="b4ac237d528a505bb389f9b29d2ec486"/></dir></dir><dir name="Source"><file name="Mode.php" hash="79b02420ae291a2a0bfbd3b7b4dbe4c6"/></dir></dir></dir></dir><file name="ApplyValidity.php" hash="79ffbe31be02b062e2649a33e61d68be"/><file name="AutoBoost.php" hash="a8f27a827bc1eaeadb80e78d77df5c6b"/><file name="Change.php" hash="b2c4962c0eba8a8e661fe7231bdea130"/><file name="Changestatut.php" hash="11e5d285ee8ab8d6dce81fd47df89947"/><dir name="Core"><dir name="Email"><file name="Template.php" hash="f0cee8df7fae1cbd7d00cfa1a99baa1e"/></dir></dir><dir name="Eav"><dir name="Entity"><file name="Setup.php" hash="94056f3946824a5f37fa32efc97a8836"/></dir></dir><file name="Log.php" hash="0fb2fa51dd96857c1b75aa88ffd51d84"/><dir name="Mysql4"><dir name="CatalogFidelityPoint"><file name="Collection.php" hash="c868af7749d3f4bb3613c24b910a0a01"/></dir><file name="CatalogFidelityPoint.php" hash="972dc679be4e776e655ee91da788bfa9"/><dir name="CatalogSponsorPoint"><file name="Collection.php" hash="a7641c2909bc1bb6709e1fdde41bf3a3"/></dir><file name="CatalogSponsorPoint.php" hash="600b57d8ca471c97338961937aa6d551"/><dir name="Change"><file name="Collection.php" hash="bdc69d01c3e5d5ef56aa2b4fb895473b"/></dir><file name="Change.php" hash="756d869c8993f7bf582964876cdf0bab"/><dir name="Log"><file name="Collection.php" hash="bdaf560e27eae80a47e17b86b69cc5be"/></dir><file name="Log.php" hash="39c4dfcddd04caa6b1d7665eaa8a0ec3"/><file name="Rule.php" hash="afb4dce6ff602c44d69f506ec76c0383"/><dir name="Sponsorship"><file name="Collection.php" hash="4308184c9423622b51ea3cb6ce901eb7"/></dir><file name="Sponsorship.php" hash="23332641f0e4330e44a3f103d8903490"/><dir name="Sponsorshipopeninviter"><file name="Collection.php" hash="92e554ef5e4e989607dc2ce398271aa2"/></dir><file name="Sponsorshipopeninviter.php" hash="151e51e1ac5091f33df564408d3920a8"/></dir><file name="Observer.php" hash="c404f47ccafa2fdc5fb751e18d22928a"/><file name="Openinviter.php" hash="fefd02e022771fc0738c89cb188456c2"/><dir name="SocialBookmarking"><file name="Urls.php" hash="8507b7302d5aa76c9b6bc8e1e92e0598"/></dir><file name="Sponsorship.php" hash="8d8097f19381b803b7e8c9f6a9a4bc4c"/><file name="Sponsorshipopeninviter.php" hash="9552a5df39edcd97f682bf0fb97c48c0"/><file name="Status.php" hash="ad7199148cba19358874c50216c4dfde"/><dir name="Total"><dir name="Creditmemo"><file name="Discount.php" hash="be82cd179cbda9a7121ec8bf8a5451aa"/></dir><dir name="Invoice"><file name="Discount.php" hash="b0b7dd8c49ce237e9d7eb384170dc118"/></dir><dir name="Quote"><file name="Discount.php" hash="a8d6e8c87d024fcb300075a616d40d9f"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ChangeController.php" hash="6963b3313b4ac5ddb8600bcde4d465b2"/><file name="LinkController.php" hash="ab8ac9481d252a01768a7a6073ad056f"/><file name="OpeninviterController.php" hash="bbe5124ae5c6eb41f3694a54a52691f8"/><file name="SponsorshipController.php" hash="28c9468f489e1f9762ab7d2d5c15954a"/></dir><file name="BoostController.php" hash="d65930c627d96b7640bd1e218c59eafb"/><file name="CartController.php" hash="c14bf9dda422d4b7db7c1e6880736d65"/><file name="IndexController.php" hash="cd0c664a1dbf9781affed72c7a3a892e"/><file name="OpeninviterController.php" hash="0484d949bd6f6725133d7cff812650dd"/><file name="PointsController.php" hash="63553e3370abba295a97d002b9c9fc92"/><file name="SponsorController.php" hash="b81147d898f8903d5167ab0eed14a8ed"/></dir><dir name="etc"><file name="config.xml" hash="2429ad63a9b4dd9820775b989463992b"/><file name="system.xml" hash="745517c767870ccab648a3f50c0d38a0"/></dir><dir name="sql"><dir name="auguria_sponsorship_setup"><file name="mysql4-install-0.1.0.php" hash="097cbb4d980ca504738458bbc621205e"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="209b1d59555704d1d203d4f6f345d216"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="93b2f00355c4c524753d57b7d2942bc6"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="d783dd639aa5f388bfd2c30309fbd95d"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="4a8db2675000706630c313ced73f6b8d"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="1d3a1e2e4f4801ec8c1e89f85a308bc9"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="d6ed18d5dfd6e32d802b94907395ebab"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="548b1dcadfb413c949bb8aba2d4f94b7"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="84853debcd7a5334b862d520b1f55e47"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="ddd0e47b2a9fa6194c342dca4ad72b07"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="d8dbde5d26e4c4ceccb6321dabc2b742"/><file name="mysql4-upgrade-1.0.10-1.1.0.php" hash="518d71d037fcb4ea17567fcb630e31b9"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="c8ce620e47bee186767a0f5caadc5123"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="45230dffeb15c5fef1772f149375eb7b"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="f5787fcace9b727ce15fbc11e49de400"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="05a79302810930b42b45707af6a2af03"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="fd17577efce7d682cc238d04c6b3db75"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="f63e39c3d9372830942cae2757b1944c"/><file name="mysql4-upgrade-1.1.3-1.1.4.php" hash="5b746c9b0b10c55896a920a82ca16f87"/><file name="mysql4-upgrade-1.1.4-1.1.5.php" hash="f0d2bc8f465e6d79555e4eedc1763b24"/><file name="mysql4-upgrade-1.1.5-1.1.6.php" hash="f95981f2ba8c69c1f5da030e22c4e334"/><file name="mysql4-upgrade-1.1.6-1.1.7.php" hash="8ae766daa9638512d717e312b6dca41c"/><file name="mysql4-upgrade-1.1.7-1.1.8.php" hash="8cd04c3921e305484edc60bd3a2087ac"/><file name="mysql4-upgrade-1.1.8-1.1.9.php" hash="7dfc00ec719161b356e7906c7472dd8b"/><file name="mysql4-upgrade-1.1.9-1.2.0.php" hash="447ca4ba43020737475ed29e354bd600"/><file name="mysql4-upgrade-1.3.0-1.3.1.php" hash="255323dd7d20366c60a03baef0880ed4"/><file name="mysql4-upgrade-1.3.1-1.3.2.php" hash="57839bcd4a36fc76611b7ad12d72e461"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sponsorship.xml" hash="da2e6256da1bb58b56d92d67167caa80"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sponsorship"><dir name="customer"><dir name="tabs"><file name="sponsorship.phtml" hash="8a50d044a4f529f1113925adeff7c673"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="auguria"><file name="sponsorship.xml" hash="ad08584bc81d08614b2587e7afcf0bc9"/></dir></dir><dir name="template"><dir name="auguria"><dir name="sponsorship"><dir name="cart"><file name="exchange.phtml" hash="bada9b7f0703d6246074526bc0b56f7d"/></dir><dir name="customer"><dir name="account"><file name="accumulatedpointsdetail.phtml" hash="137fd22f7e3faba820d77a0d022d4be3"/><dir name="dashboard"><file name="accumulated_points.phtml" hash="4fa4eff30def3f87b229ce0b312268de"/><file name="fidelity_points.phtml" hash="91bd2ce632a8e17b76aaf67d4dce2fa8"/><file name="points.phtml" hash="c779f3966c372a40d77d433d78fcf4eb"/><file name="sponsor_points.phtml" hash="d87849c128855339c696589ecbb0e1d1"/></dir><file name="fidelitypointsdetail.phtml" hash="16663aaead65c16d22f88c345925d3f7"/><file name="sponsorpointsdetail.phtml" hash="525a267858d23e4843f341552c00b40e"/></dir><dir name="form"><file name="boost.phtml" hash="e5c4a698f08480c262279891cf3b1a65"/><file name="edit.phtml" hash="50a7d4826f68baf95754c7f1cae554a6"/><dir name="pointschange"><file name="pointschange_cash.phtml" hash="58adf546a6e8aa93b340a2d1aab50e73"/><file name="pointschange_coupon.phtml" hash="c9704825166c4766471a73e058509409"/><file name="pointschange_gift.phtml" hash="29a244c931252894b98e1a9bf1c40fc4"/></dir><file name="pointschange.phtml" hash="83ef04108e63b4bce003316b6b9cdb18"/></dir><file name="javascript.phtml" hash="bc1df21ce70b4760c964edb52517c904"/><dir name="widget"><file name="virement.phtml" hash="8b4692454e7c86ce949e70c7813886a5"/></dir></dir><file name="openinviter.phtml" hash="fe76f00f45dd2e26be07b9d52eec2971"/><file name="openinviterimport.phtml" hash="8a81b13bf5aaa6b033926fa71736bed0"/><file name="sponsorship.phtml" hash="cc7737d96f469058472e80824cef0caa"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Auguria_Sponsorship.xml" hash="2ace21d88c17b2636514543e866169eb"/></dir></dir></dir><dir name="js"><dir name="auguria"><dir name="sponsorship"><file name="admin.js" hash="8a55dbcd832c6fb18bff3c9f423ce7a8"/><file name="sorter.js" hash="aeedb979ceafb91f876525e5a392220d"/></dir></dir></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Auguria_Sponsorship.csv" hash="3fa776291764434dc675ff0be228f7d6"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="2482dc079cb57efb26fa97647f9a52c0"/><file name="sponsorship_coupon.html" hash="f1642eb0cef04b1bdacaf2b8ed8e69ad"/><file name="sponsorship_invitation.html" hash="9919cbb62cc7489a863883f06e45e974"/><file name="sponsorship_notification.html" hash="159712c9ab2e26ca210a5d6eeb8217f8"/></dir></dir></dir></dir></dir><dir name="de_DE"><file name="Auguria_Sponsorship.csv" hash="db9b02ed8a00479a96bb83a0a5b9f293"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="37e57b2cb046f4e2a9c03a237fb0dee2"/><file name="sponsorship_coupon.html" hash="087a9a72f7f7c63d4136ff498730382f"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir><dir name="en_US"><file name="Auguria_Sponsorship.csv" hash="fbb67ec0b525bb2576544d82d4cee7f1"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="3b7a0b9562401aa058b811ac45fdedec"/><file name="sponsorship_coupon.html" hash="0ca5d0c23070e0a6a9f9822ad9612678"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir><dir name="es_ES"><file name="Auguria_Sponsorship.csv" hash="e060bf41dc40cafa679e324a530dfa0d"/><dir name="template"><dir name="email"><dir name="auguria"><dir name="sponsorship"><file name="sponsorship_cash.html" hash="bb116860a8a840849049a1c5eb7deaeb"/><file name="sponsorship_coupon.html" hash="5918b7eba6d7cdeb8f410de14e7f2329"/><file name="sponsorship_invitation.html" hash="30fe91c3b83ee223f6bffb3dd779dd26"/><file name="sponsorship_notification.html" hash="fc9958622daabadb1edf728eac927097"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="auguria"><dir name="sponsorship"><file name="sorter.css" hash="f46615a19ca05b5e9bbd84d479773de2"/></dir></dir></dir><dir name="images"><dir name="auguria"><dir name="sponsorship"><dir name="sorter"><file name="asc.gif" hash="58e5329314e6a12f494990ce04867020"/><file name="desc.gif" hash="7e396735fb1e84edcb688e7df472855b"/><file name="first.gif" hash="491e4cb4e5a66671d6a59abf7af1f597"/><file name="last.gif" hash="501077205048ae683c0ef6b4158e9320"/><file name="next.gif" hash="ed4d6640624c2b6edeab4c212314bd6d"/><file name="previous.gif" hash="75973b020105dccbaf34e49d7852552d"/><file name="sorter.gif" hash="e3153c533d1a71bcc71c641b64cdf676"/></dir></dir></dir></dir></dir></dir></dir></target></contents>
34
  <compatible/>
35
  <dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php></required></dependencies>
36
  </package>