← Back to team overview

clearcorp team mailing list archive

[Merge] lp:~dr.clearcorp/openerp-ccorp-addons/6.1-modules_magento_7 into lp:openerp-ccorp-addons

 

Diana Rodríguez Martínez has proposed merging lp:~dr.clearcorp/openerp-ccorp-addons/6.1-modules_magento_7 into lp:openerp-ccorp-addons.

Requested reviews:
  CLEARCORP drivers (clearcorp-drivers)

For more details, see:
https://code.launchpad.net/~dr.clearcorp/openerp-ccorp-addons/6.1-modules_magento_7/+merge/130438

[ADD] Add automatic import of product out of stock to openerp from Magento
-- 
https://code.launchpad.net/~dr.clearcorp/openerp-ccorp-addons/6.1-modules_magento_7/+merge/130438
Your team CLEARCORP development team is subscribed to branch lp:openerp-ccorp-addons.
=== modified file 'modules_magento_7/ReviewProductOrder/CheckoutProduct/Model/Observer.php'
--- modules_magento_7/ReviewProductOrder/CheckoutProduct/Model/Observer.php	2012-10-10 19:39:53 +0000
+++ modules_magento_7/ReviewProductOrder/CheckoutProduct/Model/Observer.php	2012-10-18 21:48:22 +0000
@@ -3,6 +3,9 @@
 include_once('/etc/php5/apache2/xmlrpc.inc'); //http://phpxmlrpc.sourceforge.net
 include_once('/etc/php5/apache2/xmlrpcs.inc'); //http://phpxmlrpc.sourceforge.net
 
+require_once('FirePHPCore/fb.php');
+ob_start();
+
 class ReviewProductOrder_CheckoutProduct_Model_Observer
 {
     /**Magento passes a Varien_Event_Observer object as
@@ -79,6 +82,26 @@
         return php_xmlrpc_decode($val);
     }   
     
+    function import_product_out_of_stock_openerp($relation,$product_id,$customer_id,$qty_product,$order_date,$context=array())
+    {
+        $msg = new xmlrpcmsg('execute');
+        $msg->addParam(new xmlrpcval($this->database, "string"));
+        $msg->addParam(new xmlrpcval($this->userId, "int"));
+        $msg->addParam(new xmlrpcval($this->password, "string"));
+        $msg->addParam(new xmlrpcval($relation, "string"));
+        $msg->addParam(new xmlrpcval("save_product", "string"));
+        $msg->addParam(php_xmlrpc_encode($product_id));
+        $msg->addParam(php_xmlrpc_encode($customer_id));
+        $msg->addParam(php_xmlrpc_encode($qty_product));
+        $msg->addParam(new xmlrpcval($order_date,"string"));
+        //$params = date("Ymd\TH:i:s", $order_date);
+        //xmlrpc_set_type($params, 'datetime');
+       // $msg->addParam(php_xmlrpc_encode($params));       
+        
+        $val = $this->_cache_request($this->url.'object',$msg);        
+        //return php_xmlrpc_decode($val);
+        
+    }
     //************************************************** Tools
     function dump_array($arr){
         foreach ($arr as $c) {
@@ -100,11 +123,13 @@
     public function main(Varien_Event_Observer $observer){
         $flat = false;
         $message = '';
+        $item_info = '';
+        $product_model = Mage::getModel('catalog/product'); //getting product model
         
         /**** LOGIN *****/
         $server = new ReviewProductOrder_CheckoutProduct_Model_Observer('admin', 'admin', 'test_electrotech', 'http://127.0.0.1:2001/xmlrpc/');
         $result = $server->login();
-        
+
         if ($result > -1){
             /****GET ORDER AND ORDER ITEMS **/
             $order = $observer->getEvent()->getOrder();
@@ -115,7 +140,7 @@
 
             if ($items) {
                 foreach ($items as $item) {
-                    $item_info = 'Item Name:'.$item['name'].' - Sku: '.$item['sku'].' - Quantity ordered: '.$item['qty_ordered'];
+                    $item_info = $item_info.'Item Name: '.$item['name'].' - Sku: '.$item['sku'].' - Quantity ordered: '.$item['qty_ordered'].' ------ ';
                     
                     /*****search in openerp ****/
                     $ids_products = $server->search('product.product',array(array('default_code','=',$item['sku'])));
@@ -126,27 +151,32 @@
                             if ($property == 'qty_available') {
                                 if ($value == 0){
                                     $flat = true;
-                                    $message = $item_info.' There is insufficient stock in OpenERP to proceed with this order';
-                                    break;
+                                    $message = $item_info.'There is insufficient stock in OpenERP to proceed with this order';          
+                                    //************************************************************
+                                    $id_product = $item->getProductId();
+                                    $customer_id = $order->getCustomerId();
+                                    $qty_product = $item['qty_ordered'];
+                                    $order_date = $order->getCreatedAtDate();
+                                    
+                                    $server->import_product_out_of_stock_openerp('magento.stadistic',$id_product,$customer_id,$qty_product,$order_date); 
+                                    //*************************************************************                          
                                 } 
                             }
                             
                         }
                     }
-                    
-                    /*** SI LOS PRODUCTOS ESTAN CORRECTOS, SE VERIFICA EL CRÉDITO DEL CLIENTE PARA REALIZAR SU COMPRA ****/
-                    if ($flat){
-                        Mage::throwException($message);
-                    }  
-                    
-                    else{
-                        Mage::log('No existe error en los productos',null,'sales_order_save_after.log');
-                    }
-                    
+                }
+                if ($flat){                        
+                    Mage::throwException($message);
+                }  
+                
+                else{
+                    Mage::log('No existe error en los productos',null,'info.log');
+                    Mage::log($message,null,'info.log');
                 }
             }
             else{
-                Mage::log('NO CONECTO',null,'sales_order_save_after.log');
+                Mage::log('NO CONECTO',null,'info.log');
                 Mage::throwException('No se pueden revisar los productos, error !!!');
             }
             


Follow ups