Speedinfo_Opensi - Version 0.3.8

Version Notes

Mise à jour du module vers la version 0.3.8
Ajout de la gestion des multi-tarif et des statuts de commandes
Pour plus d'informations, se référer à la documentation.

Download this release

Release Info

Developer Magento Core Team
Extension Speedinfo_Opensi
Version 0.3.8
Comparing to
See all releases


Code changes from version 0.3.7 to 0.3.8

app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/Attributs.php CHANGED
@@ -31,7 +31,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
31
'label' => Mage::helper('opensi')->__('Attribute')." 1 :",
32
'title' => Mage::helper('opensi')->__('Attribute')." 1 :",
33
'required' => false,
34
- 'value' => isset($client->attribut1) ? $client->attribut1 : '',
35
'values' => $list_attr,
36
));
37
@@ -40,7 +40,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
40
'label' => Mage::helper('opensi')->__('Attribute')." 2 :",
41
'title' => Mage::helper('opensi')->__('Attribute')." 2 :",
42
'required' => false,
43
- 'value' => isset($client->attribut2) ? $client->attribut2 : '',
44
'values' => $list_attr,
45
));
46
@@ -49,7 +49,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
49
'label' => Mage::helper('opensi')->__('Attribute')." 3 :",
50
'title' => Mage::helper('opensi')->__('Attribute')." 3 :",
51
'required' => false,
52
- 'value' => isset($client->attribut3) ? $client->attribut3 : '',
53
'values' => $list_attr,
54
));
55
@@ -58,7 +58,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
58
'label' => Mage::helper('opensi')->__('Attribute')." 4 :",
59
'title' => Mage::helper('opensi')->__('Attribute')." 4 :",
60
'required' => false,
61
- 'value' => isset($client->attribut4) ? $client->attribut4 : '',
62
'values' => $list_attr,
63
));
64
@@ -67,7 +67,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
67
'label' => Mage::helper('opensi')->__('Attribute')." 5 :",
68
'title' => Mage::helper('opensi')->__('Attribute')." 5 :",
69
'required' => false,
70
- 'value' => isset($client->attribut5) ? $client->attribut5 : '',
71
'values' => $list_attr,
72
));
73
@@ -76,7 +76,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
76
'label' => Mage::helper('opensi')->__('Attribute')." 6 :",
77
'title' => Mage::helper('opensi')->__('Attribute')." 6 :",
78
'required' => false,
79
- 'value' => isset($client->attribut6) ? $client->attribut6 : '',
80
'values' => $list_attr,
81
));
82
@@ -85,7 +85,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
85
'label' => Mage::helper('opensi')->__('Barcode :'),
86
'title' => Mage::helper('opensi')->__('Barcode :'),
87
'required' => false,
88
- 'value' => isset($client->code_barre) ? $client->code_barre : '',
89
'values' => $list_attr,
90
));
91
@@ -94,7 +94,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
94
'label' => Mage::helper('opensi')->__('Volume in m³ :'),
95
'title' => Mage::helper('opensi')->__('Volume in m³ :'),
96
'required' => false,
97
- 'value' => isset($client->volume) ? $client->volume : '',
98
'values' => $list_attr,
99
));
100
@@ -103,7 +103,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
103
'label' => Mage::helper('opensi')->__('Height in m :'),
104
'title' => Mage::helper('opensi')->__('Height in m :'),
105
'required' => false,
106
- 'value' => isset($client->hauteur) ? $client->hauteur : '',
107
'values' => $list_attr,
108
));
109
@@ -112,7 +112,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
112
'label' => Mage::helper('opensi')->__('Length in m :'),
113
'title' => Mage::helper('opensi')->__('Length in m :'),
114
'required' => false,
115
- 'value' => isset($client->longueur) ? $client->longueur : '',
116
'values' => $list_attr,
117
));
118
@@ -121,7 +121,7 @@ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Attributs extends Mage_Adminhtml
121
'label' => Mage::helper('opensi')->__('Width in m :'),
122
'title' => Mage::helper('opensi')->__('Width in m :'),
123
'required' => false,
124
- 'value' => isset($client->largeur) ? $client->largeur : '',
125
'values' => $list_attr,
126
));
127
31
'label' => Mage::helper('opensi')->__('Attribute')." 1 :",
32
'title' => Mage::helper('opensi')->__('Attribute')." 1 :",
33
'required' => false,
34
+ 'value' => isset($client->attribut1) ? $client->attribut1 : '',
35
'values' => $list_attr,
36
));
37
40
'label' => Mage::helper('opensi')->__('Attribute')." 2 :",
41
'title' => Mage::helper('opensi')->__('Attribute')." 2 :",
42
'required' => false,
43
+ 'value' => isset($client->attribut2) ? $client->attribut2 : '',
44
'values' => $list_attr,
45
));
46
49
'label' => Mage::helper('opensi')->__('Attribute')." 3 :",
50
'title' => Mage::helper('opensi')->__('Attribute')." 3 :",
51
'required' => false,
52
+ 'value' => isset($client->attribut3) ? $client->attribut3 : '',
53
'values' => $list_attr,
54
));
55
58
'label' => Mage::helper('opensi')->__('Attribute')." 4 :",
59
'title' => Mage::helper('opensi')->__('Attribute')." 4 :",
60
'required' => false,
61
+ 'value' => isset($client->attribut4) ? $client->attribut4 : '',
62
'values' => $list_attr,
63
));
64
67
'label' => Mage::helper('opensi')->__('Attribute')." 5 :",
68
'title' => Mage::helper('opensi')->__('Attribute')." 5 :",
69
'required' => false,
70
+ 'value' => isset($client->attribut5) ? $client->attribut5 : '',
71
'values' => $list_attr,
72
));
73
76
'label' => Mage::helper('opensi')->__('Attribute')." 6 :",
77
'title' => Mage::helper('opensi')->__('Attribute')." 6 :",
78
'required' => false,
79
+ 'value' => isset($client->attribut6) ? $client->attribut6 : '',
80
'values' => $list_attr,
81
));
82
85
'label' => Mage::helper('opensi')->__('Barcode :'),
86
'title' => Mage::helper('opensi')->__('Barcode :'),
87
'required' => false,
88
+ 'value' => isset($client->code_barre) ? $client->code_barre : '',
89
'values' => $list_attr,
90
));
91
94
'label' => Mage::helper('opensi')->__('Volume in m³ :'),
95
'title' => Mage::helper('opensi')->__('Volume in m³ :'),
96
'required' => false,
97
+ 'value' => isset($client->volume) ? $client->volume : '',
98
'values' => $list_attr,
99
));
100
103
'label' => Mage::helper('opensi')->__('Height in m :'),
104
'title' => Mage::helper('opensi')->__('Height in m :'),
105
'required' => false,
106
+ 'value' => isset($client->hauteur) ? $client->hauteur : '',
107
'values' => $list_attr,
108
));
109
112
'label' => Mage::helper('opensi')->__('Length in m :'),
113
'title' => Mage::helper('opensi')->__('Length in m :'),
114
'required' => false,
115
+ 'value' => isset($client->longueur) ? $client->longueur : '',
116
'values' => $list_attr,
117
));
118
121
'label' => Mage::helper('opensi')->__('Width in m :'),
122
'title' => Mage::helper('opensi')->__('Width in m :'),
123
'required' => false,
124
+ 'value' => isset($client->largeur) ? $client->largeur : '',
125
'values' => $list_attr,
126
));
127
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/OrdersStatus.php ADDED
@@ -0,0 +1,85 @@
1
+ <?php
2
+ /**
3
+ * Block Tab General
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_OrdersStatus extends Mage_Adminhtml_Block_Widget_Form{
10
+
11
+ /**
12
+ * Initialize tab
13
+ *
14
+ */
15
+ public function __construct() {
16
+ parent::__construct();
17
+ }
18
+
19
+ public function _prepareLayout()
20
+ {
21
+ parent::_prepareLayout();
22
+ $form = new Varien_Data_Form();
23
+ $client = $this->getClient();
24
+
25
+ $fieldset = $form->addFieldset('prices_fieldset', array('legend'=>Mage::helper('opensi')->__('Statut des commandes')));
26
+
27
+ $list_attr = Mage::getSingleton('sales/order_config')->getStatuses();
28
+
29
+ $fieldset->addField('pending', 'select', array(
30
+ 'name' => 'opensi[statuses][pending]',
31
+ 'label' => Mage::helper('opensi')->__('En attente')." :",
32
+ 'title' => Mage::helper('opensi')->__('En attente')." :",
33
+ 'required' => false,
34
+ 'value' => isset($client->pending_status) ? $client->pending_status : 'pending',
35
+ 'values' => $list_attr,
36
+ ));
37
+
38
+ $fieldset->addField('processing', 'select', array(
39
+ 'name' => 'opensi[statuses][processing]',
40
+ 'label' => Mage::helper('opensi')->__('Préparation en cours')." :",
41
+ 'title' => Mage::helper('opensi')->__('Préparation en cours')." :",
42
+ 'required' => false,
43
+ 'value' => isset($client->processing_status) ? $client->processing_status : 'processing',
44
+ 'values' => $list_attr,
45
+ ));
46
+
47
+ $fieldset->addField('complete', 'select', array(
48
+ 'name' => 'opensi[statuses][complete]',
49
+ 'label' => Mage::helper('opensi')->__('Terminé')." :",
50
+ 'title' => Mage::helper('opensi')->__('Terminé')." :",
51
+ 'required' => false,
52
+ 'value' => isset($client->complete_status) ? $client->complete_status : 'complete',
53
+ 'values' => $list_attr,
54
+ ));
55
+
56
+ $fieldset->addField('canceled', 'select', array(
57
+ 'name' => 'opensi[statuses][canceled]',
58
+ 'label' => Mage::helper('opensi')->__('Annulé')." :",
59
+ 'title' => Mage::helper('opensi')->__('Annulé')." :",
60
+ 'required' => false,
61
+ 'value' => isset($client->canceled_status) ? $client->canceled_status : 'canceled',
62
+ 'values' => $list_attr,
63
+ ));
64
+
65
+ $this->setForm($form);
66
+ }
67
+
68
+ public function getStore()
69
+ {
70
+ if(Mage::registry('store_id') != ""){
71
+ $store_id = Mage::registry('store_id');
72
+ }else{
73
+ $store_id = $this->getRequest()->getParam('store');
74
+ if($store_id == ""){
75
+ $store_id = 0;
76
+ }
77
+ }
78
+ return $store_id;
79
+ }
80
+
81
+ public function getClient(){
82
+ return Mage::getModel("opensi/client")->loadByStore($this->getStore());
83
+ }
84
+
85
+ }
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Edit/Tab/Prices.php ADDED
@@ -0,0 +1,70 @@
1
+ <?php
2
+ /**
3
+ * Block Tab General
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ class Speedinfo_Opensi_Block_Adminhtml_Edit_Tab_Prices extends Mage_Adminhtml_Block_Widget_Form{
10
+
11
+ /**
12
+ * Initialize tab
13
+ *
14
+ */
15
+ public function __construct() {
16
+ parent::__construct();
17
+ }
18
+
19
+ public function _prepareLayout()
20
+ {
21
+ parent::_prepareLayout();
22
+ $form = new Varien_Data_Form();
23
+ $client = $this->getClient();
24
+
25
+ $fieldset = $form->addFieldset('prices_fieldset', array('legend'=>Mage::helper('opensi')->__('Liaison des prix')));
26
+
27
+ $list_attr = $this->getPriceRatesList();
28
+
29
+ $fieldset->addField('price_rate', 'select', array(
30
+ 'name' => 'opensi[price_rate]',
31
+ 'label' => Mage::helper('opensi')->__('Tarif utilisé pour cette boutique')." :",
32
+ 'title' => Mage::helper('opensi')->__('Tarif utilisé pour cette boutique')." :",
33
+ 'required' => false,
34
+ 'value' => isset($client->price_rate) ? $client->price_rate : '',
35
+ 'values' => $list_attr,
36
+ 'note' => $this->__("Vous pouvez gérer jusqu'à 5 tarifs différents pour un même article dans OpenSi. Sélectionnez le tarif que vous souhaitez utiliser pour cette boutique.")
37
+ ));
38
+
39
+ $this->setForm($form);
40
+ }
41
+
42
+ public function getPriceRatesList(){
43
+ $list = array(
44
+ "1"=>"Tarif 1",
45
+ "2"=>"Tarif 2",
46
+ "3"=>"Tarif 3",
47
+ "4"=>"Tarif 4",
48
+ "5"=>"Tarif 5",
49
+ );
50
+ return $list;
51
+ }
52
+
53
+ public function getStore()
54
+ {
55
+ if(Mage::registry('store_id') != ""){
56
+ $store_id = Mage::registry('store_id');
57
+ }else{
58
+ $store_id = $this->getRequest()->getParam('store');
59
+ if($store_id == ""){
60
+ $store_id = 0;
61
+ }
62
+ }
63
+ return $store_id;
64
+ }
65
+
66
+ public function getClient(){
67
+ return Mage::getModel("opensi/client")->loadByStore($this->getStore());
68
+ }
69
+
70
+ }
app/code/community/Speedinfo/Opensi/Block/Adminhtml/Tabs.php CHANGED
@@ -9,47 +9,57 @@
9
class Speedinfo_Opensi_Block_Adminhtml_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
10
{
11
12
- /**
13
- * Initialize Tabs
14
- *
15
- */
16
- public function __construct()
17
- {
18
- parent::__construct();
19
- $this->setId('opensi_tabs');
20
- $this->setDestElementId('edit_form');
21
- $this->setTitle(Mage::helper('opensi')->__('Opensi'));
22
- }
23
-
24
-
25
- /**
26
- * Prepare Layout Content
27
- *
28
- * @return Mage_Adminhtml_Block_Catalog_Category_Tabs
29
- */
30
- protected function _prepareLayout()
31
- {
32
-
33
- $this->addTab('general', array(
34
- 'label' => Mage::helper('opensi')->__('General Information'),
35
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_general')->toHtml(),
36
- ));
37
-
38
- $this->addTab('Liaison des familles', array(
39
- 'label' => Mage::helper('opensi')->__('Linking families'),
40
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_familles')->toHtml(),
41
- ));
42
43
- $this->addTab('Liaison des attributs', array(
44
- 'label' => Mage::helper('opensi')->__('Linking attributes'),
45
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_attributs')->toHtml(),
46
- ));
47
48
- $this->addTab('webservices', array(
49
- 'label' => Mage::helper('opensi')->__('Webservices'),
50
- 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_webservices')->toHtml(),
51
- ));
52
-
53
- return parent::_prepareLayout();
54
- }
55
}
9
class Speedinfo_Opensi_Block_Adminhtml_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
10
{
11
12
+ /**
13
+ * Initialize Tabs
14
+ *
15
+ */
16
+ public function __construct()
17
+ {
18
+ parent::__construct();
19
+ $this->setId('opensi_tabs');
20
+ $this->setDestElementId('edit_form');
21
+ $this->setTitle(Mage::helper('opensi')->__('Opensi'));
22
+ }
23
+
24
+
25
+ /**
26
+ * Prepare Layout Content
27
+ *
28
+ * @return Mage_Adminhtml_Block_Catalog_Category_Tabs
29
+ */
30
+ protected function _prepareLayout()
31
+ {
32
+
33
+ $this->addTab('general', array(
34
+ 'label' => Mage::helper('opensi')->__('General Information'),
35
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_general')->toHtml(),
36
+ ));
37
+
38
+ $this->addTab('Liaison des familles', array(
39
+ 'label' => Mage::helper('opensi')->__('Linking families'),
40
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_familles')->toHtml(),
41
+ ));
42
43
+ $this->addTab('Liaison des attributs', array(
44
+ 'label' => Mage::helper('opensi')->__('Linking attributes'),
45
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_attributs')->toHtml(),
46
+ ));
47
48
+ $this->addTab('Liaison des prix', array(
49
+ 'label' => Mage::helper('opensi')->__('Linking price rates'),
50
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_prices')->toHtml(),
51
+ ));
52
+
53
+ $this->addTab('Liaison des status de commandes', array(
54
+ 'label' => Mage::helper('opensi')->__('Linking orders status'),
55
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_ordersStatus')->toHtml(),
56
+ ));
57
+
58
+ $this->addTab('webservices', array(
59
+ 'label' => Mage::helper('opensi')->__('Webservices'),
60
+ 'content' => $this->getLayout()->createBlock('opensi/adminhtml_edit_tab_webservices')->toHtml(),
61
+ ));
62
+
63
+ return parent::_prepareLayout();
64
+ }
65
}
app/code/community/Speedinfo/Opensi/Model/Webservices.php CHANGED
@@ -151,6 +151,9 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
151
if ($taxClassId != 0) {
152
// $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest($order->getShippingAddress(), $order->getBillingAddress(), "", $storeId);
153
$taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest();
154
if ($taxRequest->getCustomerClassId()) {
155
$percent = Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($taxClassId));
156
} else if ($taxRequest->getProductClassId()) {
@@ -240,12 +243,14 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
240
$discountAmount = $item->getDiscountAmount();
241
242
//Si il existe une remise en valeur
243
if (!empty($discountAmount) && $itemTotal != 0) {
244
$discount = (1 - (($itemTotal - ($item->getDiscountAmount()/$item->getQtyOrdered())) / $itemTotal)) * 100;
245
$discount = round($discount, 2);
246
}else{
247
- $ligneCommandeClient->setAttribute('Remise_Pourc', 0);
248
}
249
250
// $discountPourcent = $item->getDiscountPercent();
251
// //Si il existe un poucentage de remise.
@@ -262,14 +267,12 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
262
// $discount = $discountPourcent;
263
// Mage::log($discount, null, 'opensi.log');
264
// }
265
-
266
- $ligneCommandeClient->setAttribute('Remise_Pourc', $discount);
267
$ligneCommandeClient->setAttribute('Taux_Tva', round($item->getTaxPercent(),2));
268
269
$commandeWeb->appendChild($ligneCommandeClient);
270
}
271
272
- // Mage::log($docXml->saveXml(), null, 'opensi.log');
273
$this->sendData('POST', 'create_commande_web', $docXml->saveXml(), $client);
274
} // endforeach $ordercollection
275
@@ -282,15 +285,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
282
* Envoie des nouveaux produits vers OpenSI
283
*/
284
public function createArticle($startedAt, $client, $storeId) {
285
- // if(Mage::getVersion() < '1.4.0.0'){
286
- // $productCollection = Mage::getModel('catalog/product')->getCollection()
287
- // ->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
288
- // ->addFieldToFilter('type_id', array('nin' => array('configurable', 'grouped')))
289
- // //->addFieldToFilter('category_ids', array('gteq' => NULL))
290
- // ->addStoreFilter($storeId)
291
- // ->addAttributeToSelect('*');
292
- // }else{
293
- // $startedAt = new DateTime('1970-01-01');
294
295
$productCollection = Mage::getModel('catalog/product')->getCollection()
296
->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
@@ -298,7 +292,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
298
->addStoreFilter($storeId)
299
->addAttributeToSelect('*');
300
ini_set('max_execution_time', 50 );
301
- // $time_start = microtime(true);
302
foreach ($productCollection as $product) {
303
ini_set('max_execution_time', ini_get('max_execution_time')+1 );
304
if (ini_get('max_execution_time') == 100)
@@ -313,11 +306,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
313
if($this->_error != "409")
314
$this->setStockArticle($product,$client);
315
} // endforeach $productCollection
316
- // $time_end = microtime(true);
317
- // $time = $time_end - $time_start;
318
- // Mage::log("CREATE ARTICLE",null,'opensiTimer.log');
319
- // Mage::log($time,null,'opensiTimer.log');
320
- // Mage::log("END CREATE ARTICLE",null,'opensiTimer.log');
321
if ($productCollection->count() > 0)
322
$this->setPubwebArticle($startedAt, $client, $storeId);
323
}
@@ -410,15 +398,23 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
410
if ($type == 'create') {
411
$includeTax = Mage::getStoreConfig('tax/calculation/price_includes_tax', $storeId);
412
if ($includeTax) {
413
- $article->setAttribute('Tarif_TTC_1', $product->getFinalPrice());
414
} else {
415
416
- $article->setAttribute('Tarif_HT_1', $product->getFinalPrice());
417
}
418
$product->getCost() != "" ? $article->setAttribute('Prix_Achat', $product->getCost()) : false;
419
- // $taxRequest = Mage::getSingleton('tax/calculation');
420
// Mage::log(Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($product->getTaxClassId())),null,'opensi.log');
421
- // $product->getTaxPercent() != "" ? $article->setAttribute('Taux_Tva', $product->getTaxPercent()) : false;
422
}
423
$updatedAt = new Datetime($product->getUpdatedAt());
424
$createdAt = new Datetime($product->getCreatedAt());
@@ -530,7 +526,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
530
$xmlDomDocument = new DomDocument();
531
$result = $xmlDomDocument->loadXML($resultXML);
532
$stockArticles = $xmlDomDocument->getElementsByTagName("Stock_Article");
533
- //$time_start = microtime(true);
534
foreach ($stockArticles as $stockArticle) {
535
ini_set('max_execution_time', ini_get('max_execution_time')+1 );
536
if (ini_get('max_execution_time') == 100)
@@ -563,11 +558,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
563
Mage::log($e,null,'opensi.log');
564
}
565
}
566
- // $time_end = microtime(true);
567
- // $time = $time_end - $time_start;
568
- // Mage::log("GET STOCK",null,'opensiTimer.log');
569
- // Mage::log($time,null,'opensiTimer.log');
570
- // Mage::log("END GET STOCK",null,'opensiTimer.log');
571
}
572
573
/**
@@ -683,7 +673,6 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
683
continue;
684
}
685
686
- $status = $order->getStatus();
687
//Mage::log($order->getIncrementId()." ".$order->getStatus()." ".$etatCommande->getAttribute('Statut_Paiement')." ".$etatCommande->getAttribute('Statut_Logistique')." ".$etatCommande->getAttribute('Etat') ,null,'opensi.log');
688
//recup du statut de paiement = si termine on facture pour considerer la commande paye
689
if ($etatCommande->getAttribute('Statut_Paiement') == 'T') {
@@ -741,33 +730,49 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
741
foreach ($shipmentCollection as $shipment) {
742
$shipmentId = $shipment->getIncrementId();
743
}
744
- if (empty($shipmentId))
745
- $shipmentId = Mage::getModel('sales/order_shipment_api')->create($order->getIncrementId(), array());
746
}
747
$order->save();
748
}
749
750
//passer derniere valeur a true pour envoyer mail au client
751
switch ($etatCommande->getAttribute('Etat')) {
752
case 'N': //Non validée
753
- if ($status != 'pending' && $status != 'processing' && $status != 'holded' && $status != 'canceled')
754
- $order->setState('pending', true, 'changement de statut OpenSI (Pending)', true);
755
break;
756
757
case 'T': // En cours mais validée
758
- if ($status != 'processing' && $status != 'holded')
759
- $order->setState('processing', true, 'changement de statut OpenSI (Processing)', true);
760
break;
761
762
case 'A': // Annulée
763
- if ($status != 'canceled')
764
- $order->setState('canceled', true, 'changement de statut OpenSI (Canceled)', true);
765
break;
766
767
case 'C': // Cloturée expédiée et facturée
768
- if ($status != 'complete' && Mage::getVersion() < '1.4.0.0'){
769
- $order->setState('complete', true, 'changement de statut OpenSI (Complete)', true);
770
- }
771
break;
772
}
773
$order->save();
@@ -897,8 +902,8 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
897
if (ini_get('max_execution_time') == 100)
898
ini_set('max_execution_time', 50 );
899
$reference = $prixArticle->getAttribute('Reference');
900
- $tarifHT = $prixArticle->getAttribute('Tarif_HT_1');
901
- $tarifTTC = $prixArticle->getAttribute('Tarif_TTC_1');
902
$prixAchat = $prixArticle->getAttribute('Prix_Achat');
903
$product = Mage::getModel('catalog/product')->loadByAttribute("sku", $reference);
904
if ($product && $product->getTypeId() != "bundle") {
@@ -961,4 +966,4 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
961
return true;
962
}
963
964
- }
151
if ($taxClassId != 0) {
152
// $taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest($order->getShippingAddress(), $order->getBillingAddress(), "", $storeId);
153
$taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest();
154
+
155
+ //Préco à tester sur d'autres boutiques :
156
+ //$taxRequest = Mage::getSingleton('tax/calculation')->getRateRequest(false,false,false,Mage::getModel('core/store')->load($storeId));
157
if ($taxRequest->getCustomerClassId()) {
158
$percent = Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($taxClassId));
159
} else if ($taxRequest->getProductClassId()) {
243
$discountAmount = $item->getDiscountAmount();
244
245
//Si il existe une remise en valeur
246
+ $discount = 0;
247
if (!empty($discountAmount) && $itemTotal != 0) {
248
$discount = (1 - (($itemTotal - ($item->getDiscountAmount()/$item->getQtyOrdered())) / $itemTotal)) * 100;
249
$discount = round($discount, 2);
250
}else{
251
+ $discount = 0;
252
}
253
+ $ligneCommandeClient->setAttribute('Remise_Pourc', $discount);
254
255
// $discountPourcent = $item->getDiscountPercent();
256
// //Si il existe un poucentage de remise.
267
// $discount = $discountPourcent;
268
// Mage::log($discount, null, 'opensi.log');
269
// }
270
$ligneCommandeClient->setAttribute('Taux_Tva', round($item->getTaxPercent(),2));
271
272
$commandeWeb->appendChild($ligneCommandeClient);
273
}
274
275
+ // Mage::log($docXml->saveXml(), null, 'opensi.log');
276
$this->sendData('POST', 'create_commande_web', $docXml->saveXml(), $client);
277
} // endforeach $ordercollection
278
285
* Envoie des nouveaux produits vers OpenSI
286
*/
287
public function createArticle($startedAt, $client, $storeId) {
288
289
$productCollection = Mage::getModel('catalog/product')->getCollection()
290
->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))
292
->addStoreFilter($storeId)
293
->addAttributeToSelect('*');
294
ini_set('max_execution_time', 50 );
295
foreach ($productCollection as $product) {
296
ini_set('max_execution_time', ini_get('max_execution_time')+1 );
297
if (ini_get('max_execution_time') == 100)
306
if($this->_error != "409")
307
$this->setStockArticle($product,$client);
308
} // endforeach $productCollection
309
if ($productCollection->count() > 0)
310
$this->setPubwebArticle($startedAt, $client, $storeId);
311
}
398
if ($type == 'create') {
399
$includeTax = Mage::getStoreConfig('tax/calculation/price_includes_tax', $storeId);
400
if ($includeTax) {
401
+ if($client->price_rate == 1){
402
+ $article->setAttribute('Tarif_TTC_'.$client->price_rate, $product->getFinalPrice());
403
+ }else{
404
+ $article->setAttribute('Tarif_TTC_1', 0);
405
+ $article->setAttribute('Tarif_TTC_'.$client->price_rate, $product->getFinalPrice());
406
+ }
407
} else {
408
+ if($client->price_rate == 1){
409
+ $article->setAttribute('Tarif_HT_'.$client->price_rate, $product->getFinalPrice());
410
+ }else{
411
+ $article->setAttribute('Tarif_HT_1', 0);
412
+ $article->setAttribute('Tarif_HT_'.$client->price_rate, $product->getFinalPrice());
413
+ }
414
415
}
416
$product->getCost() != "" ? $article->setAttribute('Prix_Achat', $product->getCost()) : false;
417
// Mage::log(Mage::getSingleton('tax/calculation')->getRate($taxRequest->setProductClassId($product->getTaxClassId())),null,'opensi.log');
418
}
419
$updatedAt = new Datetime($product->getUpdatedAt());
420
$createdAt = new Datetime($product->getCreatedAt());
526
$xmlDomDocument = new DomDocument();
527
$result = $xmlDomDocument->loadXML($resultXML);
528
$stockArticles = $xmlDomDocument->getElementsByTagName("Stock_Article");
529
foreach ($stockArticles as $stockArticle) {
530
ini_set('max_execution_time', ini_get('max_execution_time')+1 );
531
if (ini_get('max_execution_time') == 100)
558
Mage::log($e,null,'opensi.log');
559
}
560
}
561
}
562
563
/**
673
continue;
674
}
675
676
//Mage::log($order->getIncrementId()." ".$order->getStatus()." ".$etatCommande->getAttribute('Statut_Paiement')." ".$etatCommande->getAttribute('Statut_Logistique')." ".$etatCommande->getAttribute('Etat') ,null,'opensi.log');
677
//recup du statut de paiement = si termine on facture pour considerer la commande paye
678
if ($etatCommande->getAttribute('Statut_Paiement') == 'T') {
730
foreach ($shipmentCollection as $shipment) {
731
$shipmentId = $shipment->getIncrementId();
732
}
733
+ if (empty($shipmentId)){
734
+ $shipment = Mage::getModel('sales/service_order', $order)->prepareShipment();
735
+ if ($shipment) {
736
+ $shipment->register();
737
+ $shipment->getOrder()->setIsInProcess(true);
738
+ $transactionSave = Mage::getModel('core/resource_transaction')
739
+ ->addObject($shipment)
740
+ ->addObject($shipment->getOrder())
741
+ ->save();
742
+ }
743
+ }
744
+
745
+ // if (empty($shipmentId))
746
+ // $shipmentId = Mage::getModel('sales/order_shipment_api')->create($order->getIncrementId(), array());
747
}
748
$order->save();
749
}
750
751
+ $status = $order->getStatus();
752
+ $statuses = Mage::getSingleton('sales/order_config')->getStatuses();
753
+
754
//passer derniere valeur a true pour envoyer mail au client
755
switch ($etatCommande->getAttribute('Etat')) {
756
case 'N': //Non validée
757
+ if(isset($statuses['pending'])) unset($statuses['pending']);
758
+ if(!array_key_exists($status,$statuses) && $status != $client->pending_status)
759
+ $order->setState($client->pending_status, true, 'changement de statut OpenSI ('.$client->pending_status.')', true);
760
break;
761
762
case 'T': // En cours mais validée
763
+ unset($statuses[$client->pending_status]);
764
+ if(!array_key_exists($status,$statuses))
765
+ $order->setState($client->processing_status, true, 'changement de statut OpenSI ('.$client->processing_status.')', true);
766
break;
767
768
case 'A': // Annulée
769
+ if ($status != $client->canceled_status)
770
+ $order->setState($client->canceled_status, true, 'changement de statut OpenSI ('.$client->canceled_status.')', true);
771
break;
772
773
case 'C': // Cloturée expédiée et facturée
774
+ if ($status != $client->complete_status && $status != $client->canceled_status && Mage::getVersion() < '1.4.0.0')
775
+ $order->setState($client->complete_status, true, 'changement de statut OpenSI ('.$client->complete_status.')', true);
776
break;
777
}
778
$order->save();
902
if (ini_get('max_execution_time') == 100)
903
ini_set('max_execution_time', 50 );
904
$reference = $prixArticle->getAttribute('Reference');
905
+ $tarifHT = $prixArticle->getAttribute('Tarif_HT_'.$client->price_rate);
906
+ $tarifTTC = $prixArticle->getAttribute('Tarif_TTC_'.$client->price_rate);
907
$prixAchat = $prixArticle->getAttribute('Prix_Achat');
908
$product = Mage::getModel('catalog/product')->loadByAttribute("sku", $reference);
909
if ($product && $product->getTypeId() != "bundle") {
966
return true;
967
}
968
969
+ }
app/code/community/Speedinfo/Opensi/controllers/IndexController.php CHANGED
@@ -59,8 +59,18 @@ class Speedinfo_Opensi_IndexController extends Mage_Adminhtml_Controller_Action
59
$longueur = $params['longueur'];
60
$largeur = $params['largeur'];
61
62
//Mode Test
63
$testMode = $params['test_mode'];
64
65
// préparer les attributs
66
$clientData = array(
@@ -84,7 +94,12 @@ class Speedinfo_Opensi_IndexController extends Mage_Adminhtml_Controller_Action
84
'hauteur' => $hauteur,
85
'longueur' => $longueur,
86
'largeur' => $largeur,
87
'test_mode' => $testMode,
88
);
89
$client->setData($clientData);
90
$params['id'] != 0 ? $client->setId($params['id']) : '';
59
$longueur = $params['longueur'];
60
$largeur = $params['largeur'];
61
62
+ //Gestion des tarifs
63
+ $priceRate = $params['price_rate'];
64
+
65
//Mode Test
66
$testMode = $params['test_mode'];
67
+
68
+ //Gestion des statuts de commandes
69
+ $pending = $params['statuses']['pending'];
70
+ $processing = $params['statuses']['processing'];
71
+ $complete = $params['statuses']['complete'];
72
+ $canceled = $params['statuses']['canceled'];
73
+ Mage::log($pending);
74
75
// préparer les attributs
76
$clientData = array(
94
'hauteur' => $hauteur,
95
'longueur' => $longueur,
96
'largeur' => $largeur,
97
+ 'price_rate' => $priceRate,
98
'test_mode' => $testMode,
99
+ 'pending_status' => $pending,
100
+ 'processing_status' => $processing,
101
+ 'complete_status' => $complete,
102
+ 'canceled_status' => $canceled
103
);
104
$client->setData($clientData);
105
$params['id'] != 0 ? $client->setId($params['id']) : '';
app/code/community/Speedinfo/Opensi/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
<config>
3
<modules>
4
<Speedinfo_Opensi>
5
- <version>0.3.7</version>
6
</Speedinfo_Opensi>
7
</modules>
8
<global>
2
<config>
3
<modules>
4
<Speedinfo_Opensi>
5
+ <version>0.3.8</version>
6
</Speedinfo_Opensi>
7
</modules>
8
<global>
app/code/community/Speedinfo/Opensi/sql/opensi_setup/mysql4-upgrade-0.3.7-0.3.8.php ADDED
@@ -0,0 +1,40 @@
1
+ <?php
2
+ /**
3
+ * Update des tables
4
+ *
5
+ * @Author Speedinfo
6
+ * http://wwww.speedinfo.fr | http://www.opensi.fr
7
+ */
8
+
9
+ $installer = $this;
10
+
11
+ $installer->startSetup();
12
+
13
+ $db = $installer->getConnection();
14
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'price_rate')) {
15
+ $installer->run("
16
+ ALTER TABLE {$this->getTable('opensi_client')} ADD price_rate int(1) NOT NULL default '1';
17
+ ");
18
+ }
19
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'pending_status')) {
20
+ $installer->run("
21
+ ALTER TABLE {$this->getTable('opensi_client')} ADD pending_status varchar(50) NOT NULL default 'pending';
22
+ ");
23
+ }
24
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'processing_status')) {
25
+ $installer->run("
26
+ ALTER TABLE {$this->getTable('opensi_client')} ADD processing_status varchar(50) NOT NULL default 'processing';
27
+ ");
28
+ }
29
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'complete_status')) {
30
+ $installer->run("
31
+ ALTER TABLE {$this->getTable('opensi_client')} ADD complete_status varchar(50) NOT NULL default 'complete';
32
+ ");
33
+ }
34
+ if(!$db->tableColumnExists($this->getTable('opensi_client'), 'canceled_status')) {
35
+ $installer->run("
36
+ ALTER TABLE {$this->getTable('opensi_client')} ADD canceled_status varchar(50) NOT NULL default 'canceled';
37
+ ");
38
+ }
39
+ //end
40
+ $installer->endSetup();
app/locale/fr_FR/Speedinfo_OpenSi.csv CHANGED
@@ -16,4 +16,6 @@
16
"Width in m :","Largeur en m :"
17
"Linking families","Liaison des familles"
18
"Linking attributes","Liaison des attributs"
19
- "Family","Famille"
16
"Width in m :","Largeur en m :"
17
"Linking families","Liaison des familles"
18
"Linking attributes","Liaison des attributs"
19
+ "Family","Famille"
20
+ "Linking price rates","Liaison des tarifs"
21
+ "Linking orders status","Liaison des statuts de commandes"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
<?xml version="1.0"?>
2
<package>
3
<name>Speedinfo_Opensi</name>
4
- <version>0.3.7</version>
5
<stability>stable</stability>
6
<license>GPL</license>
7
<channel>community</channel>
@@ -10,13 +10,13 @@
10
<description>Le module OpenSi Connect vous permet de coupler Magento au logiciel de gestion commerciale et de comptabilit&#xE9; OpenSi E-Commerce.
11
Speedinfo a con&#xE7;u un connecteur pour OpenSi E-Commerce et Magento sous la forme du module OpenSi Connect
12
OpenSi E-Commerce, est un logiciel de gestion commerciale et de comptabilit&#xE9; d&#xE9;di&#xE9; &#xE0; l'e-commerce.</description>
13
- <notes>Mise &#xE0; jour du module vers la version 0.3.7
14
- (Bug Fix : Pourcentage de remise)
15
Pour plus d'informations, se r&#xE9;f&#xE9;rer &#xE0; la documentation.</notes>
16
<authors><author><name>Dray</name><user>auto-converted</user><email>rony.dray@speedinfo.fr</email></author></authors>
17
- <date>2011-08-03</date>
18
- <time>08:44:41</time>
19
- <contents><target name="mage"><dir name="app"><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="opensi"><dir name="tab"><file name="webservices.phtml" hash="44197706123f54d5c2e17475cd64b9f1"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></dir></dir><dir name="locale"><dir name="fr_FR"><file name="Speedinfo_OpenSi.csv" hash="51f46b50056059d178766fa9111fe072"/></dir></dir></dir></target><target name="magecommunity"><dir name="Speedinfo"><dir name="Opensi"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Attributs.php" hash="562e895af0d5f2a1cffa1be63d0b5fa4"/><file name="Familles.php" hash="317e2361f1dcb6c494ca9ab6bf0d5cae"/><file name="General.php" hash="485e888e215dde1762a42d147cced3e1"/><file name="Webservices.php" hash="09ccc564f6ba4e7cbb58e0357c43e035"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="b91602dd06e9432d879db352fa2aaeaa"/><file name="Grid.php" hash="6ace416ae5264fed2bbc57aa5d152e6e"/><file name="Tabs.php" hash="4383dd11c3e1fffe43868e489f6b977f"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="9754ad25b294a0306d4e28090bf9e4cb"/></dir><dir name="etc"><file name="config.xml" hash="185446cd123b9187465cb78350a35896"/></dir><dir name="Helper"><file name="Data.php" hash="b5798cdae9319b34ada4c3de5964c0b4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Errorlog"><file name="Collection.php" hash="ad19bb95ad5e56f0dcaeff4db10cf52f"/></dir><dir name="Webservice"><file name="Collection.php" hash="3a5e5d973ffb834d4eadec4f9335b36e"/></dir><file name="Client.php" hash="0b47754c6aace0dc54340dfd807eb17a"/><file name="Errorlog.php" hash="9a8c882377bbdeada65c7c5d8346af35"/><file name="Webservice.php" hash="781eb93e76ba8bffe881f091904d0f98"/></dir><file name="Client.php" hash="f89aeb3dda8d8a27bf6a05e5082a945e"/><file name="Cron.php" hash="c2dccdfb120a3d8639ff88523c1e655e"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="b7fedf4d9a87391314c5899d285b53c7"/></dir><dir name="sql"><dir name="opensi_setup"><file name="mysql4-install-0.1.0.php" hash="ce8cef17aac76ccfadf09d7d84d23841"/><file name="mysql4-upgrade-0.2.0-0.2.1.php" hash="f207b0704a6cad542dced6b40ac25341"/><file name="mysql4-upgrade-0.2.4-0.2.5.php" hash="99fcd03734f514441005dd8af5c22809"/></dir></dir></dir></dir></target></contents>
20
<compatible/>
21
<dependencies/>
22
</package>
1
<?xml version="1.0"?>
2
<package>
3
<name>Speedinfo_Opensi</name>
4
+ <version>0.3.8</version>
5
<stability>stable</stability>
6
<license>GPL</license>
7
<channel>community</channel>
10
<description>Le module OpenSi Connect vous permet de coupler Magento au logiciel de gestion commerciale et de comptabilit&#xE9; OpenSi E-Commerce.
11
Speedinfo a con&#xE7;u un connecteur pour OpenSi E-Commerce et Magento sous la forme du module OpenSi Connect
12
OpenSi E-Commerce, est un logiciel de gestion commerciale et de comptabilit&#xE9; d&#xE9;di&#xE9; &#xE0; l'e-commerce.</description>
13
+ <notes>Mise &#xE0; jour du module vers la version 0.3.8
14
+ Ajout de la gestion des multi-tarif et des statuts de commandes
15
Pour plus d'informations, se r&#xE9;f&#xE9;rer &#xE0; la documentation.</notes>
16
<authors><author><name>Dray</name><user>auto-converted</user><email>rony.dray@speedinfo.fr</email></author></authors>
17
+ <date>2011-10-19</date>
18
+ <time>08:58:17</time>
19
+ <contents><target name="mage"><dir name="app"><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="opensi"><dir name="tab"><file name="webservices.phtml" hash="44197706123f54d5c2e17475cd64b9f1"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></dir></dir><dir name="locale"><dir name="fr_FR"><file name="Speedinfo_OpenSi.csv" hash="5f9588a7c9400f4b4f2a9918aa982280"/></dir></dir></dir></target><target name="magecommunity"><dir name="Speedinfo"><dir name="Opensi"><dir name="Block"><dir name="Adminhtml"><dir name="Edit"><dir name="Tab"><file name="Attributs.php" hash="dc90c116fb478dfdf5ba32d5ad74b57b"/><file name="Familles.php" hash="317e2361f1dcb6c494ca9ab6bf0d5cae"/><file name="General.php" hash="485e888e215dde1762a42d147cced3e1"/><file name="OrdersStatus.php" hash="729eae4fb730f4248fa7438e15265b87"/><file name="Prices.php" hash="4f453dc3851c11ede9abbb796efae4ba"/><file name="Webservices.php" hash="09ccc564f6ba4e7cbb58e0357c43e035"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="b91602dd06e9432d879db352fa2aaeaa"/><file name="Grid.php" hash="6ace416ae5264fed2bbc57aa5d152e6e"/><file name="Tabs.php" hash="927e3f9077573fcc0d43825527139954"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="0b5785aa403bd98974834f2115314d00"/></dir><dir name="etc"><file name="config.xml" hash="c75f2e985560c532e3b6a5235c00eeb0"/></dir><dir name="Helper"><file name="Data.php" hash="b5798cdae9319b34ada4c3de5964c0b4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Errorlog"><file name="Collection.php" hash="ad19bb95ad5e56f0dcaeff4db10cf52f"/></dir><dir name="Webservice"><file name="Collection.php" hash="3a5e5d973ffb834d4eadec4f9335b36e"/></dir><file name="Client.php" hash="0b47754c6aace0dc54340dfd807eb17a"/><file name="Errorlog.php" hash="9a8c882377bbdeada65c7c5d8346af35"/><file name="Webservice.php" hash="781eb93e76ba8bffe881f091904d0f98"/></dir><file name="Client.php" hash="f89aeb3dda8d8a27bf6a05e5082a945e"/><file name="Cron.php" hash="c2dccdfb120a3d8639ff88523c1e655e"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="46cee52bec4ba862a4886a690db79e4d"/></dir><dir name="sql"><dir name="opensi_setup"><file name="mysql4-install-0.1.0.php" hash="ce8cef17aac76ccfadf09d7d84d23841"/><file name="mysql4-upgrade-0.2.0-0.2.1.php" hash="f207b0704a6cad542dced6b40ac25341"/><file name="mysql4-upgrade-0.2.4-0.2.5.php" hash="99fcd03734f514441005dd8af5c22809"/><file name="mysql4-upgrade-0.3.7-0.3.8.php" hash="86bb9fffb78d2e3d5e6fa7dd3e1175dd"/></dir></dir></dir></dir></target></contents>
20
<compatible/>
21
<dependencies/>
22
</package>