dolibarr 21.0.0-alpha
commonorder.class.php
Go to the documentation of this file.
1<?php
2/* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
3 * Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
4 * Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
26require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
27require_once DOL_DOCUMENT_ROOT.'/core/class/commonobjectline.class.php';
28require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php';
29
33abstract class CommonOrder extends CommonObject
34{
35 use CommonIncoterm;
36
37
45 public function getKanbanView($option = '', $arraydata = null)
46 {
47 global $langs, $conf;
48
49 $selected = (empty($arraydata['selected']) ? 0 : $arraydata['selected']);
50
51 $return = '<div class="box-flex-item box-flex-grow-zero">';
52 $return .= '<div class="info-box info-box-sm">';
53 $return .= '<div class="info-box-icon bg-infobox-action">';
54 $return .= img_picto('', 'order');
55 $return .= '</div>';
56 $return .= '<div class="info-box-content">';
57 $return .= '<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this, 'getNomUrl') ? $this->getNomUrl() : $this->ref).'</span>';
58 if ($selected >= 0) {
59 $return .= '<input id="cb'.$this->id.'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->id.'"'.($selected ? ' checked="checked"' : '').'>';
60 }
61 if (property_exists($this, 'thirdparty') && is_object($this->thirdparty)) {
62 $return .= '<br><div class="info-box-ref tdoverflowmax150">'.$this->thirdparty->getNomUrl(1).'</div>';
63 }
64 if (property_exists($this, 'total_ht')) {
65 $return .= '<div class="info-box-ref amount">'.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency).' '.$langs->trans('HT').'</div>';
66 }
67 if (method_exists($this, 'getLibStatut')) {
68 $return .= '<div class="info-box-status">'.$this->getLibStatut(3).'</div>';
69 }
70 $return .= '</div>';
71 $return .= '</div>';
72 $return .= '</div>';
73 return $return;
74 }
75
81 public function getNbLinesProductOrServiceOnBuy($ignoreFree = false)
82 {
83 require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
84 $product = new Product($this->db);
85 $return = 0;
86 foreach ($this->lines as $line) {
87 if (empty($line->fk_product) && !$ignoreFree) {
88 $return++;
89 } elseif ((int) $line->fk_product > 0) {
90 if ($product->fetch($line->fk_product) > 0) {
91 if ($product->status_buy) {
92 $return++;
93 }
94 }
95 }
96 }
97 return $return;
98 }
99
103 public $code = "";
104}
105
109abstract class CommonOrderLine extends CommonObjectLine
110{
115 public $label;
116
123 public $ref;
124
131 public $libelle;
132
137 public $product_ref;
138
143 public $product_label;
144
149 public $product_tosell = 0;
150
155 public $product_tobuy = 0;
156
161 public $product_desc;
162
167 public $product_tobatch;
168
173 public $product_barcode;
174
179 public $qty;
180
186 public $price;
187
192 public $subprice;
193
198 public $product_type = 0;
199
204 public $fk_product;
205
210 public $remise_percent;
211
216 public $vat_src_code;
217
222 public $tva_tx;
223
228 public $localtax1_tx;
229
234 public $localtax2_tx;
235
236 public $localtax1_type;
237 public $localtax2_type;
238
245 public $info_bits = 0;
246
250 public $special_code = 0;
251
252 public $fk_multicurrency;
253 public $multicurrency_code;
254 public $multicurrency_subprice;
255 public $multicurrency_total_ht;
256 public $multicurrency_total_tva;
257 public $multicurrency_total_ttc;
258}
Parent class of all other business classes (invoices, contracts, proposals, orders,...
Parent class for class inheritance lines of business objects This class is useless for the moment so ...
Superclass for orders classes.
getKanbanView($option='', $arraydata=null)
Return clickable link of object (with eventually picto)
getNbLinesProductOrServiceOnBuy($ignoreFree=false)
return nb of fines of order where products or services that can be bought
Superclass for orders classes.
$label
Custom label of line.
Class to manage products or services.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)