38 if (empty($object) || !is_object($object)) {
39 print
"Error, template page can't be called as URL";
44 global $forceall, $senderissupplier, $inputalsopricewithtax, $outputalsopricetotalwithtax, $langs;
46 if (empty($dateSelector)) {
49 if (empty($forceall)) {
52 if (empty($senderissupplier)) {
53 $senderissupplier = 0;
55 if (empty($inputalsopricewithtax)) {
56 $inputalsopricewithtax = 0;
58 if (empty($outputalsopricetotalwithtax)) {
59 $outputalsopricetotalwithtax = 0;
63 $domData =
' data-element="'.$line->element.
'"';
64 $domData .=
' data-id="'.$line->id.
'"';
65 $domData .=
' data-qty="'.$line->qty.
'"';
66 $domData .=
' data-product_type="'.$line->product_type.
'"';
69 $objectline =
new BOMLine($object->db);
72 print
"<!-- BEGIN PHP TEMPLATE objectline_view.tpl.php -->\n";
73 print
'<tr id="row-'.$line->id.
'" class="drag drop oddeven" '.$domData.
' >';
74 if (!empty($conf->global->MAIN_VIEW_LINE_NUMBER)) {
75 print
'<td class="linecolnum center">'.($i + 1).
'</td>';
78 print
'<td class="linecoldescription minwidth300imp">';
79 print
'<div id="line_'.$line->id.
'"></div>';
81 $tmpproduct =
new Product($object->db);
82 $tmpproduct->fetch($line->fk_product);
83 $tmpbom =
new BOM($object->db);
84 $res = $tmpbom->fetch($line->fk_bom_child);
85 if ($tmpbom->id > 0) {
86 print $tmpproduct->getNomUrl(1);
87 print
' '.$langs->trans(
"or").
' ';
88 print $tmpbom->getNomUrl(1);
89 print
' <a class="collapse_bom" id="collapse-'.$line->id.
'" href="#">';
90 print (empty($conf->global->BOM_SHOW_ALL_BOM_BY_DEFAULT) ?
img_picto(
'',
'folder') :
img_picto(
'',
'folder-open'));
93 print $tmpproduct->getNomUrl(1);
94 print
' - '.$tmpproduct->label;
98 print
'<td class="linecolqty nowrap right">';
100 echo
price($line->qty, 0,
'', 0, 0);
103 if (!empty($conf->global->PRODUCT_USE_UNITS)) {
104 print
'<td class="linecoluseunit nowrap left">';
105 $label = $tmpproduct->getLabelOfUnit(
'long');
107 print $langs->trans($label);
112 print
'<td class="linecolqtyfrozen nowrap right">';
114 echo $line->qty_frozen ?
yn($line->qty_frozen) :
'';
116 print
'<td class="linecoldisablestockchange nowrap right">';
118 echo $line->disable_stock_change ?
yn($line->disable_stock_change) :
'';
121 print
'<td class="linecolefficiency nowrap right">';
123 echo $line->efficiency;
127 print
'<td id="costline_'.$line->id.
'" class="linecolcost nowrap right">';
129 echo
'<span class="amount">'.price($line->total_cost).
'</span>';
132 if ($this->status == 0 && ($object_rights->write) && $action !=
'selectlines') {
133 print
'<td class="linecoledit center">';
135 if (($line->info_bits & 2) == 2 || !empty($disableedit)) {
137 print
'<a class="editfielda reposition" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$this->
id.
'&action=editline&token='.
newToken().
'&lineid='.$line->id.
'">'.
img_edit().
'</a>';
141 print
'<td class="linecoldelete center">';
143 if (($line->fk_prev_id ==
null) && empty($disableremove)) {
145 print
'<a class="reposition" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$this->
id.
'&action=deleteline&token='.
newToken().
'&lineid='.$line->id.
'">';
151 if ($num > 1 && $conf->browser->layout !=
'phone' && empty($disablemove)) {
152 print
'<td class="linecolmove tdlineupdown center">';
155 print
'<a class="lineupdown" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$this->
id.
'&action=up&token='.
newToken().
'&rowid='.$line->id.
'">';
156 echo
img_up(
'default', 0,
'imgupforline');
160 print
'<a class="lineupdown" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$this->
id.
'&action=down&token='.
newToken().
'&rowid='.$line->id.
'">';
161 echo
img_down(
'default', 0,
'imgdownforline');
166 print
'<td '.(($conf->browser->layout !=
'phone' && empty($disablemove)) ?
' class="linecolmove tdlineupdown center"' :
' class="linecolmove center"').
'></td>';
170 print
'<td colspan="3"></td>';
171 $coldisplay = $coldisplay + 3;
174 if ($action ==
'selectlines') {
175 print
'<td class="linecolcheck center">';
176 print
'<input type="checkbox" class="linecheckbox" name="line_checkbox['.($i + 1).
']" value="'.$line->id.
'" >';
184 $sql =
'SELECT rowid, fk_bom_child, fk_product, qty FROM '.MAIN_DB_PREFIX.
'bom_bomline AS bl';
185 $sql.=
' WHERE fk_bom ='. (int) $tmpbom->id;
186 $resql = $object->db->query($sql);
190 while ($obj = $object->db->fetch_object(
$resql)) {
191 $sub_bom_product =
new Product($object->db);
192 $sub_bom_product->fetch($obj->fk_product);
194 $sub_bom =
new BOM($object->db);
195 if (!empty($obj->fk_bom_child)) {
196 $sub_bom->fetch($obj->fk_bom_child);
199 $sub_bom_line =
new BOMLine($object->db);
200 $sub_bom_line->fetch($obj->rowid);
203 if (empty($conf->global->BOM_SHOW_ALL_BOM_BY_DEFAULT)) {
204 print
'<tr style="display:none" class="sub_bom_lines" parentid="'.$line->id.
'">';
206 print
'<tr class="sub_bom_lines" parentid="'.$line->id.
'">';
210 print
'<td style="padding-left: 5%" id="sub_bom_product_'.$sub_bom_line->id.
'">';
211 if (!empty($obj->fk_bom_child)) {
212 print $sub_bom_product->getNomUrl(1);
213 print
' '.$langs->trans(
'or').
' ';
214 print $sub_bom->getNomUrl(1);
216 print $sub_bom_product->getNomUrl(1);
221 $label = $sub_bom_product->getLabelOfUnit(
'long');
222 if ($sub_bom_line->qty_frozen > 0) {
223 print
'<td class="linecolqty nowrap right" id="sub_bom_qty_'.$sub_bom_line->id.
'">'.
price($sub_bom_line->qty, 0,
'', 0, 0).
'</td>';
224 print
'<td class="linecoluseunit nowrap left">';
225 if ($label !==
'') print $langs->trans($label);
227 print
'<td class="linecolqtyfrozen nowrap right" id="sub_bom_qty_frozen_'.$sub_bom_line->id.
'">'.$langs->trans(
'Yes').
'</td>';
229 print
'<td class="linecolqty nowrap right" id="sub_bom_qty_'.$sub_bom_line->id.
'">'.
price($sub_bom_line->qty * $line->qty, 0,
'', 0, 0).
'</td>';
230 print
'<td class="linecoluseunit nowrap left">';
231 if ($label !==
'') print $langs->trans($label);
234 print
'<td class="linecolqtyfrozen nowrap right" id="sub_bom_qty_frozen_'.$sub_bom_line->id.
'"> </td>';
238 if ($sub_bom_line->disable_stock_change > 0) {
239 print
'<td class="linecoldisablestockchange nowrap right" id="sub_bom_stock_change_'.$sub_bom_line->id.
'">'.$sub_bom_line->disable_stock_change.
'</td>';
241 print
'<td class="linecoldisablestockchange nowrap right" id="sub_bom_stock_change_'.$sub_bom_line->id.
'"> </td>';
245 print
'<td class="linecolefficiency nowrap right" id="sub_bom_efficiency_'.$sub_bom_line->id.
'">'.$sub_bom_line->efficiency.
'</td>';
248 if (!empty($sub_bom->id)) {
249 $sub_bom->calculateCosts();
250 print
'<td class="linecolcost nowrap right" id="sub_bom_cost_'.$sub_bom_line->id.
'"><span class="amount">'.
price(
price2num($sub_bom->total_cost * $sub_bom_line->qty * $line->qty,
'MT')).
'</span></td>';
251 $total_cost+= $sub_bom->total_cost * $sub_bom_line->qty * $line->qty;
252 } elseif ($sub_bom_product->cost_price > 0) {
253 print
'<td class="linecolcost nowrap right" id="sub_bom_cost_'.$sub_bom_line->id.
'"><span class="amount">'.
price(
price2num($sub_bom_product->cost_price * $sub_bom_line->qty * $line->qty,
'MT')).
'</span></td>';
254 $total_cost+= $sub_bom_product->cost_price * $sub_bom_line->qty * $line->qty;
255 } elseif ($sub_bom_product->pmp > 0) {
256 print
'<td class="linecolcost nowrap right" id="sub_bom_cost_'.$sub_bom_line->id.
'"><span class="amount">'.
price(
price2num($sub_bom_product->pmp * $sub_bom_line->qty * $line->qty,
'MT')).
'</span></td>';
257 $total_cost.= $sub_bom_product->pmp * $sub_bom_line->qty * $line->qty;
259 $sql_supplier_price =
'SELECT MIN(price) AS min_price, quantity AS qty FROM '.MAIN_DB_PREFIX.
'product_fournisseur_price';
260 $sql_supplier_price.=
' WHERE fk_product = '. (int) $sub_bom_product->id;
261 $resql_supplier_price = $object->db->query($sql_supplier_price);
262 if ($resql_supplier_price) {
263 $obj = $object->db->fetch_object($resql_supplier_price);
264 $line_cost = $obj->min_price/$obj->qty * $sub_bom_line->qty * $line->qty;
266 print
'<td class="linecolcost nowrap right" id="sub_bom_cost_'.$sub_bom_line->id.
'"><span class="amount">'.
price2num($line_cost,
'MT').
'</span></td>';
267 $total_cost+= $line_cost;
279 if ($total_cost > 0) {
280 $line->total_cost =
price($total_cost);
283 $(
'#costline_<?php echo $line->id?>').html(
'<?php echo "<span class=\"amount\">".price($total_cost)."</span>"; ?>');
290 if (!empty($extrafields)) {
291 print $line->showOptionals($extrafields,
'view', array(
'style'=>
'class="drag drop oddeven"',
'colspan'=>$coldisplay),
'',
'', 1,
'line');
294 print
"<!-- END PHP TEMPLATE objectline_view.tpl.php -->\n";