Version Notes
Compatible with v1.9 and 1.8
Support for bundled products
Download this release
Release Info
Developer | Casper Mekel |
Extension | Qinvoice_Connect |
Version | 1.1.1 |
Comparing to | |
See all releases |
Code changes from version 1.1.0 to 1.1.1
app/code/community/Qinvoice/Connect/Model/Order/Observer.php
CHANGED
@@ -11,9 +11,7 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
11 |
return false;
|
12 |
$order = $observer->getEvent()->getOrder();
|
13 |
|
14 |
-
|
15 |
-
// print_r($order);
|
16 |
-
//die();
|
17 |
|
18 |
// GETTING TRIGGER SETTING
|
19 |
$db = Mage::getSingleton('core/resource')->getConnection('core_write');
|
@@ -23,9 +21,6 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
23 |
$rowTwo = $resultTwo->fetch(PDO::FETCH_ASSOC);
|
24 |
$varOnOrder = $rowTwo['value'];
|
25 |
|
26 |
-
|
27 |
-
mail('caspermekel@gmail.com','MAGE191','sendOnComplete '. $varOnOrder );
|
28 |
-
|
29 |
if($varOnOrder == 'complete' && $order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
|
30 |
$this->createInvoiceForQinvoice($order->getId(), false);
|
31 |
}else{
|
@@ -37,10 +32,6 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
37 |
return false;
|
38 |
$shipment = $observer->getEvent()->getShipment();
|
39 |
|
40 |
-
mail('caspermekel@gmail.com','MAGE191','sendOnShip');
|
41 |
-
print_r($order);
|
42 |
-
die();
|
43 |
-
|
44 |
$order = $shipment->getOrder();
|
45 |
|
46 |
// GETTING TRIGGER SETTING
|
@@ -75,11 +66,7 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
75 |
return true;
|
76 |
}
|
77 |
}
|
78 |
-
|
79 |
-
* Exports new orders to an xml file
|
80 |
-
* @param Varien_Event_Observer $observer
|
81 |
-
* @return Feed_Sales_Model_Order_Observer
|
82 |
-
*/
|
83 |
public function sendOnPayment($observer){
|
84 |
// Gets called even when other payment method is choosen.
|
85 |
|
@@ -102,6 +89,8 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
102 |
}
|
103 |
public function createInvoiceForQinvoice($varOrderID,$ifPaid = false)
|
104 |
{
|
|
|
|
|
105 |
$paid = 0;
|
106 |
$db = Mage::getSingleton('core/resource')->getConnection('core_write');
|
107 |
// GETTING ORDER ID
|
@@ -225,6 +214,7 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
225 |
$resultRemark = $db->query("SELECT value FROM {$prefix}core_config_data WHERE path LIKE '".$varRemarkPath."'");
|
226 |
$rowRemark = $resultRemark->fetch(PDO::FETCH_ASSOC);
|
227 |
|
|
|
228 |
$invoice_remark = $rowRemark['value'];
|
229 |
$invoice_remark = str_replace('{order_id}',$rowOne['increment_id'],$invoice_remark);
|
230 |
$invoice_remark = str_replace('{shipping_description}',$rowOne['shipping_description'],$invoice_remark);
|
@@ -287,6 +277,11 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
287 |
// $invoice->addTag('send: '. $send_mail);
|
288 |
// $invoice->addTag('paid: '. $paid .' '. $rowOne['total_paid']);
|
289 |
|
|
|
|
|
|
|
|
|
|
|
290 |
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')->addVisibleFilter();
|
291 |
$attributeArray = array();
|
292 |
|
@@ -297,135 +292,135 @@ class Qinvoice_Connect_Model_Order_Observer
|
|
297 |
// 'value' => $attribute->getData('attribute_code')
|
298 |
// );
|
299 |
}
|
|
|
|
|
300 |
|
301 |
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
|
|
322 |
}
|
|
|
323 |
|
324 |
-
|
325 |
-
|
|
|
|
|
326 |
{
|
327 |
-
|
328 |
-
{
|
329 |
-
$varDescription .= "\n".$arrItemOptions['options'][$k]['label'].": ".$arrItemOptions['options'][$k]['print_value']."\n";
|
330 |
-
}
|
331 |
}
|
332 |
-
|
333 |
-
|
|
|
|
|
|
|
334 |
{
|
335 |
-
|
336 |
-
{
|
337 |
-
$varDescription .= "\n".$arrItemOptions['attributes_info'][$k]['label'].": ".$arrItemOptions['attributes_info'][$k]['value']."\n";
|
338 |
-
}
|
339 |
}
|
|
|
340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
|
342 |
-
//echo $varDescription;
|
343 |
|
|
|
|
|
344 |
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
//
|
351 |
-
|
352 |
-
|
353 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
|
355 |
-
|
356 |
-
$params = array(
|
357 |
-
'code' => $productcode,
|
358 |
-
'description' => "[".$arrData[$i]['sku']."] ".trim($arrData[$i]['name']) . $varDescription,
|
359 |
-
'price' => $arrData[$i]['base_price']*100,
|
360 |
-
//'price_incl' => ((($arrData[$i]['base_price']*$arrData[$i]['qty_ordered'])+$arrData[$i]['tax_amount'])/$arrData[$i]['qty_ordered'])*100,
|
361 |
-
'price_incl' => round(((($arrData[$i]['base_price']*$arrData[$i]['qty_ordered'])+$arrData[$i]['tax_amount'])/$arrData[$i]['qty_ordered'])*100),
|
362 |
-
'price_vat' => ($arrData[$i]['tax_amount']/$arrData[$i]['qty_ordered'])*100,
|
363 |
-
'vatpercentage' => trim(number_format($arrData[$i]['tax_percent'],2,'.', ''))*100,
|
364 |
-
'discount' => trim(number_format($arrData[$i]['base_discount_amount'], 2, '.', '')/$arrData[$i]['base_price'])*100,
|
365 |
-
'quantity' => $arrData[$i]['qty_ordered']*100,
|
366 |
-
'categories' => $category
|
367 |
-
);
|
368 |
-
//mail('casper@expertnetwork.nl', 'vat', $arrData[$i]['tax_percent']);
|
369 |
-
|
370 |
-
// echo '<pre>';
|
371 |
-
// print_r( $params );
|
372 |
-
// echo '</pre>';
|
373 |
-
// die();
|
374 |
-
$invoice->addItem($params);
|
375 |
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
}
|
394 |
|
395 |
|
396 |
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
return true;
|
406 |
|
407 |
|
408 |
//$curlInvoiveResult = $this->sendCurlRequest($createInvoiceXML);
|
409 |
}
|
410 |
-
|
411 |
-
public function notify_to_admin($name, $email, $msg)
|
412 |
{
|
413 |
$varSubject = 'Qinvoice Notification';
|
414 |
|
415 |
-
|
416 |
-
|
417 |
$mail = Mage::getModel('core/email');
|
418 |
-
$mail->setToName(
|
419 |
-
$mail->setToEmail(
|
420 |
$mail->setBody($msg);
|
421 |
-
$mail->setSubject($
|
422 |
$mail->setFromEmail("support@qinvoice.com");
|
423 |
-
$mail->setFromName("Qinvoice
|
424 |
$mail->setType('text');
|
425 |
$mail->send();
|
426 |
}
|
|
|
427 |
}
|
428 |
|
|
|
|
|
|
|
429 |
class qinvoice{
|
430 |
|
431 |
protected $gateway = '';
|
11 |
return false;
|
12 |
$order = $observer->getEvent()->getOrder();
|
13 |
|
14 |
+
|
|
|
|
|
15 |
|
16 |
// GETTING TRIGGER SETTING
|
17 |
$db = Mage::getSingleton('core/resource')->getConnection('core_write');
|
21 |
$rowTwo = $resultTwo->fetch(PDO::FETCH_ASSOC);
|
22 |
$varOnOrder = $rowTwo['value'];
|
23 |
|
|
|
|
|
|
|
24 |
if($varOnOrder == 'complete' && $order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE){
|
25 |
$this->createInvoiceForQinvoice($order->getId(), false);
|
26 |
}else{
|
32 |
return false;
|
33 |
$shipment = $observer->getEvent()->getShipment();
|
34 |
|
|
|
|
|
|
|
|
|
35 |
$order = $shipment->getOrder();
|
36 |
|
37 |
// GETTING TRIGGER SETTING
|
66 |
return true;
|
67 |
}
|
68 |
}
|
69 |
+
|
|
|
|
|
|
|
|
|
70 |
public function sendOnPayment($observer){
|
71 |
// Gets called even when other payment method is choosen.
|
72 |
|
89 |
}
|
90 |
public function createInvoiceForQinvoice($varOrderID,$ifPaid = false)
|
91 |
{
|
92 |
+
|
93 |
+
|
94 |
$paid = 0;
|
95 |
$db = Mage::getSingleton('core/resource')->getConnection('core_write');
|
96 |
// GETTING ORDER ID
|
214 |
$resultRemark = $db->query("SELECT value FROM {$prefix}core_config_data WHERE path LIKE '".$varRemarkPath."'");
|
215 |
$rowRemark = $resultRemark->fetch(PDO::FETCH_ASSOC);
|
216 |
|
217 |
+
$order_id = $rowOne['increment_id'];
|
218 |
$invoice_remark = $rowRemark['value'];
|
219 |
$invoice_remark = str_replace('{order_id}',$rowOne['increment_id'],$invoice_remark);
|
220 |
$invoice_remark = str_replace('{shipping_description}',$rowOne['shipping_description'],$invoice_remark);
|
277 |
// $invoice->addTag('send: '. $send_mail);
|
278 |
// $invoice->addTag('paid: '. $paid .' '. $rowOne['total_paid']);
|
279 |
|
280 |
+
|
281 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($varOrderID);
|
282 |
+
$store_id = $order->getStoreId();
|
283 |
+
|
284 |
+
|
285 |
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')->addVisibleFilter();
|
286 |
$attributeArray = array();
|
287 |
|
292 |
// 'value' => $attribute->getData('attribute_code')
|
293 |
// );
|
294 |
}
|
295 |
+
|
296 |
+
|
297 |
|
298 |
|
299 |
+
for($i=0;$i<count($arrData);$i++)
|
300 |
+
{
|
301 |
+
$category = '';
|
302 |
+
$_productId = $arrData[$i]['product_id'];
|
303 |
+
$_product = Mage::getModel('catalog/product')->load($_productId);
|
304 |
+
|
305 |
+
|
306 |
+
$category = $_product->getData('qinvoice_category');
|
307 |
+
$productcode = $_product->getData('qinvoice_productcode');
|
308 |
+
|
309 |
+
$arrItemOptions = unserialize($arrData[$i]['product_options']);
|
310 |
+
|
311 |
+
$varDescription = '';
|
312 |
+
|
313 |
+
//print_r();
|
314 |
+
|
315 |
+
$product_attributes = explode(",",$pa_array['value']);
|
316 |
+
foreach($product_attributes as $pa){
|
317 |
+
if(isset($_product[$pa]))
|
318 |
+
{
|
319 |
+
$varDescription .= "\n". $attributeArray[$pa] .': '. $_product[$pa];
|
320 |
}
|
321 |
+
}
|
322 |
|
323 |
+
|
324 |
+
if(@$arrItemOptions['options'])
|
325 |
+
{
|
326 |
+
for($k=0; $k <count($arrItemOptions['options']); $k++)
|
327 |
{
|
328 |
+
$varDescription .= "\n".$arrItemOptions['options'][$k]['label'].": ".$arrItemOptions['options'][$k]['print_value']."\n";
|
|
|
|
|
|
|
329 |
}
|
330 |
+
}
|
331 |
+
|
332 |
+
if(@$arrItemOptions['attributes_info'])
|
333 |
+
{
|
334 |
+
for($k=0; $k <count($arrItemOptions['attributes_info']); $k++)
|
335 |
{
|
336 |
+
$varDescription .= "\n".$arrItemOptions['attributes_info'][$k]['label'].": ".$arrItemOptions['attributes_info'][$k]['value']."\n";
|
|
|
|
|
|
|
337 |
}
|
338 |
+
}
|
339 |
|
340 |
+
if(@$arrItemOptions['bundle_options'])
|
341 |
+
{
|
342 |
+
foreach($arrItemOptions['bundle_options'] as $option){
|
343 |
+
foreach($option['value'] as $value){
|
344 |
+
$varDescription .= "\n".'['. $option['label'] .'] '. $value['qty'] .' x '. $value['title'];
|
345 |
+
}
|
346 |
+
}
|
347 |
+
}
|
348 |
|
|
|
349 |
|
350 |
+
|
351 |
+
|
352 |
|
353 |
+
|
354 |
+
$params = array(
|
355 |
+
'code' => $productcode,
|
356 |
+
'description' => "[".$arrData[$i]['sku']."] ".trim($arrData[$i]['name']) . $varDescription,
|
357 |
+
'price' => $arrData[$i]['base_price']*100,
|
358 |
+
//'price_incl' => ((($arrData[$i]['base_price']*$arrData[$i]['qty_ordered'])+$arrData[$i]['tax_amount'])/$arrData[$i]['qty_ordered'])*100,
|
359 |
+
'price_incl' => round(((($arrData[$i]['base_price']*$arrData[$i]['qty_ordered'])+$arrData[$i]['tax_amount'])/$arrData[$i]['qty_ordered'])*100),
|
360 |
+
'price_vat' => ($arrData[$i]['tax_amount']/$arrData[$i]['qty_ordered'])*100,
|
361 |
+
'vatpercentage' => trim(number_format($arrData[$i]['tax_percent'],2,'.', ''))*100,
|
362 |
+
'discount' => trim(number_format($arrData[$i]['base_discount_amount'], 2, '.', '')/$arrData[$i]['base_price'])*100,
|
363 |
+
'quantity' => $arrData[$i]['qty_ordered']*100,
|
364 |
+
'categories' => $category
|
365 |
+
);
|
366 |
+
|
367 |
+
$invoice->addItem($params);
|
368 |
|
369 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
|
371 |
+
if($rowOne['shipping_amount'] > 0)
|
372 |
+
{
|
373 |
+
$params = array(
|
374 |
+
'code' => '',
|
375 |
+
'description' => trim($rowOne['shipping_description']),
|
376 |
+
'price' => $rowOne['shipping_amount']*100,
|
377 |
+
'price_incl' => $rowOne['shipping_incl_tax']*100,
|
378 |
+
'price_vat' => $rowOne['shipping_tax_amount']*100,
|
379 |
+
'vatpercentage' => round(($rowOne['shipping_tax_amount']/$rowOne['shipping_amount'])*100)*100,
|
380 |
+
'discount' => 0,
|
381 |
+
'quantity' => 100,
|
382 |
+
'categories' => 'shipping'
|
383 |
+
);
|
384 |
+
|
385 |
+
$invoice->addItem($params);
|
386 |
+
|
387 |
+
}
|
|
|
388 |
|
389 |
|
390 |
|
391 |
+
|
392 |
+
$result = $invoice->sendRequest();
|
393 |
+
if($result != 1){
|
394 |
+
$this->notify_admin('Qinvoice Connect Error','Could not send invoice for order '. $order_id);
|
395 |
+
}
|
396 |
+
|
397 |
+
return true;
|
|
|
|
|
398 |
|
399 |
|
400 |
//$curlInvoiveResult = $this->sendCurlRequest($createInvoiceXML);
|
401 |
}
|
402 |
+
public function notify_admin($subject,$msg)
|
|
|
403 |
{
|
404 |
$varSubject = 'Qinvoice Notification';
|
405 |
|
406 |
+
Mage::log($subject .': '. $msg);
|
407 |
+
|
408 |
$mail = Mage::getModel('core/email');
|
409 |
+
$mail->setToName(Mage::getStoreConfig('trans_email/ident_general/name') );
|
410 |
+
$mail->setToEmail(Mage::getStoreConfig('trans_email/ident_general/email') );
|
411 |
$mail->setBody($msg);
|
412 |
+
$mail->setSubject($subject);
|
413 |
$mail->setFromEmail("support@qinvoice.com");
|
414 |
+
$mail->setFromName("Qinvoice Support");
|
415 |
$mail->setType('text');
|
416 |
$mail->send();
|
417 |
}
|
418 |
+
|
419 |
}
|
420 |
|
421 |
+
|
422 |
+
|
423 |
+
|
424 |
class qinvoice{
|
425 |
|
426 |
protected $gateway = '';
|
app/code/community/Qinvoice/Connect/etc/config.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
<config>
|
4 |
<modules>
|
5 |
<Qinvoice_Connect>
|
6 |
-
<version>1.1.
|
7 |
</Qinvoice_Connect>
|
8 |
</modules>
|
9 |
<global>
|
@@ -13,23 +13,23 @@
|
|
13 |
</invoice>
|
14 |
</models>
|
15 |
<events>
|
16 |
-
<
|
17 |
<observers>
|
18 |
<connect>
|
19 |
<class>invoice/order_observer</class>
|
20 |
<method>sendOnOrder</method>
|
21 |
</connect>
|
22 |
</observers>
|
23 |
-
</
|
24 |
|
25 |
-
<
|
26 |
<observers>
|
27 |
<connect>
|
28 |
<class>invoice/order_observer</class>
|
29 |
<method>sendOnPayment</method>
|
30 |
</connect>
|
31 |
</observers>
|
32 |
-
</
|
33 |
</events>
|
34 |
<helpers>
|
35 |
<invoice>
|
3 |
<config>
|
4 |
<modules>
|
5 |
<Qinvoice_Connect>
|
6 |
+
<version>1.1.1</version>
|
7 |
</Qinvoice_Connect>
|
8 |
</modules>
|
9 |
<global>
|
13 |
</invoice>
|
14 |
</models>
|
15 |
<events>
|
16 |
+
<sales_order_invoice_register>
|
17 |
<observers>
|
18 |
<connect>
|
19 |
<class>invoice/order_observer</class>
|
20 |
<method>sendOnOrder</method>
|
21 |
</connect>
|
22 |
</observers>
|
23 |
+
</sales_order_invoice_register>
|
24 |
|
25 |
+
<sales_order_invoice_pay>
|
26 |
<observers>
|
27 |
<connect>
|
28 |
<class>invoice/order_observer</class>
|
29 |
<method>sendOnPayment</method>
|
30 |
</connect>
|
31 |
</observers>
|
32 |
+
</sales_order_invoice_pay>
|
33 |
</events>
|
34 |
<helpers>
|
35 |
<invoice>
|
package.xml
CHANGED
@@ -1,18 +1,19 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Qinvoice_Connect</name>
|
4 |
-
<version>1.1.
|
5 |
<stability>stable</stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Automatically generate and send PDF invoices for every order to your customers through q-invoice.com</summary>
|
10 |
<description>Invoices can be generated upon a successful payment or order and will be added to your administration. Q-invoice offers you the freedom to run multiple webshops or venues but still have your bookkeeping together at one place. Generate invoices in a layout of your choosing for maximal recognition, upload bankstatements and process payment with the click of your mouse. www.q-invoice.com</description>
|
11 |
-
<notes>Compatible with v1.9.
|
|
|
12 |
<authors><author><name>Casper Mekel</name><user>caspermekel</user><email>info@q-invoice.com</email></author></authors>
|
13 |
-
<date>2014-11-
|
14 |
-
<time>
|
15 |
-
<contents><target name="magecommunity"><dir name="Qinvoice"><file name="CHANGELOG" hash="fe63e41117f38a39736c3354a7b1d11d"/><dir name="Connect"><dir name="
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php><extension><name>curl</name><min>5.1</min><max>6.0</max></extension></required></dependencies>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Qinvoice_Connect</name>
|
4 |
+
<version>1.1.1</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Automatically generate and send PDF invoices for every order to your customers through q-invoice.com</summary>
|
10 |
<description>Invoices can be generated upon a successful payment or order and will be added to your administration. Q-invoice offers you the freedom to run multiple webshops or venues but still have your bookkeeping together at one place. Generate invoices in a layout of your choosing for maximal recognition, upload bankstatements and process payment with the click of your mouse. www.q-invoice.com</description>
|
11 |
+
<notes>Compatible with v1.9 and 1.8
|
12 |
+
Support for bundled products</notes>
|
13 |
<authors><author><name>Casper Mekel</name><user>caspermekel</user><email>info@q-invoice.com</email></author></authors>
|
14 |
+
<date>2014-11-14</date>
|
15 |
+
<time>11:06:48</time>
|
16 |
+
<contents><target name="magecommunity"><dir name="Qinvoice"><file name="CHANGELOG" hash="fe63e41117f38a39736c3354a7b1d11d"/><dir name="Connect"><dir name="Helper"><file name="Data.php" hash="ccb4b09674319e8b20e9c06a94adfa38"/></dir><dir name="Model"><dir name="Order"><file name="Observer.Boerdereike.php" hash="8ecdeaa4e9a41de7d5debfaf22967761"/><file name="Observer.php" hash="56c978beaeded1e98c65bfdf05554703"/></dir><dir name="Source"><file name="Attribute.php" hash="72f35ffb8cd873d2c5e1e448ff4bf4e2"/><file name="Invoice.php" hash="4661f369f7e116fd761e5fffac9efeaf"/><file name="Method.php" hash="ac6891fc7e403250b24f5b0f2d6199bc"/><file name="Relation.php" hash="89ab031937b846ab5f0bcac7ccaa31b7"/><file name="Trigger.php" hash="be2c0e4bfc32c0bdd57b4b1b58da8d63"/></dir></dir><dir name="etc"><file name="config.xml" hash="2c0d57f3c6a0b7874d8263e268dbc4c6"/><file name="system.xml" hash="0f7c10edfb8942199b277a0170babe30"/></dir><file name="readme.txt" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Qinvoice_Connect.xml" hash="fbedefa4e926092705c6941ad28f51f8"/></dir></target></contents>
|
17 |
<compatible/>
|
18 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php><extension><name>curl</name><min>5.1</min><max>6.0</max></extension></required></dependencies>
|
19 |
</package>
|