25 if (!defined(
"NOCSRFCHECK")) define(
"NOCSRFCHECK",
'1');
27 require
'../master.inc.php';
28 require_once NUSOAP_PATH.
'/nusoap.php';
29 require_once DOL_DOCUMENT_ROOT.
'/core/lib/ws.lib.php';
30 require_once DOL_DOCUMENT_ROOT.
'/core/class/extrafields.class.php';
31 require_once DOL_DOCUMENT_ROOT.
"/commande/class/commande.class.php";
34 dol_syslog(
"Call Dolibarr webservices interfaces");
39 if (empty($conf->global->MAIN_MODULE_WEBSERVICES))
41 $langs->load(
"admin");
42 dol_syslog(
"Call Dolibarr webservices interfaces with module webservices disabled");
43 print $langs->trans(
"WarningModuleNotActive",
'WebServices').
'.<br><br>';
44 print $langs->trans(
"ToActivateModule");
49 $server =
new nusoap_server();
50 $server->soap_defencoding =
'UTF-8';
51 $server->decode_utf8 =
false;
52 $ns =
'http://www.dolibarr.org/ns/';
53 $server->configureWSDL(
'WebServicesDolibarrOrder', $ns);
54 $server->wsdl->schemaTargetNamespace = $ns;
58 $server->wsdl->addComplexType(
65 'dolibarrkey' => array(
'name'=>
'dolibarrkey',
'type'=>
'xsd:string'),
66 'sourceapplication' => array(
'name'=>
'sourceapplication',
'type'=>
'xsd:string'),
67 'login' => array(
'name'=>
'login',
'type'=>
'xsd:string'),
68 'password' => array(
'name'=>
'password',
'type'=>
'xsd:string'),
69 'entity' => array(
'name'=>
'entity',
'type'=>
'xsd:string')
73 $server->wsdl->addComplexType(
80 'result_code' => array(
'name'=>
'result_code',
'type'=>
'xsd:string'),
81 'result_label' => array(
'name'=>
'result_label',
'type'=>
'xsd:string'),
86 'id' => array(
'name'=>
'id',
'type'=>
'xsd:string'),
87 'type' => array(
'name'=>
'type',
'type'=>
'xsd:int'),
88 'fk_commande' => array(
'name'=>
'fk_commande',
'type'=>
'xsd:int'),
89 'fk_parent_line' => array(
'name'=>
'fk_parent_line',
'type'=>
'xsd:int'),
90 'desc' => array(
'name'=>
'desc',
'type'=>
'xsd:string'),
91 'qty' => array(
'name'=>
'qty',
'type'=>
'xsd:double'),
92 'price' => array(
'name'=>
'price',
'type'=>
'xsd:double'),
93 'unitprice' => array(
'name'=>
'unitprice',
'type'=>
'xsd:double'),
94 'vat_rate' => array(
'name'=>
'vat_rate',
'type'=>
'xsd:double'),
96 'remise' => array(
'name'=>
'remise',
'type'=>
'xsd:double'),
97 'remise_percent' => array(
'name'=>
'remise_percent',
'type'=>
'xsd:double'),
99 'total_net' => array(
'name'=>
'total_net',
'type'=>
'xsd:double'),
100 'total_vat' => array(
'name'=>
'total_vat',
'type'=>
'xsd:double'),
101 'total' => array(
'name'=>
'total',
'type'=>
'xsd:double'),
103 'date_start' => array(
'name'=>
'date_start',
'type'=>
'xsd:date'),
104 'date_end' => array(
'name'=>
'date_end',
'type'=>
'xsd:date'),
107 'product_id' => array(
'name'=>
'product_id',
'type'=>
'xsd:int'),
108 'product_ref' => array(
'name'=>
'product_ref',
'type'=>
'xsd:string'),
109 'product_label' => array(
'name'=>
'product_label',
'type'=>
'xsd:string'),
110 'product_desc' => array(
'name'=>
'product_desc',
'type'=>
'xsd:string')
113 $elementtype =
'commandedet';
118 $extrafields->fetch_name_optionals_label($elementtype,
true);
119 $extrafield_line_array = null;
120 if (is_array($extrafields) && count($extrafields) > 0) {
121 $extrafield_line_array = array();
123 if (isset($extrafields->attributes[$elementtype][
'label']) && is_array($extrafields->attributes[$elementtype][
'label']) && count($extrafields->attributes[$elementtype][
'label']))
125 foreach ($extrafields->attributes[$elementtype][
'label'] as $key=>$label)
128 $type = $extrafields->attributes[$elementtype][
'type'][$key];
129 if ($type ==
'date' || $type ==
'datetime') {$type =
'xsd:dateTime'; }
130 else {$type =
'xsd:string'; }
131 $extrafield_line_array[
'options_'.$key] = array(
'name'=>
'options_'.$key,
'type'=>$type);
134 if (is_array($extrafield_line_array)) $line_fields = array_merge($line_fields, $extrafield_line_array);
137 $server->wsdl->addComplexType(
161 $server->wsdl->addComplexType(
170 'type' =>
'tns:line',
172 'maxOccurs' =>
'unbounded'
177 $order_fields = array(
178 'id' => array(
'name'=>
'id',
'type'=>
'xsd:string'),
179 'ref' => array(
'name'=>
'ref',
'type'=>
'xsd:string'),
180 'ref_client' => array(
'name'=>
'ref_client',
'type'=>
'xsd:string'),
181 'ref_ext' => array(
'name'=>
'ref_ext',
'type'=>
'xsd:string'),
182 'ref_int' => array(
'name'=>
'ref_int',
'type'=>
'xsd:string'),
183 'thirdparty_id' => array(
'name'=>
'thirdparty_id',
'type'=>
'xsd:int'),
184 'status' => array(
'name'=>
'status',
'type'=>
'xsd:int'),
185 'billed' => array(
'name'=>
'billed',
'type'=>
'xsd:string'),
186 'total_net' => array(
'name'=>
'total_net',
'type'=>
'xsd:double'),
187 'total_vat' => array(
'name'=>
'total_vat',
'type'=>
'xsd:double'),
188 'total_localtax1' => array(
'name'=>
'total_localtax1',
'type'=>
'xsd:double'),
189 'total_localtax2' => array(
'name'=>
'total_localtax2',
'type'=>
'xsd:double'),
190 'total' => array(
'name'=>
'total',
'type'=>
'xsd:double'),
191 'date' => array(
'name'=>
'date',
'type'=>
'xsd:date'),
192 'date_creation' => array(
'name'=>
'date_creation',
'type'=>
'xsd:dateTime'),
193 'date_validation' => array(
'name'=>
'date_validation',
'type'=>
'xsd:dateTime'),
194 'date_modification' => array(
'name'=>
'date_modification',
'type'=>
'xsd:dateTime'),
195 'remise' => array(
'name'=>
'remise',
'type'=>
'xsd:string'),
196 'remise_percent' => array(
'name'=>
'remise_percent',
'type'=>
'xsd:string'),
197 'remise_absolue' => array(
'name'=>
'remise_absolue',
'type'=>
'xsd:string'),
198 'source' => array(
'name'=>
'source',
'type'=>
'xsd:string'),
199 'note_private' => array(
'name'=>
'note_private',
'type'=>
'xsd:string'),
200 'note_public' => array(
'name'=>
'note_public',
'type'=>
'xsd:string'),
201 'project_id' => array(
'name'=>
'project_id',
'type'=>
'xsd:string'),
203 'mode_reglement_id' => array(
'name'=>
'mode_reglement_id',
'type'=>
'xsd:string'),
204 'mode_reglement_code' => array(
'name'=>
'mode_reglement_code',
'type'=>
'xsd:string'),
205 'mode_reglement' => array(
'name'=>
'mode_reglement',
'type'=>
'xsd:string'),
206 'cond_reglement_id' => array(
'name'=>
'cond_reglement_id',
'type'=>
'xsd:string'),
207 'cond_reglement_code' => array(
'name'=>
'cond_reglement_code',
'type'=>
'xsd:string'),
208 'cond_reglement' => array(
'name'=>
'cond_reglement',
'type'=>
'xsd:string'),
209 'cond_reglement_doc' => array(
'name'=>
'cond_reglement_doc',
'type'=>
'xsd:string'),
211 'date_livraison' => array(
'name'=>
'date_livraison',
'type'=>
'xsd:date'),
212 'demand_reason_id' => array(
'name'=>
'demand_reason_id',
'type'=>
'xsd:string'),
214 'lines' => array(
'name'=>
'lines',
'type'=>
'tns:LinesArray2')
217 $elementtype =
'commande';
222 $extrafields->fetch_name_optionals_label($elementtype,
true);
223 $extrafield_array = null;
224 if (is_array($extrafields) && count($extrafields) > 0) {
225 $extrafield_array = array();
227 if (isset($extrafields->attributes[$elementtype][
'label']) && is_array($extrafields->attributes[$elementtype][
'label']) && count($extrafields->attributes[$elementtype][
'label']))
229 foreach ($extrafields->attributes[$elementtype][
'label'] as $key=>$label)
232 $type = $extrafields->attributes[$elementtype][
'type'][$key];
233 if ($type ==
'date' || $type ==
'datetime') {$type =
'xsd:dateTime'; }
234 else {$type =
'xsd:string'; }
235 $extrafield_array[
'options_'.$key] = array(
'name'=>
'options_'.$key,
'type'=>$type);
238 if (is_array($extrafield_array)) $order_fields = array_merge($order_fields, $extrafield_array);
240 $server->wsdl->addComplexType(
265 $server->wsdl->addComplexType(
274 'type' =>
'tns:order',
276 'maxOccurs' =>
'unbounded'
287 $styleuse =
'encoded';
293 array(
'authentication'=>
'tns:authentication',
'id'=>
'xsd:string',
'ref'=>
'xsd:string',
'ref_ext'=>
'xsd:string'),
294 array(
'result'=>
'tns:result',
'order'=>
'tns:order'),
299 'WS to get a particular invoice'
303 'getOrdersForThirdParty',
304 array(
'authentication'=>
'tns:authentication',
'idthirdparty'=>
'xsd:string'),
305 array(
'result'=>
'tns:result',
'orders'=>
'tns:OrdersArray2'),
307 $ns.
'#getOrdersForThirdParty',
310 'WS to get all orders of a third party'
315 array(
'authentication'=>
'tns:authentication',
'order'=>
'tns:order'),
316 array(
'result'=>
'tns:result',
'id'=>
'xsd:string',
'ref'=>
'xsd:string'),
321 'WS to create an order'
326 array(
'authentication'=>
'tns:authentication',
'order'=>
'tns:order'),
327 array(
'result'=>
'tns:result',
'id'=>
'xsd:string',
'ref'=>
'xsd:string',
'ref_ext'=>
'xsd:string'),
332 'WS to update an order'
337 array(
'authentication'=>
'tns:authentication',
'id'=>
'xsd:string',
'id_warehouse'=>
'xsd:string'),
338 array(
'result'=>
'tns:result'),
343 'WS to valid an order'
355 function getOrder($authentication, $id =
'', $ref =
'', $ref_ext =
'')
359 dol_syslog(
"Function: getOrder login=".$authentication[
'login'].
" id=".$id.
" ref=".$ref.
" ref_ext=".$ref_ext);
361 if ($authentication[
'entity']) $conf->entity = $authentication[
'entity'];
364 $objectresp = array();
365 $errorcode =
''; $errorlabel =
'';
371 if ($fuser->socid) $socid = $fuser->socid;
374 if (!$error && (($id && $ref) || ($id && $ref_ext) || ($ref && $ref_ext)))
377 $errorcode =
'BAD_PARAMETERS'; $errorlabel =
"Parameter id, ref and ref_ext can't be both provided. You must choose one or other but not both.";
384 if ($fuser->rights->commande->lire)
387 $result = $order->fetch($id, $ref, $ref_ext);
391 if ($socid && $socid != $order->socid)
394 $errorcode =
'PERMISSION_DENIED'; $errorlabel =
'User does not have permission for this request';
399 $linesresp = array();
401 foreach ($order->lines as $line)
404 $linesresp[] = array(
406 'fk_commande'=>$line->fk_commande,
407 'fk_parent_line'=>$line->fk_parent_line,
410 'price'=>$line->price,
411 'unitprice'=>$line->subprice,
412 'vat_rate'=>$line->tva_tx,
413 'remise'=>$line->remise,
414 'remise_percent'=>$line->remise_percent,
415 'product_id'=>$line->fk_product,
416 'product_type'=>$line->product_type,
417 'total_net'=>$line->total_ht,
418 'total_vat'=>$line->total_tva,
419 'total'=>$line->total_ttc,
420 'date_start'=>$line->date_start,
421 'date_end'=>$line->date_end,
422 'product_ref'=>$line->product_ref,
423 'product_label'=>$line->product_label,
424 'product_desc'=>$line->product_desc
431 'result'=>array(
'result_code'=>
'OK',
'result_label'=>
''),
434 'ref' => $order->ref,
435 'ref_client' => $order->ref_client,
436 'ref_ext' => $order->ref_ext,
437 'ref_int' => $order->ref_int,
438 'thirdparty_id' => $order->socid,
439 'status' => $order->statut,
441 'total_net' => $order->total_ht,
442 'total_vat' => $order->total_tva,
443 'total_localtax1' => $order->total_localtax1,
444 'total_localtax2' => $order->total_localtax2,
445 'total' => $order->total_ttc,
446 'project_id' => $order->fk_project,
448 'date' => $order->date ?
dol_print_date($order->date,
'dayrfc') :
'',
449 'date_creation' => $order->date_creation ?
dol_print_date($order->date_creation,
'dayhourrfc') :
'',
450 'date_validation' => $order->date_validation ?
dol_print_date($order->date_creation,
'dayhourrfc') :
'',
451 'date_modification' => $order->date_modification ?
dol_print_date($order->date_modification,
'dayhourrfc') :
'',
453 'remise' => $order->remise,
454 'remise_percent' => $order->remise_percent,
455 'remise_absolue' => $order->remise_absolue,
457 'source' => $order->source,
458 'billed' => $order->billed,
459 'note_private' => $order->note_private,
460 'note_public' => $order->note_public,
461 'cond_reglement_id' => $order->cond_reglement_id,
462 'cond_reglement_code' => $order->cond_reglement_code,
463 'cond_reglement' => $order->cond_reglement,
464 'mode_reglement_id' => $order->mode_reglement_id,
465 'mode_reglement_code' => $order->mode_reglement_code,
466 'mode_reglement' => $order->mode_reglement,
468 'date_livraison' => $order->delivery_date,
470 'demand_reason_id' => $order->demand_reason_id,
471 'demand_reason_code' => $order->demand_reason_code,
473 'lines' => $linesresp
479 $errorcode =
'NOT_FOUND';
480 $errorlabel =
'Object not found for id='.$id.
' nor ref='.$ref.
' nor ref_ext='.$ref_ext;
485 $errorcode =
'PERMISSION_DENIED';
486 $errorlabel =
'User does not have permission for this request';
492 $objectresp = array(
'result'=>array(
'result_code' => $errorcode,
'result_label' => $errorlabel));
510 dol_syslog(
"Function: getOrdersForThirdParty login=".$authentication[
'login'].
" idthirdparty=".$idthirdparty);
512 if ($authentication[
'entity']) $conf->entity = $authentication[
'entity'];
515 $objectresp = array();
516 $errorcode =
''; $errorlabel =
'';
520 if ($fuser->socid) $socid = $fuser->socid;
523 if (!$error && empty($idthirdparty))
526 $errorcode =
'BAD_PARAMETERS'; $errorlabel =
'Parameter id is not provided';
531 $linesorders = array();
533 $sql =
'SELECT c.rowid as orderid';
534 $sql .=
' FROM '.MAIN_DB_PREFIX.
'commande as c';
535 $sql .=
" WHERE c.entity = ".$conf->entity;
536 if ($idthirdparty !=
'all') $sql .=
" AND c.fk_soc = ".$db->escape($idthirdparty);
539 $resql = $db->query($sql);
542 $num = $db->num_rows(
$resql);
547 $obj = $db->fetch_object(
$resql);
550 $order->fetch($obj->orderid);
553 if ($socid && ($socid != $order->socid))
556 $errorcode =
'PERMISSION_DENIED';
557 $errorlabel = $order->socid.
' User does not have permission for this request';
563 $linesresp = array();
564 foreach ($order->lines as $line)
566 $linesresp[] = array(
568 'type'=>$line->product_type,
569 'fk_commande'=>$line->fk_commande,
570 'fk_parent_line'=>$line->fk_parent_line,
573 'price'=>$line->price,
574 'unitprice'=>$line->subprice,
575 'tva_tx'=>$line->tva_tx,
576 'remise'=>$line->remise,
577 'remise_percent'=>$line->remise_percent,
578 'total_net'=>$line->total_ht,
579 'total_vat'=>$line->total_tva,
580 'total'=>$line->total_ttc,
581 'date_start'=>$line->date_start,
582 'date_end'=>$line->date_end,
583 'product_id'=>$line->fk_product,
584 'product_ref'=>$line->product_ref,
585 'product_label'=>$line->product_label,
586 'product_desc'=>$line->product_desc
591 $linesorders[] = array(
593 'ref' => $order->ref,
594 'ref_client' => $order->ref_client,
595 'ref_ext' => $order->ref_ext,
596 'ref_int' => $order->ref_int,
597 'socid' => $order->socid,
598 'status' => $order->statut,
600 'total_net' => $order->total_ht,
601 'total_vat' => $order->total_tva,
602 'total_localtax1' => $order->total_localtax1,
603 'total_localtax2' => $order->total_localtax2,
604 'total' => $order->total_ttc,
605 'project_id' => $order->fk_project,
607 'date' => $order->date_commande ?
dol_print_date($order->date_commande,
'dayrfc') :
'',
609 'remise' => $order->remise,
610 'remise_percent' => $order->remise_percent,
611 'remise_absolue' => $order->remise_absolue,
613 'source' => $order->source,
614 'billed' => $order->billed,
615 'note_private' => $order->note_private,
616 'note_public' => $order->note_public,
617 'cond_reglement_id' => $order->cond_reglement_id,
618 'cond_reglement' => $order->cond_reglement,
619 'cond_reglement_doc' => $order->cond_reglement_doc,
620 'cond_reglement_code' => $order->cond_reglement_code,
621 'mode_reglement_id' => $order->mode_reglement_id,
622 'mode_reglement' => $order->mode_reglement,
623 'mode_reglement_code' => $order->mode_reglement_code,
625 'date_livraison' => $order->delivery_date,
627 'demand_reason_id' => $order->demand_reason_id,
628 'demand_reason_code' => $order->demand_reason_code,
630 'lines' => $linesresp
637 'result'=>array(
'result_code'=>
'OK',
'result_label'=>
''),
638 'orders'=>$linesorders
644 $errorcode = $db->lasterrno(); $errorlabel = $db->lasterror();
650 $objectresp = array(
'result'=>array(
'result_code' => $errorcode,
'result_label' => $errorlabel));
666 global $db, $conf, $langs;
668 include_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
672 dol_syslog(
"Function: createOrder login=".$authentication[
'login'].
" socid :".$order[
'socid']);
674 if ($authentication[
'entity']) $conf->entity = $authentication[
'entity'];
677 $objectresp = array();
689 $newobject->socid = $order[
'thirdparty_id'];
690 $newobject->type = $order[
'type'];
691 $newobject->ref_ext = $order[
'ref_ext'];
693 $newobject->date_lim_reglement =
dol_stringtotime($order[
'date_due'],
'dayrfc');
694 $newobject->note_private = $order[
'note_private'];
695 $newobject->note_public = $order[
'note_public'];
697 $newobject->billed = $order[
'billed'];
698 $newobject->fk_project = $order[
'project_id'];
699 $newobject->cond_reglement_id = $order[
'cond_reglement_id'];
700 $newobject->demand_reason_id = $order[
'demand_reason_id'];
701 $newobject->date_creation = $now;
703 $elementtype =
'commande';
708 $extrafields->fetch_name_optionals_label($elementtype,
true);
709 if (isset($extrafields->attributes[$elementtype][
'label']) && is_array($extrafields->attributes[$elementtype][
'label']) && count($extrafields->attributes[$elementtype][
'label']))
711 foreach ($extrafields->attributes[$elementtype][
'label'] as $key => $label)
713 $key =
'options_'.$key;
714 $newobject->array_options[$key] = $order[$key];
719 $arrayoflines = array();
720 if (isset($order[
'lines'][
'line'][0])) $arrayoflines = $order[
'lines'][
'line'];
721 else $arrayoflines = $order[
'lines'];
723 foreach ($arrayoflines as $key => $line)
728 $newline->type = $line[
'type'];
729 $newline->desc = $line[
'desc'];
730 $newline->fk_product = $line[
'product_id'];
731 $newline->tva_tx = $line[
'vat_rate'];
732 $newline->qty = $line[
'qty'];
733 $newline->price = $line[
'price'];
734 $newline->subprice = $line[
'unitprice'];
735 $newline->total_ht = $line[
'total_net'];
736 $newline->total_tva = $line[
'total_vat'];
737 $newline->total_ttc = $line[
'total'];
738 $newline->date_start = $line[
'date_start'];
739 $newline->date_end = $line[
'date_end'];
741 $elementtype =
'commandedet';
746 $extrafields->fetch_name_optionals_label($elementtype,
true);
747 if (isset($extrafields->attributes[$elementtype][
'label']) && is_array($extrafields->attributes[$elementtype][
'label']) && count($extrafields->attributes[$elementtype][
'label']))
749 foreach ($extrafields->attributes[$elementtype][
'label'] as $key=>$label)
751 $key =
'options_'.$key;
752 $newline->array_options[$key] = $line[$key];
756 $newobject->lines[] = $newline;
761 dol_syslog(
"Webservice server_order:: order creation start", LOG_DEBUG);
762 $result = $newobject->create($fuser);
763 dol_syslog(
'Webservice server_order:: order creation done with $result='.$result, LOG_DEBUG);
766 dol_syslog(
"Webservice server_order:: order creation failed", LOG_ERR);
770 if ($order[
'status'] == 1)
772 dol_syslog(
"Webservice server_order:: order validation start", LOG_DEBUG);
773 $result = $newobject->valid($fuser);
776 dol_syslog(
"Webservice server_order:: order validation failed", LOG_ERR);
783 dol_syslog(
"Webservice server_order:: order creation & validation succeeded, commit", LOG_DEBUG);
785 $objectresp = array(
'result'=>array(
'result_code'=>
'OK',
'result_label'=>
''),
'id'=>$newobject->id,
'ref'=>$newobject->ref);
788 dol_syslog(
"Webservice server_order:: order creation or validation failed, rollback", LOG_ERR);
792 $errorlabel = $newobject->error;
798 $objectresp = array(
'result'=>array(
'result_code' => $errorcode,
'result_label' => $errorlabel));
813 function validOrder($authentication, $id =
'', $id_warehouse = 0)
815 global $db, $conf, $langs;
817 dol_syslog(
"Function: validOrder login=".$authentication[
'login'].
" id=".$id.
" id_warehouse=".$id_warehouse);
820 $objectresp = array();
824 if ($authentication[
'entity']) $conf->entity = $authentication[
'entity'];
831 if ($fuser->rights->commande->lire)
834 $result = $order->fetch($id);
836 $order->fetch_thirdparty();
840 $result = $order->valid($fuser, $id_warehouse);
845 $outputlangs = $langs;
846 $order->generateDocument($order->model_pdf, $outputlangs);
852 $errorlabel = $order->error;
859 $errorlabel = $order->error;
866 $errorlabel = $order->error;
872 $objectresp = array(
'result'=>array(
'result_code' => $errorcode,
'result_label' => $errorlabel));
876 $objectresp = array(
'result'=>array(
'result_code'=>
'OK',
'result_label'=>
''));
891 global $db, $conf, $langs;
893 dol_syslog(
"Function: updateOrder login=".$authentication[
'login']);
895 if ($authentication[
'entity']) $conf->entity = $authentication[
'entity'];
898 $objectresp = array();
899 $errorcode =
''; $errorlabel =
'';
903 if (empty($order[
'id']) && empty($order[
'ref']) && empty($order[
'ref_ext'])) {
904 $error++; $errorcode =
'KO'; $errorlabel =
"Order id or ref or ref_ext is mandatory.";
909 $objectfound =
false;
911 include_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
914 $result = $object->fetch($order[
'id'], (empty($order[
'id']) ? $order[
'ref'] :
''), (empty($order[
'id']) && empty($order[
'ref']) ? $order[
'ref_ext'] :
''));
916 if (!empty($object->id)) {
921 if (isset($order[
'status']))
923 if ($order[
'status'] == -1) $result = $object->cancel($fuser);
924 if ($order[
'status'] == 1)
926 $result = $object->valid($fuser);
930 $outputlangs = $langs;
931 $object->generateDocument($order->model_pdf, $outputlangs);
934 if ($order[
'status'] == 0) $result = $object->set_reopen($fuser);
935 if ($order[
'status'] == 3) $result = $object->cloture($fuser);
938 if (isset($order[
'billed']))
940 if ($order[
'billed']) $result = $object->classifyBilled($fuser);
941 if (!$order[
'billed']) $result = $object->classifyUnBilled($fuser);
944 $elementtype =
'commande';
949 $extrafields->fetch_name_optionals_label($elementtype,
true);
950 if (isset($extrafields->attributes[$elementtype][
'label']) && is_array($extrafields->attributes[$elementtype][
'label']) && count($extrafields->attributes[$elementtype][
'label']))
952 foreach ($extrafields->attributes[$elementtype][
'label'] as $key => $label)
954 $key =
'options_'.$key;
955 if (isset($order[$key]))
957 $result = $object->setValueFrom($key, $order[$key],
'commande_extrafields');
967 if ((!$error) && ($objectfound))
971 'result'=>array(
'result_code'=>
'OK',
'result_label'=>
''),
974 'ref_ext'=>$object->ref_ext
977 elseif ($objectfound)
982 $errorlabel = $object->error;
985 $errorcode =
'NOT_FOUND';
986 $errorlabel =
'Order id='.$order[
'id'].
' ref='.$order[
'ref'].
' ref_ext='.$order[
'ref_ext'].
' cannot be found';
992 $objectresp = array(
'result'=>array(
'result_code' => $errorcode,
'result_label' => $errorlabel));
1000 $server->service(file_get_contents(
"php://input"));
check_authentication($authentication, &$error, &$errorcode, &$errorlabel)
Check authentication array and set error, errorcode, errorlabel.
createOrder($authentication, $order)
Create order.
dol_now($mode= 'auto')
Return date for now.
getOrdersForThirdParty($authentication, $idthirdparty)
Get list of orders for third party.
dol_stringtotime($string, $gm=1)
Convert a string date into a GM Timestamps date Warning: YYYY-MM-DDTHH:MM:SS+02:00 (RFC3339) is not s...
Class to manage order lines.
getOrder($authentication, $id= '', $ref= '', $ref_ext= '')
Get order from id, ref or ref_ext.
Class to manage customers orders.
const STATUS_DRAFT
Draft status.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
updateOrder($authentication, $order)
Update an order.
print
Draft customers invoices.
dol_print_date($time, $format= '', $tzoutput= 'auto', $outputlangs= '', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
validOrder($authentication, $id= '', $id_warehouse=0)
Valid an order.