2014-10-28 25 views
0

我尝试将我的电子商务平台的发票推送给odoo。 (php - xml-rpc) 发票已创建,但我没有找到如何创建工作流来更改Odoo中的状态。Odoo如何在PHP中为XML-RPC中的发票开发工作流程?

我发现互联网上的东西,但我认为这是老人和它的Odoo但OpenERP的V6发动机不工作或7

注:链接:http://goo.gl/lBPWnG

//validate the invoice 
echo "VALIDATE<BR /><BR />"; 
$conn->workflow('account.invoice', 'invoice_open', $invoice_id); 

你有一个主意 ?

谢谢

我在XML-RPC代码时,我创建Odoo发票。

// ********************************** 
// Write a new concerning the shipping by the service line 
// ********************************** 
// invoice line 
      $shipping_account_id; // id ofaccount shipping 626000 

      $val = array (
          "invoice_id" => new xmlrpcval($invoice_id, "int"), 
          "account_id" => new xmlrpcval($shipping_account_id, "int"), 
          "company_id" => new xmlrpcval($company_id, "int"), 
          "product_id" => new xmlrpcval($odoo_products_id, "string"), 
          "name" => new xmlrpcval('Service postale', "string"), 
          "quantity" => new xmlrpcval('1',"double"), 
          "price_unit" => new xmlrpcval('20',"double"), 
         ); 


      $client = new xmlrpc_client($server_url . "/xmlrpc/object"); 
      $client->setSSLVerifyPeer(0); 

      $msg = new xmlrpcmsg('execute'); 
      $msg->addParam(new xmlrpcval($dbname, "string")); 
      $msg->addParam(new xmlrpcval($uid, "int")); 
      $msg->addParam(new xmlrpcval($password, "string")); 
      $msg->addParam(new xmlrpcval("account.invoice.line", "string")); 
      $msg->addParam(new xmlrpcval("create", "string")); 
      $msg->addParam(new xmlrpcval($val, "struct")); 
      $response = $client->send($msg); 

回答

0

这里是我用于从顺序创建的发票的方法和我使用odoo。

public function createInvoiceFromDraft() 
    { 
     $saleId = $_REQUEST['customerid']; 

     $OERP = new OpenERP(); 
     $OERPUserId = $OERP->login($_SESSION['OERP-username'], $_SESSION['OERP-password']); 

//workflow for confirming the order 
     $r = $OERP->workflow('sale.order', 'order_confirm', $saleId); 


     $result = $OERP->workflow('sale.order', 'manual_invoice', $saleId); 

     $fields = array('name'); 
     $readName = $OERP->searchread(array(array('id','=',$saleId)), 'sale.order', $fields); 
     $orderName = $readName[0]['name']; 


     $fields = array('id'); 
     $id = $OERP->searchread(array(array('origin','=',$orderName)), 'account.invoice', $fields); 
     $invoiceId = $id[0]['id'];  

     $result .= $OERP->workflow('account.invoice', 'invoice_open', $invoiceId); 

     return $result; 
    }