Speedinfo_Opensi - Version 0.2.0

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
- $webservice->setStartedAt($now->format('Y-m-d H:i:s'));
62
- $webservice->save();
63
- if ($webserviceName == 'createArticle' || $webserviceName == 'updateArticle'){
64
- Mage::log('in ARTICLE', null, 'opensi.log');
 
 
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
- foreach ($stores as $store) {
92
- if ($store['default_store_id'] != '0') {
93
- array_push($storeList, $store['default_store_id']);
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.1.2</version>
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.1.2</version>
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&#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>Modification gestion des familles</notes>
14
  <authors><author><name>Siau</name><user>auto-converted</user><email>jerome@speedinfo.fr</email></author></authors>
15
- <date>2010-11-19</date>
16
- <time>15:07:28</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="ee65a4c8a90327da038c83242a4ec29f"/></dir><dir name="Helper"><file name="Data.php" hash="c3e58e5695ad3f7cd613d61205fcaf99"/></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="263e89d0985c67d85d52e061c78e0eff"/><file name="Errorlog.php" hash="d269ec20ae481684a1daa2c515848252"/><file name="Webservice.php" hash="c77708c3507d79a83e64a1801ea255c2"/><file name="Webservices.php" hash="48a9f93b42ab44d138b1f593b0f2ef2a"/></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>
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&#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>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>