示例#1
0
 /**
  * Validate an order
  * 
  * @param   int $id             Order ID
  * @param   int $idwarehouse    Warehouse ID
  * 
  * @url GET     order/{id}/validate
  * @url POST    order/{id}/validate
  *  
  * @return  array
  * 
  */
 function validOrder($id, $idwarehouse = 0)
 {
     if (!DolibarrApiAccess::$user->rights->commande->creer) {
         throw new RestException(401);
     }
     $result = $this->commande->fetch($id);
     if (!$result) {
         throw new RestException(404, 'Order not found');
     }
     if (!DolibarrApi::_checkAccessToResource('commande', $this->commande->id)) {
         throw new RestException(401, 'Access not allowed for login ' . DolibarrApiAccess::$user->login);
     }
     if (!$this->commande->valid(DolibarrApiAccess::$user, $idwarehouse)) {
         throw new RestException(500, 'Error when validate order');
     }
     return array('success' => array('code' => 200, 'message' => 'Order validated'));
 }
示例#2
0
$com->socid = 4;
// Put id of third party (rowid in llx_societe table)
$com->date_commande = mktime();
$com->note = 'A comment';
$com->source = 1;
$com->remise_percent = 0;
$orderline1 = new OrderLine($db);
$orderline1->tva_tx = 10.0;
$orderline1->remise_percent = 0;
$orderline1->qty = 1;
$com->lines[] = $orderline1;
// Create order
$idobject = $com->create($user);
if ($idobject > 0) {
    // Change status to validated
    $result = $com->valid($user);
    if ($result > 0) {
        print "OK Object created with id " . $idobject . "\n";
    } else {
        $error++;
        dol_print_error($db, $com->error);
    }
} else {
    $error++;
    dol_print_error($db, $com->error);
}
// -------------------- END OF YOUR CODE --------------------
if (!$error) {
    $db->commit();
    print '--- end ok' . "\n";
} else {
示例#3
0
/**
 * Update an order
 *
 * @param	array		$authentication		Array of authentication information
 * @param	array		$order				Order info
 * @return	array							Array result
 */
function updateOrder($authentication, $order)
{
    global $db, $conf, $langs;
    $now = dol_now();
    dol_syslog("Function: updateOrder login="******"Order id or ref or ref_ext is mandatory.";
    }
    if (!$error) {
        $objectfound = false;
        include_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
        $object = new Commande($db);
        $result = $object->fetch($order['id'], empty($order['id']) ? $order['ref'] : '', empty($order['id']) && empty($order['ref']) ? $order['ref_ext'] : '');
        if (!empty($object->id)) {
            $objectfound = true;
            $db->begin();
            if (isset($order['status'])) {
                if ($order['status'] == -1) {
                    $result = $object->cancel($fuser);
                }
                if ($order['status'] == 1) {
                    $result = $object->valid($fuser);
                }
                if ($order['status'] == 0) {
                    $result = $object->set_reopen($fuser);
                }
                if ($order['status'] == 3) {
                    $result = $object->cloture($fuser);
                }
            }
            if (isset($order['billed'])) {
                if ($order['billed']) {
                    $result = $object->classifyBilled($fuser);
                }
                if (!$order['billed']) {
                    $result = $object->classifyBilled($fuser);
                }
            }
            //Retreive all extrafield for object
            // fetch optionals attributes and labels
            $extrafields = new ExtraFields($db);
            $extralabels = $extrafields->fetch_name_optionals_label('commande', true);
            foreach ($extrafields->attribute_label as $key => $label) {
                $key = 'options_' . $key;
                if (isset($order[$key])) {
                    $result = $object->setValueFrom($key, $order[$key], 'commande_extrafields');
                }
            }
            if ($result <= 0) {
                $error++;
            }
        }
        if (!$error && $objectfound) {
            $db->commit();
            $objectresp = array('result' => array('result_code' => 'OK', 'result_label' => ''), 'id' => $object->id);
        } elseif ($objectfound) {
            $db->rollback();
            $error++;
            $errorcode = 'KO';
            $errorlabel = $object->error;
        } else {
            $error++;
            $errorcode = 'NOT_FOUND';
            $errorlabel = 'Order id=' . $order['id'] . ' ref=' . $order['ref'] . ' ref_ext=' . $order['ref_ext'] . ' cannot be found';
        }
    }
    if ($error) {
        $objectresp = array('result' => array('result_code' => $errorcode, 'result_label' => $errorlabel));
    }
    return $objectresp;
}
/**
 * Valid an order
 *
 * @param	array		$authentication		Array of authentication information
 * @param	int			$id					Id of order to validate
 * @return	array							Array result
 */
function validOrder($authentication, $id = '')
{
    global $db, $conf, $langs;
    dol_syslog("Function: validOrder login="******" id=" . $id . " ref=" . $ref . " ref_ext=" . $ref_ext);
    // Init and check authentication
    $objectresp = array();
    $errorcode = '';
    $errorlabel = '';
    $error = 0;
    if ($authentication['entity']) {
        $conf->entity = $authentication['entity'];
    }
    $fuser = check_authentication($authentication, $error, $errorcode, $errorlabel);
    if (!$error) {
        $fuser->getrights();
        if ($fuser->rights->commande->lire) {
            $order = new Commande($db);
            $result = $order->fetch($id, $ref, $ref_ext);
            $order->fetch_thirdparty();
            $db->begin();
            if ($result > 0) {
                $result = $order->valid($fuser);
                if ($result >= 0) {
                    // Define output language
                    $outputlangs = $langs;
                    commande_pdf_create($db, $order, $order->modelpdf, $outputlangs, 0, 0, 0);
                } else {
                    $db->rollback();
                    $error++;
                    $errorcode = 'KO';
                    $errorlabel = $newobject->error;
                }
            } else {
                $db->rollback();
                $error++;
                $errorcode = 'KO';
                $errorlabel = $newobject->error;
            }
        } else {
            $db->rollback();
            $error++;
            $errorcode = 'KO';
            $errorlabel = $newobject->error;
        }
    }
    if ($error) {
        $objectresp = array('result' => array('result_code' => $errorcode, 'result_label' => $errorlabel));
    } else {
        $db->commit();
        $objectresp = array('result' => array('result_code' => 'OK', 'result_label' => ''));
    }
    return $objectresp;
}