Asulpunto_Unicentaopos - Version 1.0.1

Version Notes

1.0.1
- uniCenta oPOS Table names sometimes lost their case after and import/export between linux/windows. The extension is now case-insensitive.

1.0.0
- UTF-8 fix
- Test connection error message showed invalid log file location
- New products in unicenta were not transfering details, it worked only on update once a product was modified in unicenta.
- Improved error reporting around connection testing

0.0.9
- Refactored Code
- You can choose if attributes are always transfered or only on product creation
- Moved Test Connection to database connection details
- Renamed the configurations
- Added Sycn Products button to enable you to test it is working without waiting for cron
- Added Sycn Stock button to enable you to test it is working without waiting for cron
- Fixed bug for Magento installations with a prefix

0.0.5
* Product set can be configured from Admin. This also solves a problem when Magento's default attribute set was deleted.
* The warehouse that will track the stock can be selected from admin configuration.
* Images on Unicenta are tranfered to Magento when the Magento Product does not have any images.

0.0.4
Advanced log to identify database connection issues

0.0.3
First official public release

Download this release

Release Info

Developer asulpunto
Extension Asulpunto_Unicentaopos
Version 1.0.1
Comparing to
See all releases


Code changes from version 1.0.0 to 1.0.1

app/code/community/Asulpunto/Unicentaopos/Helper/Data.php CHANGED
@@ -25,6 +25,10 @@
25
  class Asulpunto_Unicentaopos_Helper_Data extends Mage_Core_Helper_Abstract
26
  {
27
 
 
 
 
 
28
  public function getUnicentaOposConnection(){
29
  $url=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/url');
30
  $login=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/login');
25
  class Asulpunto_Unicentaopos_Helper_Data extends Mage_Core_Helper_Abstract
26
  {
27
 
28
+ public function getTableName($table){
29
+ return Mage::getStoreConfig("asulpuntounicentaopos/tablenames/$table");
30
+ }
31
+
32
  public function getUnicentaOposConnection(){
33
  $url=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/url');
34
  $login=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/login');
app/code/community/Asulpunto/Unicentaopos/Model/Unicentaoposapi.php CHANGED
@@ -22,17 +22,41 @@
22
 
23
  class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstract
24
  {
25
-
26
- public function checkActivate(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
 
29
- $rows=Mage::Helper('unicentaopos')->doQuery("select * from `APPLICATIONS`");
30
- if (!is_null($rows)){
31
- foreach ($rows as $row){
32
- if ($row['ID']=='unicentaopos')
33
- return 'OK';
34
- }
35
- }
36
  $error['url']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/url');
37
  $error['login']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/login');
38
  $error['password']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/password');
@@ -41,6 +65,20 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
41
  return json_encode($error);
42
  }
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  public function cronProducts($mode){
45
 
46
  $ps=Mage::getModel('unicentaopos/productstock');
@@ -53,8 +91,9 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
53
  $ps->configSim($mode);
54
  }
55
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
 
56
  if (is_null($db))return false;
57
- $sql="select * from `PRODUCTS`";
58
  $rows=$db->query($sql);
59
  if (is_null($rows)) return false;
60
 
@@ -73,7 +112,10 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
73
  $loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
74
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
75
  if (is_null($db)) return false;
76
- $sql="select b.REFERENCE as REFERENCE,a.UNITS as UNITS from `STOCKCURRENT` a , `PRODUCTS` b where a.PRODUCT=b.ID and location='$loc'";
 
 
 
77
 
78
  $rows=$db->query($sql);
79
  foreach ($rows as $row){
@@ -91,11 +133,13 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
91
  private function _updateUnicentaStock(){
92
  $loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
93
  $col=Mage::getModel('unicentaopos/unicentaoposorderitem')->getCollection()->addFilter('stockupdated',1);
 
 
94
 
95
  try{
96
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
97
  foreach($col as $item){
98
- $sql="UPDATE `STOCKCURRENT` set UNITS=UNITS-{$item->getQuantity()} where PRODUCT=(SELECT ID FROM PRODUCTS WHERE REFERENCE='{$item->getSku()}') and location='$loc'";
99
  $res=$db->query($sql);
100
  $item->setStockupdated(0);
101
  $item->save();
@@ -130,6 +174,7 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
130
  foreach($res as $row){
131
  $order=Mage::getModel('sales/order')->load($row['entity_id']);
132
  $so->writeStockOrder($order);
 
133
  }
134
  $this->_updateUnicentaStock();
135
  }
@@ -149,7 +194,8 @@ class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstr
149
  public function getLocations(){
150
  try{
151
  $ARR=array();
152
- $rows=Mage::Helper('unicentaopos')->doQuery("select * from `LOCATIONS`");
 
153
  if (!is_null($rows)){
154
  foreach ($rows as $row){
155
  $ARR[$row['ID']]=$row['NAME'];
22
 
23
  class Asulpunto_Unicentaopos_Model_Unicentaoposapi extends Mage_Core_Model_Abstract
24
  {
25
+ const TABLE_PRODUCTS='products';
26
+ const TABLE_LOCATIONS='locations';
27
+ const TABLE_STOCKCURRENT='stockcurrent';
28
+ const TABLE_APPLICATIONS='applications';
29
+
30
+ public function checkActivate(){
31
+ $config = new Mage_Core_Model_Config();
32
+ $rows=Mage::Helper('unicentaopos')->doQuery("show tables");
33
+ $hasTables=false;
34
+ if (!is_null($rows)){
35
+ Mage::log(__METHOD__.'SHOW TABLES: '.print_r($rows,true),null,"asulpunto_unicentaopos.log");
36
+ foreach ($rows as $row){
37
+ $hasTables=true;
38
+ if (strtolower($row[0])==self::TABLE_PRODUCTS){
39
+ $config->saveConfig("asulpuntounicentaopos/tablenames/".self::TABLE_PRODUCTS, $row[0], 'default', 0);
40
+ }
41
+ if (strtolower($row[0])==self::TABLE_APPLICATIONS){
42
+ $config->saveConfig("asulpuntounicentaopos/tablenames/".self::TABLE_APPLICATIONS, $row[0], 'default', 0);
43
+ }
44
+ if (strtolower($row[0])==self::TABLE_LOCATIONS){
45
+ $config->saveConfig("asulpuntounicentaopos/tablenames/".self::TABLE_LOCATIONS, $row[0], 'default', 0);
46
+ }
47
+ if (strtolower($row[0])==self::TABLE_STOCKCURRENT){
48
+ $config->saveConfig("asulpuntounicentaopos/tablenames/".self::TABLE_STOCKCURRENT, $row[0], 'default', 0);
49
+ }
50
+ }
51
+ }else{
52
+ Mage::log(__METHOD__.'SHOW TABLES: IS EMPTY ',null,"asulpunto_unicentaopos.log");
53
+ }
54
+ Mage::app()->getConfig()->reinit();//reinit settings
55
+ if ($hasTables){
56
+ if ($this->_checkApplication()) return 'OK';
57
+ }
58
 
59
 
 
 
 
 
 
 
 
60
  $error['url']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/url');
61
  $error['login']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/login');
62
  $error['password']=Mage::getStoreConfig('asulpuntounicentaopos/unicentaconfig/password');
65
  return json_encode($error);
66
  }
67
 
68
+ private function _checkApplication(){
69
+ $applicationsTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_APPLICATIONS);
70
+ $rows=Mage::Helper('unicentaopos')->doQuery("select * from `$applicationsTable`");
71
+ if (!is_null($rows)){
72
+ foreach ($rows as $row){
73
+ if ($row['ID']=='unicentaopos')
74
+ return true;
75
+ }
76
+ }
77
+ Mage::log(__METHOD__.'Test Connection Failed',null,"asulpunto_unicentaopos.log");
78
+ return false;
79
+ }
80
+
81
+
82
  public function cronProducts($mode){
83
 
84
  $ps=Mage::getModel('unicentaopos/productstock');
91
  $ps->configSim($mode);
92
  }
93
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
94
+ $productsTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_PRODUCTS);
95
  if (is_null($db))return false;
96
+ $sql="select * from `$productsTable`";
97
  $rows=$db->query($sql);
98
  if (is_null($rows)) return false;
99
 
112
  $loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
113
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
114
  if (is_null($db)) return false;
115
+ $stockcurrentTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_STOCKCURRENT);
116
+ $productsTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_PRODUCTS);
117
+
118
+ $sql="select b.REFERENCE as REFERENCE,a.UNITS as UNITS from `$stockcurrentTable` a , `$productsTable` b where a.PRODUCT=b.ID and location='$loc'";
119
 
120
  $rows=$db->query($sql);
121
  foreach ($rows as $row){
133
  private function _updateUnicentaStock(){
134
  $loc=Mage::getStoreConfig('asulpuntounicentaopos/tools/location');
135
  $col=Mage::getModel('unicentaopos/unicentaoposorderitem')->getCollection()->addFilter('stockupdated',1);
136
+ $stockcurrentTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_STOCKCURRENT);
137
+ $productsTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_PRODUCTS);
138
 
139
  try{
140
  $db=Mage::Helper('unicentaopos')->getUnicentaOposConnection();
141
  foreach($col as $item){
142
+ $sql="UPDATE `$stockcurrentTable` set UNITS=UNITS-{$item->getQuantity()} where PRODUCT=(SELECT ID FROM $productsTable WHERE REFERENCE='{$item->getSku()}') and location='$loc'";
143
  $res=$db->query($sql);
144
  $item->setStockupdated(0);
145
  $item->save();
174
  foreach($res as $row){
175
  $order=Mage::getModel('sales/order')->load($row['entity_id']);
176
  $so->writeStockOrder($order);
177
+ Mage::dispatchEvent('asulpunto_unicentaoposapi_post_order',array('order'=>$order));
178
  }
179
  $this->_updateUnicentaStock();
180
  }
194
  public function getLocations(){
195
  try{
196
  $ARR=array();
197
+ $locationsTable=Mage::Helper('unicentaopos')->getTableName(self::TABLE_LOCATIONS);
198
+ $rows=Mage::Helper('unicentaopos')->doQuery("select * from `$locationsTable`");
199
  if (!is_null($rows)){
200
  foreach ($rows as $row){
201
  $ARR[$row['ID']]=$row['NAME'];
app/code/community/Asulpunto/Unicentaopos/etc/config.xml CHANGED
@@ -25,7 +25,7 @@
25
  <config>
26
  <modules>
27
  <Asulpunto_Unicentaopos>
28
- <version>1.0.0</version>
29
  </Asulpunto_Unicentaopos>
30
  </modules>
31
  <global>
@@ -49,7 +49,6 @@
49
  <entities>
50
  <unicentaoposproduct><table>asulpunto_unicentaopos_product</table></unicentaoposproduct>
51
  <unicentaoposorderitem><table>asulpunto_unicentaopos_order_item</table></unicentaoposorderitem>
52
- <!--<flat_price2><table>macfarlane_flat_price_2</table></flat_price2>-->
53
  </entities>
54
  </unicentaopos_mysql4>
55
  </models>
@@ -121,6 +120,12 @@
121
  <orderstatus>complete</orderstatus>
122
  <product_type>9</product_type>
123
  </tools>
 
 
 
 
 
 
124
  </asulpuntounicentaopos>
125
  </default>
126
  </config>
25
  <config>
26
  <modules>
27
  <Asulpunto_Unicentaopos>
28
+ <version>1.0.1</version>
29
  </Asulpunto_Unicentaopos>
30
  </modules>
31
  <global>
49
  <entities>
50
  <unicentaoposproduct><table>asulpunto_unicentaopos_product</table></unicentaoposproduct>
51
  <unicentaoposorderitem><table>asulpunto_unicentaopos_order_item</table></unicentaoposorderitem>
 
52
  </entities>
53
  </unicentaopos_mysql4>
54
  </models>
120
  <orderstatus>complete</orderstatus>
121
  <product_type>9</product_type>
122
  </tools>
123
+ <tablenames>
124
+ <products>PRODUCTS</products>
125
+ <stockcurrent>STOCKCURRENT</stockcurrent>
126
+ <locations>LOCATIONS</locations>
127
+ <applications>APPLICATIONS</applications>
128
+ </tablenames>
129
  </asulpuntounicentaopos>
130
  </default>
131
  </config>
app/code/community/Asulpunto/Unicentaopos/etc/system.xml CHANGED
@@ -47,7 +47,7 @@
47
  <show_in_website>1</show_in_website>
48
  <show_in_store>1</show_in_store>
49
  <comment>
50
- <![CDATA[Version: 1.0.0<br/>Module developed by <a href="http://www.asulpunto.com">Asulpunto</a><br/>Support: <a href="http://www.asulpunto.com/supportforum">http://www.asulpunto.com/supportforum</a>]]></comment>
51
  </banner>
52
  <unicentaconfig translate="label">
53
  <label>uniCenta Connection Configuration</label>
@@ -141,7 +141,7 @@
141
  <show_in_default>1</show_in_default>
142
  <show_in_website>0</show_in_website>
143
  <show_in_store>0</show_in_store>
144
- <comment>New products will be created in this Product Attribute Set when uniCenta oPOS creates them in Magento</comment>
145
  </location>
146
  </fields>
147
  </tools>
@@ -252,6 +252,51 @@
252
  </barcode>
253
  </fields>
254
  </attributes>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  </groups>
256
  </asulpuntounicentaopos>
257
  </sections>
47
  <show_in_website>1</show_in_website>
48
  <show_in_store>1</show_in_store>
49
  <comment>
50
+ <![CDATA[Version: 1.0.1<br/>Module developed by <a href="http://www.asulpunto.com">Asulpunto</a><br/>Support: <a href="http://www.asulpunto.com/supportforum">http://www.asulpunto.com/supportforum</a>]]></comment>
51
  </banner>
52
  <unicentaconfig translate="label">
53
  <label>uniCenta Connection Configuration</label>
141
  <show_in_default>1</show_in_default>
142
  <show_in_website>0</show_in_website>
143
  <show_in_store>0</show_in_store>
144
+ <comment>The stock will be synchronished against this location. This extension currently supports a single location.</comment>
145
  </location>
146
  </fields>
147
  </tools>
252
  </barcode>
253
  </fields>
254
  </attributes>
255
+ <tablenames translate="label">
256
+ <label>Unicenta Table Names</label>
257
+ <sort_order>40</sort_order>
258
+ <show_in_default>1</show_in_default>
259
+ <show_in_website>0</show_in_website>
260
+ <show_in_store>0</show_in_store>
261
+ <fields>
262
+ <products translate="label">
263
+ <label>Unicenta Products Table</label>
264
+ <frontend_type>label</frontend_type>
265
+ <sort_order>10</sort_order>
266
+ <show_in_default>1</show_in_default>
267
+ <show_in_website>0</show_in_website>
268
+ <show_in_store>0</show_in_store>
269
+ <comment>Match the case in the database</comment>
270
+ </products>
271
+ <stockcurrent translate="label">
272
+ <label>Unicenta Stockcurrent Table</label>
273
+ <frontend_type>label</frontend_type>
274
+ <sort_order>10</sort_order>
275
+ <show_in_default>1</show_in_default>
276
+ <show_in_website>0</show_in_website>
277
+ <show_in_store>0</show_in_store>
278
+ <comment>Match the case in the database</comment>
279
+ </stockcurrent>
280
+ <locations translate="label">
281
+ <label>Unicenta Locations Table</label>
282
+ <frontend_type>label</frontend_type>
283
+ <sort_order>10</sort_order>
284
+ <show_in_default>1</show_in_default>
285
+ <show_in_website>0</show_in_website>
286
+ <show_in_store>0</show_in_store>
287
+ <comment>Match the case in the database</comment>
288
+ </locations>
289
+ <applications translate="label">
290
+ <label>Unicenta Applications Table</label>
291
+ <frontend_type>label</frontend_type>
292
+ <sort_order>10</sort_order>
293
+ <show_in_default>1</show_in_default>
294
+ <show_in_website>0</show_in_website>
295
+ <show_in_store>0</show_in_store>
296
+ <comment>Match the case in the database</comment>
297
+ </applications>
298
+ </fields>
299
+ </tablenames>
300
  </groups>
301
  </asulpuntounicentaopos>
302
  </sections>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Asulpunto_Unicentaopos</name>
4
- <version>1.0.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License 3.0</license>
7
  <channel>community</channel>
@@ -15,12 +15,16 @@ Features:&#xD;
15
  -Stock Diary updates on uniCenta oPOS are sent to Magento.&#xD;
16
  -Purchases on uniCenta oPOS reduce stock from Magento.&#xD;
17
  -Purchases on Magento subtract stock from uniCenta oPOS Stock Diary.&#xD;
18
- -Syncronisation works via cron, synchronization of stock or products can now be triggered manually from the admin.&#xD;
19
  &#xD;
20
  To use this extension you have to install uniCenta oPOS's database on a Mysql server accessible by the Magento server.&#xD;
21
  &#xD;
22
  </description>
23
- <notes>1.0.0&#xD;
 
 
 
 
24
  - UTF-8 fix&#xD;
25
  - Test connection error message showed invalid log file location&#xD;
26
  - New products in unicenta were not transfering details, it worked only on update once a product was modified in unicenta.&#xD;
@@ -48,9 +52,9 @@ Advanced log to identify database connection issues&#xD;
48
  0.0.3&#xD;
49
  First official public release </notes>
50
  <authors><author><name>asulpunto</name><user>asulpunto</user><email>asulpunto@asulpunto.com</email></author></authors>
51
- <date>2014-02-17</date>
52
- <time>19:25:48</time>
53
- <contents><target name="magecommunity"><dir name="Asulpunto"><dir name="Unicentaopos"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="8de2e6e124cdcd67597725a9a7368ed8"/><file name="Buttongetproducts.php" hash="8d5667a1c1f9d56875d71f6b628c9f36"/><file name="Buttonstock.php" hash="a41f426871cb05ce6b1ddc755419a7be"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="27720decf1ea0a2f252af78a530fdee5"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Unicentaoposorderitem"><file name="Collection.php" hash="bb9cf8ab48304c34fd7bd575e1002574"/></dir><file name="Unicentaoposorderitem.php" hash="edc7cfecd2b60b0bc372da8c0509cf7d"/><dir name="Unicentaoposproduct"><file name="Collection.php" hash="03f65e284b426d36daa2376e38a813e1"/></dir><file name="Unicentaoposproduct.php" hash="1f849c04da97b863ee88c3b34dc8255b"/></dir><file name="Orders.php" hash="105bd671d41de1b163ec1bb458337136"/><file name="Productstock.php" hash="5b272e11bc603bb32cb3f1fe70545ba5"/><dir name="Source"><file name="Attributes.php" hash="0c9d1465dbeb8c22dc1bf2c207d27738"/><file name="Location.php" hash="231c61909cef275342fe746e6b1a3406"/><file name="Producttypelist.php" hash="ee920c29a4c36e5d39503d049729c206"/><file name="Transfer.php" hash="c6b83cd1c753d8712ae8dcdb79428740"/></dir><file name="Unicentaoposapi.php" hash="630e567e340a39f1b83eed515e3ccb52"/><file name="Unicentaoposorderitem.php" hash="31b0f22a1fa3af396a01b741fd9d4adf"/><file name="Unicentaoposproduct.php" hash="8754d16acf3372355bf379deb563ab03"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="UnicentaoposController.php" hash="5890605a3563955fb5a33431bde12a1f"/></dir></dir><dir name="etc"><file name="config.xml" hash="1b566d211ebf424419a450f802bd53fb"/><file name="system.xml" hash="7588dc4bcba7fd8b5bcfcb954c1fd386"/></dir><dir name="sql"><dir name="unicentaopos_setup"><file name="mysql4-install-0.0.1.php" hash="84ba3c4373b2a1c6b1219e8fbd881b51"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="76ea73b06b500e88db0891df95744b65"/><file name="mysql4-upgrade-0.0.4-0.0.5.php" hash="666324a87a44f9e4f161bbea4f4c8c06"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="asulpunto"><dir name="unicentaopos"><dir name="system"><dir name="config"><file name="button.phtml" hash="8d16601bbd83850e719205af44070dde"/><file name="buttongetproducts.phtml" hash="7b42df54ec62f90ea3e949655db481d5"/><file name="buttonstock.phtml" hash="dcba538825ce28f86d7e809203b4a591"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Asulpunto_Unicentaopos.xml" hash="0b81c393d2739bbabe04eeccadeaf858"/></dir></target></contents>
54
  <compatible/>
55
- <dependencies><required><php><min>5.2.0</min><max>5.5.0</max></php></required></dependencies>
56
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Asulpunto_Unicentaopos</name>
4
+ <version>1.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/GPL-3.0">GNU General Public License 3.0</license>
7
  <channel>community</channel>
15
  -Stock Diary updates on uniCenta oPOS are sent to Magento.&#xD;
16
  -Purchases on uniCenta oPOS reduce stock from Magento.&#xD;
17
  -Purchases on Magento subtract stock from uniCenta oPOS Stock Diary.&#xD;
18
+ -Syncronisation works via cron, -Synchronization of stock or products can now be triggered manually from the admin by pressing a button.&#xD;
19
  &#xD;
20
  To use this extension you have to install uniCenta oPOS's database on a Mysql server accessible by the Magento server.&#xD;
21
  &#xD;
22
  </description>
23
+ <notes>1.0.1&#xD;
24
+ - uniCenta oPOS Table names sometimes lost their case after and import/export between linux/windows. The extension is now case-insensitive.&#xD;
25
+ &#xD;
26
+ &#xD;
27
+ 1.0.0&#xD;
28
  - UTF-8 fix&#xD;
29
  - Test connection error message showed invalid log file location&#xD;
30
  - New products in unicenta were not transfering details, it worked only on update once a product was modified in unicenta.&#xD;
52
  0.0.3&#xD;
53
  First official public release </notes>
54
  <authors><author><name>asulpunto</name><user>asulpunto</user><email>asulpunto@asulpunto.com</email></author></authors>
55
+ <date>2015-01-19</date>
56
+ <time>18:28:45</time>
57
+ <contents><target name="magecommunity"><dir name="Asulpunto"><dir name="Unicentaopos"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="8de2e6e124cdcd67597725a9a7368ed8"/><file name="Buttongetproducts.php" hash="8d5667a1c1f9d56875d71f6b628c9f36"/><file name="Buttonstock.php" hash="a41f426871cb05ce6b1ddc755419a7be"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="13f17d99f8c792b6e5121605fc8f89e5"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Unicentaoposorderitem"><file name="Collection.php" hash="bb9cf8ab48304c34fd7bd575e1002574"/></dir><file name="Unicentaoposorderitem.php" hash="edc7cfecd2b60b0bc372da8c0509cf7d"/><dir name="Unicentaoposproduct"><file name="Collection.php" hash="03f65e284b426d36daa2376e38a813e1"/></dir><file name="Unicentaoposproduct.php" hash="1f849c04da97b863ee88c3b34dc8255b"/></dir><file name="Orders.php" hash="105bd671d41de1b163ec1bb458337136"/><file name="Productstock.php" hash="5b272e11bc603bb32cb3f1fe70545ba5"/><dir name="Source"><file name="Attributes.php" hash="0c9d1465dbeb8c22dc1bf2c207d27738"/><file name="Location.php" hash="231c61909cef275342fe746e6b1a3406"/><file name="Producttypelist.php" hash="ee920c29a4c36e5d39503d049729c206"/><file name="Transfer.php" hash="c6b83cd1c753d8712ae8dcdb79428740"/></dir><file name="Unicentaoposapi.php" hash="1968e16fc0ad5b7dfbfc32009ffeb111"/><file name="Unicentaoposorderitem.php" hash="31b0f22a1fa3af396a01b741fd9d4adf"/><file name="Unicentaoposproduct.php" hash="8754d16acf3372355bf379deb563ab03"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="UnicentaoposController.php" hash="5890605a3563955fb5a33431bde12a1f"/></dir></dir><dir name="etc"><file name="config.xml" hash="4c65226eddd8ff7c4b83de74353d1dee"/><file name="system.xml" hash="17324c6e496de0dfb0628b86c5bf2e76"/></dir><dir name="sql"><dir name="unicentaopos_setup"><file name="mysql4-install-0.0.1.php" hash="84ba3c4373b2a1c6b1219e8fbd881b51"/><file name="mysql4-upgrade-0.0.1-0.0.2.php" hash="76ea73b06b500e88db0891df95744b65"/><file name="mysql4-upgrade-0.0.4-0.0.5.php" hash="666324a87a44f9e4f161bbea4f4c8c06"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="asulpunto"><dir name="unicentaopos"><dir name="system"><dir name="config"><file name="button.phtml" hash="8d16601bbd83850e719205af44070dde"/><file name="buttongetproducts.phtml" hash="7b42df54ec62f90ea3e949655db481d5"/><file name="buttonstock.phtml" hash="dcba538825ce28f86d7e809203b4a591"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Asulpunto_Unicentaopos.xml" hash="0b81c393d2739bbabe04eeccadeaf858"/></dir></target></contents>
58
  <compatible/>
59
+ <dependencies><required><php><min>5.2.0</min><max>5.6.0</max></php></required></dependencies>
60
  </package>