Version Notes
Correction du cron pour le multi-store
Download this release
Release Info
Developer | Magento Core Team |
Extension | Speedinfo_Opensi |
Version | 0.2.0 |
Comparing to | |
See all releases |
Code changes from version 0.1.2 to 0.2.0
app/code/community/Speedinfo/Opensi/Helper/Data.php
CHANGED
@@ -10,11 +10,11 @@ class Speedinfo_Opensi_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
10 |
|
11 |
public function getWebservicesName() {
|
12 |
$ws['Articles'] = array(
|
13 |
-
'createArticle' => array('title' => 'Création des articles', 'subtitle' => '(Envoi des articles du site vers OpenSi)', 'frequency' => 120),
|
14 |
-
'updateArticle' => array('title' => 'Mise à jour des articles', 'subtitle' => '(Envoi des mises à jour du site vers OpenSi)', 'frequency' => 60),
|
15 |
'getStockArticle' => array('title' => 'Récupération du stock des articles', 'subtitle' => '(Envoi du stock d\'OpenSi vers le site)', 'frequency' => 30),
|
16 |
'getPrixArticle' => array('title' => 'Récupération du prix des articles', 'subtitle' => '(Envoi du prix des articles d\'OpenSi vers le site)', 'frequency' => 30),
|
17 |
-
'getPubwebArticle' => array('title' => 'Récupération des statuts de publicatoin des articles', 'subtitle' => '(Envoi des statuts de publicatoin d\'OpenSi vers le site)', 'frequency' => 30)
|
|
|
|
|
18 |
);
|
19 |
|
20 |
$ws['Commandes'] = array(
|
@@ -31,4 +31,4 @@ class Speedinfo_Opensi_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
31 |
return $ws;
|
32 |
}
|
33 |
|
34 |
-
}
|
10 |
|
11 |
public function getWebservicesName() {
|
12 |
$ws['Articles'] = array(
|
|
|
|
|
13 |
'getStockArticle' => array('title' => 'Récupération du stock des articles', 'subtitle' => '(Envoi du stock d\'OpenSi vers le site)', 'frequency' => 30),
|
14 |
'getPrixArticle' => array('title' => 'Récupération du prix des articles', 'subtitle' => '(Envoi du prix des articles d\'OpenSi vers le site)', 'frequency' => 30),
|
15 |
+
'getPubwebArticle' => array('title' => 'Récupération des statuts de publicatoin des articles', 'subtitle' => '(Envoi des statuts de publicatoin d\'OpenSi vers le site)', 'frequency' => 30),
|
16 |
+
'createArticle' => array('title' => 'Création des articles', 'subtitle' => '(Envoi des articles du site vers OpenSi)', 'frequency' => 120),
|
17 |
+
'updateArticle' => array('title' => 'Mise à jour des articles', 'subtitle' => '(Envoi des mises à jour du site vers OpenSi)', 'frequency' => 60)
|
18 |
);
|
19 |
|
20 |
$ws['Commandes'] = array(
|
31 |
return $ws;
|
32 |
}
|
33 |
|
34 |
+
}
|
app/code/community/Speedinfo/Opensi/Model/Cron.php
CHANGED
@@ -28,8 +28,10 @@ class Speedinfo_Opensi_Model_Cron extends Mage_Core_Model_Abstract {
|
|
28 |
$client = Mage::getModel('opensi/client')->loadByStore($storeId);
|
29 |
// le client du store existe, on utilise sa config
|
30 |
if (!empty($client)) {
|
|
|
31 |
$webservices = Mage::getModel('opensi/webservice')->getCollection()->addFieldToFilter('client_id,', $client->id);
|
32 |
} else {
|
|
|
33 |
$webservices = $webservicesDefault;
|
34 |
$client = $clientDefault;
|
35 |
}
|
@@ -40,7 +42,7 @@ class Speedinfo_Opensi_Model_Cron extends Mage_Core_Model_Abstract {
|
|
40 |
$lastStartString = $webservice->getStartedAt();
|
41 |
// si y'a pas date de dernier lancement, on tous les articles, et les commandes / clients du jour
|
42 |
if (empty($lastStartString)) {
|
43 |
-
if ($webserviceName == 'createArticle'){
|
44 |
$lastStart = new DateTime('1970-01-01');
|
45 |
} else {
|
46 |
$lastStart = new DateTime(date('Y-m-d'));
|
@@ -54,14 +56,15 @@ class Speedinfo_Opensi_Model_Cron extends Mage_Core_Model_Abstract {
|
|
54 |
$interval = ($now->format('U') - $lastStart->format('U')) / 60;
|
55 |
// si le temps passe depuis le dernier lancement est superieur ou egal a la frequence de lancement
|
56 |
if ($interval >= $frequency) {
|
57 |
-
|
58 |
// on prend une marge pour pas rater d'infos
|
59 |
$lastStart->modify('-5 min');
|
60 |
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
65 |
$storeId = 0;
|
66 |
} else {
|
67 |
$storeId = $baseStoreId;
|
@@ -72,6 +75,33 @@ class Speedinfo_Opensi_Model_Cron extends Mage_Core_Model_Abstract {
|
|
72 |
}
|
73 |
}
|
74 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
|
77 |
/**
|
@@ -79,22 +109,15 @@ class Speedinfo_Opensi_Model_Cron extends Mage_Core_Model_Abstract {
|
|
79 |
* @return array $storeList liste des store_id excluant le store par defaut
|
80 |
*/
|
81 |
protected function getStoreIds() {
|
82 |
-
$stores = Mage::getModel('core/store_group')
|
83 |
-
->getResourceCollection()
|
84 |
-
->setLoadDefault(true)
|
85 |
-
->load();
|
86 |
-
|
87 |
-
$stores = $stores->toArray();
|
88 |
-
$stores = $stores['items'];
|
89 |
-
|
90 |
$storeList = array();
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
|
|
95 |
}
|
96 |
|
97 |
return $storeList;
|
98 |
}
|
99 |
|
100 |
-
}
|
28 |
$client = Mage::getModel('opensi/client')->loadByStore($storeId);
|
29 |
// le client du store existe, on utilise sa config
|
30 |
if (!empty($client)) {
|
31 |
+
$useDefaultView = false;
|
32 |
$webservices = Mage::getModel('opensi/webservice')->getCollection()->addFieldToFilter('client_id,', $client->id);
|
33 |
} else {
|
34 |
+
$useDefaultView = true;
|
35 |
$webservices = $webservicesDefault;
|
36 |
$client = $clientDefault;
|
37 |
}
|
42 |
$lastStartString = $webservice->getStartedAt();
|
43 |
// si y'a pas date de dernier lancement, on tous les articles, et les commandes / clients du jour
|
44 |
if (empty($lastStartString)) {
|
45 |
+
if ($webserviceName == 'createArticle') {
|
46 |
$lastStart = new DateTime('1970-01-01');
|
47 |
} else {
|
48 |
$lastStart = new DateTime(date('Y-m-d'));
|
56 |
$interval = ($now->format('U') - $lastStart->format('U')) / 60;
|
57 |
// si le temps passe depuis le dernier lancement est superieur ou egal a la frequence de lancement
|
58 |
if ($interval >= $frequency) {
|
|
|
59 |
// on prend une marge pour pas rater d'infos
|
60 |
$lastStart->modify('-5 min');
|
61 |
|
62 |
+
// si c'est un store par defaut on le met pas a jour parce qu'il peut y'en avoir plusieurs en suivant
|
63 |
+
if (!$useDefaultView) {
|
64 |
+
$webservice->setStartedAt($now->format('Y-m-d H:i:s'));
|
65 |
+
$webservice->save();
|
66 |
+
}
|
67 |
+
if ($webserviceName == 'createArticle' || $webserviceName == 'updateArticle') {
|
68 |
$storeId = 0;
|
69 |
} else {
|
70 |
$storeId = $baseStoreId;
|
75 |
}
|
76 |
}
|
77 |
}
|
78 |
+
|
79 |
+
// on met a jour les dates pour le store par defaut
|
80 |
+
if (!empty($webservicesDefault)) {
|
81 |
+
foreach ($webservicesDefault as $webservice) {
|
82 |
+
$webserviceName = $webservice->getName();
|
83 |
+
$lastStartString = $webservice->getStartedAt();
|
84 |
+
// si y'a pas date de dernier lancement, on tous les articles, et les commandes / clients du jour
|
85 |
+
if (empty($lastStartString)) {
|
86 |
+
if ($webserviceName == 'createArticle') {
|
87 |
+
$lastStart = new DateTime('1970-01-01');
|
88 |
+
} else {
|
89 |
+
$lastStart = new DateTime(date('Y-m-d'));
|
90 |
+
}
|
91 |
+
} else {
|
92 |
+
$lastStart = new DateTime($lastStartString);
|
93 |
+
}
|
94 |
+
$frequency = $webservice->getFrequency();
|
95 |
+
$now = new Datetime();
|
96 |
+
|
97 |
+
$interval = ($now->format('U') - $lastStart->format('U')) / 60;
|
98 |
+
// si le temps passe depuis le dernier lancement est superieur ou egal a la frequence de lancement
|
99 |
+
if ($interval >= $frequency) {
|
100 |
+
$webservice->setStartedAt($now->format('Y-m-d H:i:s'));
|
101 |
+
$webservice->save();
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
105 |
}
|
106 |
|
107 |
/**
|
109 |
* @return array $storeList liste des store_id excluant le store par defaut
|
110 |
*/
|
111 |
protected function getStoreIds() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
$storeList = array();
|
113 |
+
$allStores = Mage::app()->getStores();
|
114 |
+
foreach ($allStores as $key => $value) {
|
115 |
+
$storeId = $storeId = Mage::app()->getStore($key)->getId();
|
116 |
+
if ($storeId != '0')
|
117 |
+
array_push($storeList, $storeId);
|
118 |
}
|
119 |
|
120 |
return $storeList;
|
121 |
}
|
122 |
|
123 |
+
}
|
app/code/community/Speedinfo/Opensi/Model/Webservices.php
CHANGED
@@ -50,8 +50,8 @@ class Speedinfo_Opensi_Model_Webservices extends Mage_Core_Model_Abstract {
|
|
50 |
* Envoie des nouvelles commandes vers OpenSI
|
51 |
*/
|
52 |
public function createCommandeWeb($startedAt, $client, $storeId) {
|
53 |
-
$orderCollection = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))->addFieldToFilter('store_id', $storeId);
|
54 |
|
|
|
55 |
if ($orderCollection->count() > 0) {
|
56 |
$this->createArticle($startedAt, $client, $storeId);
|
57 |
$this->createClientWeb($startedAt, $client, $storeId);
|
50 |
* Envoie des nouvelles commandes vers OpenSI
|
51 |
*/
|
52 |
public function createCommandeWeb($startedAt, $client, $storeId) {
|
|
|
53 |
|
54 |
+
$orderCollection = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('created_at', array('gteq' => $startedAt->format('Y-m-d H:i:s')))->addFieldToFilter('store_id', $storeId);
|
55 |
if ($orderCollection->count() > 0) {
|
56 |
$this->createArticle($startedAt, $client, $storeId);
|
57 |
$this->createClientWeb($startedAt, $client, $storeId);
|
app/code/community/Speedinfo/Opensi/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Speedinfo_Opensi>
|
5 |
-
<version>0.
|
6 |
</Speedinfo_Opensi>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Speedinfo_Opensi>
|
5 |
+
<version>0.2.0</version>
|
6 |
</Speedinfo_Opensi>
|
7 |
</modules>
|
8 |
<global>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Speedinfo_Opensi</name>
|
4 |
-
<version>0.
|
5 |
<stability>stable</stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
@@ -10,11 +10,11 @@
|
|
10 |
<description>Le module OpenSi Connect vous permet de coupler Magento au logiciel de gestion commerciale et de comptabilité OpenSi E-Commerce.
|
11 |
Speedinfo a conç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é dédié à l'e-commerce</description>
|
13 |
-
<notes>
|
14 |
<authors><author><name>Siau</name><user>auto-converted</user><email>jerome@speedinfo.fr</email></author></authors>
|
15 |
-
<date>2010-11-
|
16 |
-
<time>
|
17 |
-
<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="fa3ab728342e6e3b4b7990c959e1bfc3"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></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="General.php" hash="d1c825f23321e21f0fea86ac599dbfd9"/><file name="Webservices.php" hash="831734689e81b44d51329b2dd89d3c61"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="1b1bbc699e9b318c098e815d7d924a64"/><file name="Grid.php" hash="938359d0bf4a9d26037fd121c71d1658"/><file name="Tabs.php" hash="2ec68b8a4dce8b680344ebb2b1d8e0fc"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="b843e876de91d68e5851bd4f17d5c06e"/></dir><dir name="etc"><file name="config.xml" hash="
|
18 |
<compatible/>
|
19 |
<dependencies/>
|
20 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Speedinfo_Opensi</name>
|
4 |
+
<version>0.2.0</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é OpenSi E-Commerce.
|
11 |
Speedinfo a conç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é dédié à l'e-commerce</description>
|
13 |
+
<notes>Correction du cron pour le multi-store</notes>
|
14 |
<authors><author><name>Siau</name><user>auto-converted</user><email>jerome@speedinfo.fr</email></author></authors>
|
15 |
+
<date>2010-11-22</date>
|
16 |
+
<time>09:06:59</time>
|
17 |
+
<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="fa3ab728342e6e3b4b7990c959e1bfc3"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Speedinfo_Opensi.xml" hash="16cc3fbf8e32ce7b8add016bfbc89c5f"/></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="General.php" hash="d1c825f23321e21f0fea86ac599dbfd9"/><file name="Webservices.php" hash="831734689e81b44d51329b2dd89d3c61"/></dir><file name="Form.php" hash="3ce2dc7af0ec4c5a44178ac46d6178a8"/></dir><file name="Edit.php" hash="1b1bbc699e9b318c098e815d7d924a64"/><file name="Grid.php" hash="938359d0bf4a9d26037fd121c71d1658"/><file name="Tabs.php" hash="2ec68b8a4dce8b680344ebb2b1d8e0fc"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="b843e876de91d68e5851bd4f17d5c06e"/></dir><dir name="etc"><file name="config.xml" hash="555092cb71d54f3b3dcd8d6dc5a6a34c"/></dir><dir name="Helper"><file name="Data.php" hash="71b49d1649d80cb1bb84ba1c822a23c8"/></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="ae8fab79e5fd2124d4f94eb0fc858c83"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="d181ed0e32bd4e99662739d8ed3ceeff"/></dir><dir name="sql"><dir name="opensi_setup"><file name="mysql4-install-0.1.0.php" hash="ce8cef17aac76ccfadf09d7d84d23841"/></dir></dir></dir></dir></target></contents>
|
18 |
<compatible/>
|
19 |
<dependencies/>
|
20 |
</package>
|