87 public function __construct($db, $dirmodule, $targetmodule, $canvas, $card)
90 $this->dirmodule = $dirmodule;
91 $this->targetmodule = $targetmodule;
92 $this->canvas = $canvas;
95 $this->module =
"service";
96 $this->
name =
"service";
97 $this->definition =
"Services canvas";
98 $this->fieldListName =
"product_service";
99 $this->next_prev_filter =
"canvas='service'";
115 global $conf, $langs, $user, $mysoc, $canvas;
118 $tmpobject =
new Product($this->db);
119 if (!empty($id) || !empty($ref)) {
120 $tmpobject->fetch($id, $ref);
122 $this->
object = $tmpobject;
124 foreach ($this->
object as $key => $value) {
125 $this->tpl[$key] = $value;
131 $this->tpl[
'canvas'] = $this->canvas;
134 $this->tpl[
'id'] = $this->id;
137 $this->tpl[
'ref'] = $this->ref;
140 $this->tpl[
'label'] = $this->label;
143 $this->tpl[
'description'] = nl2br($this->
description);
146 $this->tpl[
'status'] = $this->
object->getLibStatut(2);
149 $this->tpl[
'note'] = nl2br($this->note);
151 if ($action ==
'create') {
153 $this->tpl[
'price'] = $this->price;
154 $this->tpl[
'price_min'] = $this->price_min;
155 $this->tpl[
'price_base_type'] = $form->selectPriceBaseType($this->price_base_type,
"price_base_type");
158 $this->tpl[
'tva_tx'] = $form->load_tva(
"tva_tx", -1, $mysoc,
'');
161 if ($action ==
'view') {
164 $this->tpl[
'showrefnav'] = $form->showrefnav($this->
object,
'ref',
'', 1,
'ref');
166 $titre = $langs->trans(
"CardProduct".$this->object->type);
172 $this->tpl[
'accountancyBuyCodeKey'] = $form->editfieldkey(
"ProductAccountancyBuyCode",
'productaccountancycodesell', $this->accountancy_code_sell, $this, $user->rights->produit->creer);
173 $this->tpl[
'accountancyBuyCodeVal'] = $form->editfieldval(
"ProductAccountancyBuyCode",
'productaccountancycodesell', $this->accountancy_code_sell, $this, $user->rights->produit->creer);
176 $this->tpl[
'accountancySellCodeKey'] = $form->editfieldkey(
"ProductAccountancySellCode",
'productaccountancycodebuy', $this->accountancy_code_buy, $this, $user->rights->produit->creer);
177 $this->tpl[
'accountancySellCodeVal'] = $form->editfieldval(
"ProductAccountancySellCode",
'productaccountancycodebuy', $this->accountancy_code_buy, $this, $user->rights->produit->creer);
180 $this->tpl[
'finished'] = $this->
object->finished;
181 $this->tpl[
'ref'] = $this->
object->ref;
182 $this->tpl[
'label'] = $this->
object->label;
183 $this->tpl[
'id'] = $this->
object->id;
184 $this->tpl[
'type'] = $this->
object->type;
185 $this->tpl[
'note'] = $this->
object->note_private;
186 $this->tpl[
'seuil_stock_alerte'] = $this->
object->seuil_stock_alerte;
189 $this->tpl[
'duration_value'] = $this->
object->duration_value;
191 if ($action ==
'create') {
193 $this->tpl[
'title'] = $langs->trans(
"NewService");
196 if ($action ==
'edit') {
197 $this->tpl[
'title'] = $langs->trans(
'Modify').
' '.$langs->trans(
'Service').
' : '.$this->
object->ref;
200 if ($action ==
'create' || $action ==
'edit') {
202 $statutarray = array(
'1' => $langs->trans(
"OnSell"),
'0' => $langs->trans(
"NotOnSell"));
203 $this->tpl[
'status'] = $form->selectarray(
'statut', $statutarray, $this->object->status);
205 $statutarray = array(
'1' => $langs->trans(
"ProductStatusOnBuy"),
'0' => $langs->trans(
"ProductStatusNotOnBuy"));
206 $this->tpl[
'status_buy'] = $form->selectarray(
'statut_buy', $statutarray, $this->object->status_buy);
208 $this->tpl[
'description'] = $this->description;
209 $this->tpl[
'note'] = $this->note;
213 $duration_unit =
'<input name="duration_unit" type="radio" value="h"'.($this->object->duration_unit ==
'h' ?
' checked' :
'').
'>'.$langs->trans(
"Hour");
214 $duration_unit .=
' ';
215 $duration_unit .=
'<input name="duration_unit" type="radio" value="d"'.($this->object->duration_unit ==
'd' ?
' checked' :
'').
'>'.$langs->trans(
"Day");
216 $duration_unit .=
' ';
217 $duration_unit .=
'<input name="duration_unit" type="radio" value="w"'.($this->object->duration_unit ==
'w' ?
' checked' :
'').
'>'.$langs->trans(
"Week");
218 $duration_unit .=
' ';
219 $duration_unit .=
'<input name="duration_unit" type="radio" value="m"'.($this->object->duration_unit ==
'm' ?
' checked' :
'').
'>'.$langs->trans(
"Month");
220 $duration_unit .=
' ';
221 $duration_unit .=
'<input name="duration_unit" type="radio" value="y"'.($this->object->duration_unit ==
'y' ?
' checked' :
'').
'>'.$langs->trans(
"Year");
222 $this->tpl[
'duration_unit'] = $duration_unit;
225 if ($action ==
'view') {
227 $this->tpl[
'nblines'] = 4;
228 if ($this->object->is_photo_available($conf->service->multidir_output[$this->object->entity])) {
229 $this->tpl[
'photos'] = $this->
object->show_photos(
'product', $conf->service->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80);
234 if ($this->object->duration_value > 1) {
235 $dur = array(
"h"=>$langs->trans(
"Hours"),
"d"=>$langs->trans(
"Days"),
"w"=>$langs->trans(
"Weeks"),
"m"=>$langs->trans(
"Months"),
"y"=>$langs->trans(
"Years"));
236 } elseif ($this->object->duration_value > 0) {
237 $dur = array(
"h"=>$langs->trans(
"Hour"),
"d"=>$langs->trans(
"Day"),
"w"=>$langs->trans(
"Week"),
"m"=>$langs->trans(
"Month"),
"y"=>$langs->trans(
"Year"));
239 $this->tpl[
'duration_unit'] = $langs->trans($dur[$this->object->duration_unit]);
253 global $conf, $langs;
255 $this->field_list = array();
257 $sql =
"SELECT rowid, name, alias, title, align, sort, search, visible, enabled, rang";
258 $sql .=
" FROM ".MAIN_DB_PREFIX.
"c_field_list";
259 $sql .=
" WHERE element = '".$this->db->escape($this->fieldListName).
"'";
260 $sql .=
" AND entity = ".$conf->entity;
261 $sql .=
" ORDER BY rang ASC";
263 $resql = $this->db->query($sql);
265 $num = $this->db->num_rows($resql);
269 $fieldlist = array();
271 $obj = $this->db->fetch_object($resql);
273 $fieldlist[
"id"] = $obj->rowid;
274 $fieldlist[
"name"] = $obj->name;
275 $fieldlist[
"alias"] = $obj->alias;
276 $fieldlist[
"title"] = $langs->trans($obj->title);
277 $fieldlist[
"align"] = $obj->align;
278 $fieldlist[
"sort"] = $obj->sort;
279 $fieldlist[
"search"] = $obj->search;
280 $fieldlist[
"visible"] = $obj->visible;
281 $fieldlist[
"enabled"] =
verifCond($obj->enabled);
282 $fieldlist[
"order"] = $obj->rang;
284 array_push($this->field_list, $fieldlist);
288 $this->db->free($resql);