Example #1
0
    /**
     * Create new Order
     * @param  integer  $debtorNumber
     * @param  Closure  $callback
     * @return object
     */
    public function create($debtorNumber, Closure $callback, array $options=NULL)
    {
        $debtor = new Debtor($this->client_raw);
        $debtorHandle = $debtor->getHandle($debtorNumber);

        $orderHandle = $this->client
            ->Order_Create(array('debtorHandle'=>$debtorHandle))
            ->Order_CreateResult;


        if( !$orderHandle->Id )
        {
            throw new Exception("Error: creating Invoice.");
        }

        if( $options )
            $this->setOptions($orderHandle, $options);

        $this->lines = new Line($this->client_raw, $orderHandle);

        call_user_func($callback, $this->lines);

        return $this->client->Order_GetDataArray(
            array('entityHandles' => array('OrderHandle' => $orderHandle))
        )->Order_GetDataArrayResult;
    }