function _autocomplete_lot_number(&$PDOdb, $productid)
{
    global $db, $conf, $langs;
    $langs->load('other');
    dol_include_once('/core/lib/product.lib.php');
    $sql = "SELECT DISTINCT(lot_number),rowid, SUM(contenancereel_value) as qty, contenancereel_units as unit\n\t\t\tFROM " . MAIN_DB_PREFIX . "asset\n\t\t\tWHERE fk_product = " . $productid . " GROUP BY lot_number,contenancereel_units,rowid";
    $PDOdb->Execute($sql);
    $TLotNumber = array('');
    $PDOdb->Execute($sql);
    $Tres = $PDOdb->Get_All();
    foreach ($Tres as $res) {
        $asset = new TAsset();
        $asset->load($PDOdb, $res->rowid);
        $asset->load_asset_type($PDOdb);
        //pre($asset,true);exit;
        $TLotNumber[$res->lot_number]['lot_number'] = $res->lot_number;
        $TLotNumber[$res->lot_number]['label'] = $res->lot_number . " / " . $res->qty . " " . ($asset->assetType->measuring_units == 'unit' ? 'unité(s)' : measuring_units_string($res->unit, $asset->assetType->measuring_units));
    }
    return $TLotNumber;
}
 /** Overloading the doActions function : replacing the parent's function with the one below 
  *  @param      parameters  meta datas of the hook (context, etc...) 
  *  @param      object             the object you want to process (an invoice if you are in invoice module, a propale in propale's module, etc...) 
  *  @param      action             current action (if set). Generally create or edit or null 
  *  @return       void 
  */
 function beforePDFCreation($parameters, &$object, &$action, $hookmanager)
 {
     // pour implementation dans Dolibarr 3.7
     if (in_array('pdfgeneration', explode(':', $parameters['context']))) {
         define('INC_FROM_DOLIBARR', true);
         dol_include_once('/dispatch/config.php');
         dol_include_once('/asset/class/asset.class.php');
         dol_include_once('/dispatch/class/dispatchdetail.class.php');
         global $conf;
         if (isset($parameters['object']) && get_class($object) == 'Expedition') {
             $PDOdb = new TPDOdb();
             foreach ($object->lines as &$line) {
                 $sql = 'SELECT DISTINCT(lot_number),rowid FROM ' . MAIN_DB_PREFIX . 'expeditiondet_asset WHERE fk_expeditiondet = ' . $line->line_id;
                 $PDOdb->Execute($sql);
                 $TRes = $PDOdb->Get_All();
                 if (count($TRes) > 0) {
                     $line->desc .= "<br>Lot(s) expédié(s) : ";
                     foreach ($TRes as $res) {
                         $dispatchDetail = new TDispatchDetail();
                         $dispatchDetail->load($PDOdb, $res->rowid);
                         $asset = new TAsset();
                         $asset->load($PDOdb, $dispatchDetail->fk_asset);
                         $asset->load_asset_type($PDOdb);
                         $unite = $asset->assetType->measuring_units == 'unit' ? 'unité(s)' : measuring_units_string($dispatchDetail->weight_reel_unit, $asset->assetType->measuring_units);
                         $desc = "<br>- " . $res->lot_number . " x " . $dispatchDetail->weight_reel . " " . $unite;
                         if (empty($conf->global->DISPATCH_HIDE_DLUO_PDF)) {
                             $desc .= ' (DLUO : ' . $asset->get_date('dluo') . ')';
                         }
                         $line->desc .= $desc;
                     }
                 }
             }
         }
         //pre($object,true);exit;
     }
 }
示例#3
0
文件: card.php 项目: Albertopf/prueba
     } else {
         print '&nbsp;';
     }
     print "</td></tr>\n";
     // Surface
     print '<tr><td>' . $langs->trans("Surface") . '</td><td colspan="2">';
     if ($object->surface != '') {
         print $object->surface . " " . measuring_units_string($object->surface_units, "surface");
     } else {
         print '&nbsp;';
     }
     print "</td></tr>\n";
     // Volume
     print '<tr><td>' . $langs->trans("Volume") . '</td><td colspan="2">';
     if ($object->volume != '') {
         print $object->volume . " " . measuring_units_string($object->volume_units, "volume");
     } else {
         print '&nbsp;';
     }
     print "</td></tr>\n";
 }
 // Unit
 if (!empty($conf->global->PRODUCT_USE_UNITS)) {
     $unit = $object->getLabelOfUnit();
     print '<tr><td>' . $langs->trans('DefaultUnitToShow') . '</td><td>';
     if ($unit !== '') {
         print $langs->trans($unit);
     }
     print '</td></tr>';
 }
 // Custom code
 /**
  *	Return clicable link of object (with eventually picto)
  *
  *	@param		int		$withpicto		Add picto into link
  *	@param		string	$option			Where point the link
  *	@param		int		$maxlength		Maxlength of ref
  *	@return		string					String with URL
  */
 function getNomUrl($withpicto = 0, $option = '', $maxlength = 0)
 {
     global $conf, $langs;
     include_once DOL_DOCUMENT_ROOT . '/core/lib/product.lib.php';
     $result = '';
     $newref = $this->ref;
     if ($maxlength) {
         $newref = dol_trunc($newref, $maxlength, 'middle');
     }
     if ($this->type == Product::TYPE_PRODUCT) {
         $label = '<u>' . $langs->trans("ShowProduct") . '</u>';
     }
     if ($this->type == Product::TYPE_SERVICE) {
         $label = '<u>' . $langs->trans("ShowService") . '</u>';
     }
     if (!empty($this->ref)) {
         $label .= '<br><b>' . $langs->trans('ProductRef') . ':</b> ' . $this->ref;
     }
     if (!empty($this->label)) {
         $label .= '<br><b>' . $langs->trans('ProductLabel') . ':</b> ' . $this->label;
     }
     $tmptext = '';
     if ($this->weight) {
         $tmptext .= "<br>" . $langs->trans("Weight") . ': ' . $this->weight . ' ' . measuring_units_string($this->weight_units, "weight");
     }
     if ($this->length) {
         $tmptext .= "<br>" . $langs->trans("Length") . ': ' . $this->length . ' ' . measuring_units_string($this->length_units, 'length');
     }
     if ($this->surface) {
         $tmptext .= "<br>" . $langs->trans("Surface") . ': ' . $this->surface . ' ' . measuring_units_string($this->surface_units, 'surface');
     }
     if ($this->volume) {
         $tmptext .= "<br>" . $langs->trans("Volume") . ': ' . $this->volume . ' ' . measuring_units_string($this->volume_units, 'volume');
     }
     if ($tmptext) {
         $label .= $tmptext;
     }
     if (!empty($this->entity)) {
         $label .= '<br>' . $this->show_photos($conf->product->multidir_output[$this->entity], 1, 1, 0, 0, 0, 80);
     }
     $linkclose = '" title="' . str_replace('\\n', '', dol_escape_htmltag($label, 1)) . '" class="classfortooltip">';
     if ($option == 'supplier') {
         $link = '<a href="' . DOL_URL_ROOT . '/product/fournisseurs.php?id=' . $this->id . $linkclose;
         $linkend = '</a>';
     } else {
         if ($option == 'stock') {
             $link = '<a href="' . DOL_URL_ROOT . '/product/stock/product.php?id=' . $this->id . $linkclose;
             $linkend = '</a>';
         } else {
             if ($option == 'composition') {
                 $link = '<a href="' . DOL_URL_ROOT . '/product/composition/card.php?id=' . $this->id . $linkclose;
                 $linkend = '</a>';
             } else {
                 if ($option == 'category') {
                     $link = '<a href="' . DOL_URL_ROOT . '/categories/categorie.php?id=' . $this->id . '&amp;type=0' . $linkclose;
                 } else {
                     $link = '<a href="' . DOL_URL_ROOT . '/product/card.php?id=' . $this->id . $linkclose;
                     $linkend = '</a>';
                 }
             }
         }
     }
     if ($withpicto) {
         if ($this->type == Product::TYPE_PRODUCT) {
             $result .= $link . img_object($langs->trans("ShowProduct") . ' ' . $this->label, 'product', 'class="classfortooltip"') . $linkend . ' ';
         }
         if ($this->type == Product::TYPE_SERVICE) {
             $result .= $link . img_object($langs->trans("ShowService") . ' ' . $this->label, 'service', 'class="classfortooltip"') . $linkend . ' ';
         }
     }
     $result .= $link . $newref . $linkend;
     return $result;
 }
示例#5
0
				// Surface
				print '<tr><td>'.$langs->trans("Surface").'</td><td colspan="2">';
				if ($product->surface != '')
				{
					print $product->surface." ".measuring_units_string($product->surface_units,"surface");
				}
				else
				{
					print '&nbsp;';
				}
				print "</td></tr>\n";
				// Volume
				print '<tr><td>'.$langs->trans("Volume").'</td><td colspan="2">';
				if ($product->volume != '')
				{
					print $product->volume." ".measuring_units_string($product->volume_units,"volume");
				}
				else
				{
					print '&nbsp;';
				}
				print "</td></tr>\n";
			}

            // Custom code
            print '<tr><td>'.$langs->trans("CustomCode").'</td><td colspan="2">'.$product->customcode.'</td>';

            // Origin country code
            print '<tr><td>'.$langs->trans("CountryOrigin").'</td><td colspan="2">'.getCountry($product->country_id,0,$db).'</td>';

 /**
  *	Define array with couple substitution key => substitution value
  *
  *	@param  array			$line				Array of lines
  *	@param  Translate		$outputlangs        Lang object to use for output
  *	@return	array								Substitution array
  */
 function get_substitutionarray_shipment_lines($line, $outputlangs)
 {
     global $conf;
     dol_include_once('/core/lib/product.lib.php');
     return array('line_fulldesc' => doc_getlinedesc($line, $outputlangs), 'line_product_ref' => $line->product_ref, 'line_product_label' => $line->product_label, 'line_desc' => $line->desc, 'line_vatrate' => vatrate($line->tva_tx, true, $line->info_bits), 'line_up' => price($line->subprice), 'line_qty' => $line->qty, 'line_qty_shipped' => $line->qty_shipped, 'line_qty_asked' => $line->qty_asked, 'line_discount_percent' => $line->remise_percent ? $line->remise_percent . '%' : '', 'line_price_ht' => price($line->total_ht), 'line_price_ttc' => price($line->total_ttc), 'line_price_vat' => price($line->total_tva), 'line_weight' => empty($line->weight) ? '' : $line->weight * $line->qty_shipped . ' ' . measuring_units_string($line->weight_units, 'weight'), 'line_length' => empty($line->length) ? '' : $line->length * $line->qty_shipped . ' ' . measuring_units_string($line->length_units, 'size'), 'line_surface' => empty($line->surface) ? '' : $line->surface * $line->qty_shipped . ' ' . measuring_units_string($line->surface_units, 'surface'), 'line_volume' => empty($line->volume) ? '' : $line->volume * $line->qty_shipped . ' ' . measuring_units_string($line->volume_units, 'volume'));
 }
 /**
  *    Assign custom values for canvas (for example into this->tpl to be used by templates)
  *
  *    @param	string	$action    Type of action
  *    @param	string	$id			Id of object
  *    @param	string	$ref		Ref of object
  *    @return	void
  */
 function assign_values(&$action, $id = 0, $ref = '')
 {
     global $conf, $langs, $user, $mysoc, $canvas;
     global $form, $formproduct;
     $tmpobject = new Product($this->db);
     if (!empty($id) || !empty($ref)) {
         $tmpobject->fetch($id, $ref);
     }
     $this->object = $tmpobject;
     //parent::assign_values($action);
     foreach ($this->object as $key => $value) {
         $this->tpl[$key] = $value;
     }
     $this->tpl['error'] = get_htmloutput_errors($this->object->error, $this->object->errors);
     // canvas
     $this->tpl['canvas'] = $this->canvas;
     // id
     $this->tpl['id'] = $this->id;
     // Ref
     $this->tpl['ref'] = $this->ref;
     // Label
     $this->tpl['label'] = $this->libelle;
     // Description
     $this->tpl['description'] = nl2br($this->description);
     // Statut
     $this->tpl['status'] = $this->object->getLibStatut(2);
     // Note
     $this->tpl['note'] = nl2br($this->note);
     if ($action == 'create') {
         // Price
         $this->tpl['price'] = $this->price;
         $this->tpl['price_min'] = $this->price_min;
         $this->tpl['price_base_type'] = $form->load_PriceBaseType($this->price_base_type, "price_base_type");
         // VAT
         $this->tpl['tva_tx'] = $form->load_tva("tva_tx", -1, $mysoc, '');
     }
     if ($action == 'create' || $action == 'edit') {
         // Status
         $statutarray = array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
         $this->tpl['status'] = $form->selectarray('statut', $statutarray, $this->status);
         //To Buy
         $statutarray = array('1' => $langs->trans("Yes"), '0' => $langs->trans("No"));
         $this->tpl['tobuy'] = $form->selectarray('tobuy', $statutarray, $this->status_buy);
         $this->tpl['description'] = $this->description;
         $this->tpl['note'] = $this->note;
     }
     if ($action == 'view') {
         $head = product_prepare_head($this->object, $user);
         $this->tpl['showrefnav'] = $form->showrefnav($this->object, 'ref', '', 1, 'ref');
         $titre = $langs->trans("CardProduct" . $this->object->type);
         $picto = $this->object->type == 1 ? 'service' : 'product';
         $this->tpl['showhead'] = dol_get_fiche_head($head, 'card', $titre, 0, $picto);
         $this->tpl['showend'] = dol_get_fiche_end();
         // Accountancy buy code
         $this->tpl['accountancyBuyCodeKey'] = $form->editfieldkey("ProductAccountancyBuyCode", 'productaccountancycodesell', $this->accountancy_code_sell, $this, $user->rights->produit->creer);
         $this->tpl['accountancyBuyCodeVal'] = $form->editfieldval("ProductAccountancyBuyCode", 'productaccountancycodesell', $this->accountancy_code_sell, $this, $user->rights->produit->creer);
         // Accountancy sell code
         $this->tpl['accountancySellCodeKey'] = $form->editfieldkey("ProductAccountancySellCode", 'productaccountancycodebuy', $this->accountancy_code_buy, $this, $user->rights->produit->creer);
         $this->tpl['accountancySellCodeVal'] = $form->editfieldval("ProductAccountancySellCode", 'productaccountancycodebuy', $this->accountancy_code_buy, $this, $user->rights->produit->creer);
     }
     $this->tpl['finished'] = $this->object->finished;
     $this->tpl['ref'] = $this->object->ref;
     $this->tpl['label'] = $this->object->label;
     $this->tpl['id'] = $this->object->id;
     $this->tpl['type'] = $this->object->type;
     $this->tpl['note'] = $this->object->note;
     $this->tpl['seuil_stock_alerte'] = $this->object->seuil_stock_alerte;
     if ($action == 'create') {
         // Title
         $this->tpl['title'] = $langs->trans("NewProduct");
     }
     if ($action == 'edit') {
         $this->tpl['title'] = $langs->trans('Modify') . ' ' . $langs->trans('Product') . ' : ' . $this->object->ref;
     }
     if ($action == 'create' || $action == 'edit') {
         // Status
         $statutarray = array('1' => $langs->trans("OnSell"), '0' => $langs->trans("NotOnSell"));
         $this->tpl['status'] = $form->selectarray('statut', $statutarray, $_POST["statut"]);
         $statutarray = array('1' => $langs->trans("ProductStatusOnBuy"), '0' => $langs->trans("ProductStatusNotOnBuy"));
         $this->tpl['status_buy'] = $form->selectarray('statut_buy', $statutarray, $_POST["statut_buy"]);
         // Finished
         $statutarray = array('1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial"));
         $this->tpl['finished'] = $form->selectarray('finished', $statutarray, $this->object->finished);
         // Weight
         $this->tpl['weight'] = $this->object->weight;
         $this->tpl['weight_units'] = $formproduct->load_measuring_units("weight_units", "weight", $this->object->weight_units);
         // Length
         $this->tpl['length'] = $this->object->length;
         $this->tpl['length_units'] = $formproduct->load_measuring_units("length_units", "size", $this->object->length_units);
         // Surface
         $this->tpl['surface'] = $this->object->surface;
         $this->tpl['surface_units'] = $formproduct->load_measuring_units("surface_units", "surface", $this->object->surface_units);
         // Volume
         $this->tpl['volume'] = $this->object->volume;
         $this->tpl['volume_units'] = $formproduct->load_measuring_units("volume_units", "volume", $this->object->volume_units);
     }
     if ($action == 'view') {
         // Status
         $this->tpl['status'] = $this->object->getLibStatut(2, 0);
         $this->tpl['status_buy'] = $this->object->getLibStatut(2, 1);
         // Photo
         $this->tpl['nblignes'] = 4;
         if ($this->object->is_photo_available($conf->product->multidir_output[$this->object->entity])) {
             $this->tpl['photos'] = $this->object->show_photos($conf->product->multidir_output[$this->object->entity], 1, 1, 0, 0, 0, 80);
         }
         // Nature
         $this->tpl['finished'] = $this->object->getLibFinished();
         // Weight
         if ($this->object->weight != '') {
             $this->tpl['weight'] = $this->object->weight . " " . measuring_units_string($this->object->weight_units, "weight");
         }
         // Length
         if ($this->object->length != '') {
             $this->tpl['length'] = $this->object->length . " " . measuring_units_string($this->object->length_units, "size");
         }
         // Surface
         if ($this->object->surface != '') {
             $this->tpl['surface'] = $this->object->surface . " " . measuring_units_string($this->object->surface_units, "surface");
         }
         // Volume
         if ($this->object->volume != '') {
             $this->tpl['volume'] = $this->object->volume . " " . measuring_units_string($this->object->volume_units, "volume");
         }
         $this->tpl['fiche_end'] = dol_get_fiche_end();
     }
     if ($action == 'list') {
         $this->LoadListDatas($GLOBALS['limit'], $GLOBALS['offset'], $GLOBALS['sortfield'], $GLOBALS['sortorder']);
     }
 }
function tabImport(&$TImport, &$expedition)
{
    global $langs, $db;
    $form = new TFormCore();
    $formDoli = new Form($db);
    $formproduct = new FormProduct($db);
    $PDOdb = new TPDOdb();
    print count($TImport) . ' équipement(s) dans votre expédition';
    ?>
	<table width="100%" class="border">
		<tr class="liste_titre">
			<td>Produit</td>
			<td>Numéro de série</td>
			<td>Numéro de Lot</td>
			<td>Quantité</td>
			<td>&nbsp;</td>
		</tr>
		
	<?php 
    $prod = new Product($db);
    $form->Set_typeaff('view');
    if (is_array($TImport)) {
        foreach ($TImport as $k => $line) {
            if ($prod->id == 0 || $line['ref'] != $prod->ref) {
                if (!empty($line['fk_product'])) {
                    $prod->fetch($line['fk_product']);
                } else {
                    $prod->fetch('', $line['ref']);
                }
            }
            $asset = new TAsset();
            $asset->loadBy($PDOdb, $line['numserie'], 'serial_number');
            $asset->load_asset_type($PDOdb);
            $assetLot = new TAssetLot();
            $assetLot->loadBy($PDOdb, $line['lot_number'], 'lot_number');
            $Trowid = TRequeteCore::get_id_from_what_you_want($PDOdb, MAIN_DB_PREFIX . "expeditiondet_asset", array('fk_asset' => $asset->rowid, 'fk_expeditiondet' => $line['fk_expeditiondet']));
            ?>
<tr>
					<td><?php 
            echo $prod->getNomUrl(1) . $form->hidden('TLine[' . $k . '][fk_product]', $prod->id) . $form->hidden('TLine[' . $k . '][ref]', $prod->ref);
            ?>
</td>
					<td><a href="<?php 
            echo dol_buildpath('/asset/fiche.php?id=' . $asset->rowid, 1);
            ?>
"><?php 
            echo $form->texte('', 'TLine[' . $k . '][numserie]', $line['numserie'], 30);
            ?>
</a></td>
					<td><a href="<?php 
            echo dol_buildpath('/asset/fiche_lot.php?id=' . $assetLot->rowid, 1);
            ?>
"><?php 
            echo $form->texte('', 'TLine[' . $k . '][lot_number]', $line['lot_number'], 30);
            ?>
</a></td>
					<td><?php 
            echo $line['quantity'] . " " . ($asset->assetType->measuring_units == 'unit' ? 'unité(s)' : measuring_units_string($line['quantity_unit'], $asset->assetType->measuring_units));
            ?>
</td>
					<td>
						<?php 
            if ($expedition->statut != 1) {
                echo '<a href="?action=DELETE_LINE&k=' . $k . '&id=' . $expedition->id . '&rowid=' . $Trowid[0] . '">' . img_delete() . '</a>';
            }
            ?>
					</td>
				</tr>
				
				<?php 
        }
    }
    ?>
			
		
	</table>
	<br>
	<?php 
}
 // Volume
 print '<tr><td>';
 print $langs->trans("Volume");
 print '</td>';
 print '<td colspan="3">';
 $calculatedVolume = 0;
 if ($object->trueWidth && $object->trueHeight && $object->trueDepth) {
     $calculatedVolume = $object->trueWidth * $object->trueHeight * $object->trueDepth;
 }
 // If sending volume not defined we use sum of products
 if ($calculatedVolume > 0) {
     print $calculatedVolume . ' ';
     if ($volumeUnit < 50) {
         print measuring_units_string(0, "volume");
     } else {
         print measuring_units_string($volumeUnit, "volume");
     }
 }
 if ($totalVolume > 0) {
     if ($calculatedVolume) {
         print ' (' . $langs->trans("SumOfProductVolumes") . ': ';
     }
     print $totalVolume;
     if ($calculatedVolume) {
         print ')';
     }
 }
 print "</td>\n";
 print '</tr>';
 // Status
 print '<tr><td>' . $langs->trans("Status") . '</td>';
 /**
  * 
  * Create a pdf with the labels
  *
  */
 function createPdf()
 {
     global $conf, $mysoc, $db, $langs;
     $langs->load("other");
     require_once DOL_DOCUMENT_ROOT . '/includes/tcpdf/tcpdf.php';
     require_once DOL_DOCUMENT_ROOT . "/product/class/product.class.php";
     require_once DOL_DOCUMENT_ROOT . "/core/lib/product.lib.php";
     $pdf = new TCPDF();
     $pdf->SetFont('dejavusans', '', 10);
     $lab_start = $conf->global->LAB_START;
     if ($conf->global->MAIN_MODULE_LABELPRINT_LABELS_0) {
         $PosY = 5 + floor($lab_start / 3) * 36;
     } else {
         $PosY = 4 + floor($lab_start / 3) * 37;
     }
     //$PosY=3;
     $PosX = 5 + $lab_start % 3 * 70;
     //$PosX=5;
     $Line = 5;
     // define barcode style
     $style = array('position' => '', 'align' => 'C', 'stretch' => false, 'fitwidth' => true, 'cellfitalign' => '', 'border' => false, 'hpadding' => 'auto', 'vpadding' => 'auto', 'fgcolor' => array(0, 0, 0), 'bgcolor' => false, 'text' => true, 'font' => 'helvetica', 'fontsize' => 8, 'stretchtext' => 4);
     //First page
     $pdf->AddPage();
     $sql = "SELECT fk_product, qty, price_level";
     $sql .= " FROM " . MAIN_DB_PREFIX . "labelprint";
     $sql .= " WHERE entity=" . $conf->entity;
     $resql = $db->query($sql);
     if ($resql) {
         $num = $db->num_rows($resql);
         $i = 0;
         while ($i < $num) {
             $objp = $db->fetch_object($resql);
             $product = new Product($db);
             $product->fetch($objp->fk_product);
             $qty = $objp->qty;
             $n = 0;
             while ($n < $qty) {
                 //Position X
                 $PosXLabel = $PosX < 70 ? $PosX : $PosX - 3;
                 //Soc Name
                 $pdf->SetFont('dejavusans', 'B', 10);
                 $pdf->SetXY($PosXLabel, $PosY);
                 $pdf->SetFillColor(230, 230, 230);
                 if ($conf->global->LAB_COMP) {
                     $pdf->MultiCell(65, 5, dol_trunc($mysoc->nom, 25), 0, 'L');
                     $flag = 1;
                 } elseif ($conf->global->LAB_PROD_LABEL) {
                     $pdf->MultiCell(65, 5, dol_trunc($product->libelle, 25), 0, 'L');
                     $flag = 2;
                 } else {
                     $pdf->MultiCell(65, 5, dol_trunc($conf->global->LAB_FREE_TEXT, 25), 0, 'L');
                     $flag = 3;
                 }
                 $pdf->SetFont('dejavusans', '', 10);
                 //Position Y
                 $PosYLabel = $PosY + $Line + 2;
                 //Product label
                 $pdf->SetXY($PosXLabel, $PosYLabel);
                 if ($flag == 1) {
                     if ($conf->global->LAB_PROD_LABEL) {
                         $pdf->Cell(25, 5, dol_trunc($product->libelle, 25), 0, 0, 'L');
                     } else {
                         $pdf->Cell(25, 5, dol_trunc($conf->global->LAB_FREE_TEXT, 25), 0, 0, 'L');
                     }
                 }
                 if ($flag == 2) {
                     $pdf->Cell(25, 5, dol_trunc($conf->global->LAB_FREE_TEXT, 25), 0, 0, 'L');
                 } else {
                     $pdf->Cell(25, 5, "", 0, 0, 'L');
                 }
                 //$pdf->Cell(25,5,dol_trunc($product->libelle,25),0,0,'L');
                 //$pdf->Write($Line,dol_trunc($product->libelle,25));
                 $PosYLabel = $PosYLabel + $Line + 2;
                 $pdf->SetXY($PosXLabel, $PosYLabel);
                 //Barcode
                 if ($conf->barcode->enabled) {
                     $product->fetch_barcode();
                     $pdf->write1DBarcode($product->barcode, $product->barcode_type_code, '', '', 35, 18, 0.4, $style, 'N');
                 }
                 //Price
                 $pdf->SetFont('dejavusans', 'B', 10);
                 if (empty($conf->global->PRODUIT_MULTIPRICES)) {
                     $labelPrice = price($product->price_ttc);
                 } else {
                     $labelPrice = price($product->multiprices_ttc[$objp->price_level]);
                 }
                 $pdf->SetXY($PosXLabel + 38, $PosYLabel);
                 $pdf->Cell(25, 5, $labelPrice, 0, 0, 'R');
                 $PosYLabel = $PosYLabel + $Line + 1;
                 $labelPrice = $langs->trans(currency_name($conf->currency));
                 $pdf->SetXY($PosXLabel + 38, $PosYLabel);
                 $pdf->Cell(25, 5, $labelPrice, 0, 0, 'R');
                 $PosYLabel = $PosYLabel + $Line;
                 if ($conf->global->LAB_WEIGHT) {
                     $labelSet = $product->weight;
                     $labelSet .= " " . measuring_units_string($product->weight_units, "weight");
                 } elseif ($conf->global->LAB_LENGTH) {
                     $labelSet = $product->length;
                     $labelSet .= " " . measuring_units_string($product->length_units, "size");
                 } elseif ($conf->global->LAB_AREA) {
                     $labelSet = $product->surface;
                     $labelSet .= " " . measuring_units_string($product->surface_units, "surface");
                 } elseif ($conf->global->LAB_VOLUME) {
                     $labelSet = $product->volume;
                     $labelSet .= " " . measuring_units_string($product->volume_units, "volume");
                 } elseif ($conf->global->LAB_COUNTRY) {
                     $labelSet = getCountry($product->country_id, '', 0, $langs, 0);
                 }
                 $pdf->SetXY($PosXLabel + 38, $PosYLabel);
                 $pdf->Cell(25, 5, $labelSet, 0, 0, 'R');
                 $pdf->SetAutoPageBreak(false);
                 $PosX = $PosX + 70;
                 if ($PosX >= 200) {
                     $PosX = 5;
                     if ($conf->global->MAIN_MODULE_LABELPRINT_LABELS_0) {
                         $PosY = $PosY + 36;
                     } else {
                         $PosY = $PosY + 37;
                     }
                     if ($PosY >= 265) {
                         if ($conf->global->MAIN_MODULE_LABELPRINT_LABELS_0) {
                             $PosY = 5;
                         } else {
                             $PosY = 4;
                         }
                         $pdf->AddPage();
                     }
                 }
                 $n++;
             }
             $i++;
         }
     }
     ini_set('display_errors', 'Off');
     $buf = $pdf->Output("", "S");
     $len = strlen($buf);
     //$file_temp = ini_get("session.save_path")."/".dol_now().".pdf";
     $file_temp = DOL_DATA_ROOT . "/" . dol_now() . ".pdf";
     $gestor = fopen($file_temp, "w");
     fwrite($gestor, $buf);
     fclose($gestor);
     $url = dol_buildpath("/labelprint/download.php", 1) . "?file=" . $file_temp;
     print "<meta http-equiv='refresh' content='0;url=" . $url . "'>";
 }
<?php

require 'config.php';
dol_include_once('/core/lib/product.lib.php');
$langs->load("other");
llxHeader('', 'Liste des expéditions à préparer', '', '');
$ATMdb = new TPDOdb();
$sql = "SELECT s.rowid as soc_id, s.nom as soc_nom, e.rowid as expe_id, e.ref as expe_ref, c.rowid as comm_id, c.ref as comm_ref, ";
$sql .= "p.rowid as prod_id, CONCAT(p.ref, ' ', p.label) as prod_ref, cd.qty, cd.tarif_poids, cd.poids, cd.asset_lot ";
$sql .= "FROM " . MAIN_DB_PREFIX . "expedition e ";
$sql .= "LEFT JOIN " . MAIN_DB_PREFIX . "expeditiondet ed ON ed.fk_expedition = e.rowid ";
//$sql.= "LEFT JOIN ".MAIN_DB_PREFIX."element_element ee ON ee.fk_target = e.rowid AND ee.targettype = 'shipping' ";
//$sql.= "LEFT JOIN ".MAIN_DB_PREFIX."commande c ON ee.fk_source = c.rowid AND ee.sourcetype = 'commande' ";
$sql .= "LEFT JOIN " . MAIN_DB_PREFIX . "commandedet cd ON ed.fk_origin_line = cd.rowid ";
$sql .= "LEFT JOIN " . MAIN_DB_PREFIX . "commande c ON cd.fk_commande = c.rowid ";
$sql .= "LEFT JOIN " . MAIN_DB_PREFIX . "product p ON cd.fk_product = p.rowid ";
$sql .= "LEFT JOIN " . MAIN_DB_PREFIX . "societe s ON c.fk_soc = s.rowid ";
$sql .= "WHERE e.fk_statut = 0 ";
$sql .= "ORDER BY prod_ref, soc_nom";
$r = new TListviewTBS('expe');
$measuring_units = array(-9 => 1, -6 => 1, -3 => 1, 0 => 1, 3 => 1, 99 => 1, 100 => 1);
foreach ($measuring_units as $key => $value) {
    $TPoids[$key] = measuring_units_string($key, 'weight');
}
echo $r->render($ATMdb, $sql, array('limit' => array('nbLine' => '30'), 'link' => array('soc_nom' => '<a href="' . DOL_URL_ROOT . '/societe/soc.php?socid=@soc_id@">' . img_picto('', 'object_company.png', '', 0) . ' @val@</a>', 'expe_ref' => '<a href="' . DOL_URL_ROOT . '/expedition/fiche.php?id=@expe_id@">' . img_picto('', 'object_sending.png', '', 0) . ' @val@</a>', 'comm_ref' => '<a href="' . DOL_URL_ROOT . '/commande/fiche.php?id=@comm_id@">' . img_picto('', 'object_order.png', '', 0) . ' @val@</a>', 'prod_ref' => '<a href="' . DOL_URL_ROOT . '/product/fiche.php?id=@prod_id@">' . img_picto('', 'object_product.png', '', 0) . ' @val@</a>'), 'translate' => array('poids' => $TPoids), 'hide' => array('soc_id', 'expe_id', 'comm_id', 'prod_id'), 'type' => array('tarif_poids' => 'number', 'qty' => 'number'), 'liste' => array('titre' => 'Liste des expéditions à préparer', 'image' => img_picto('', 'title.png', '', 0), 'picto_precedent' => img_picto('', 'back.png', '', 0), 'picto_suivant' => img_picto('', 'next.png', '', 0), 'noheader' => (int) isset($_REQUEST['fk_soc']) | (int) isset($_REQUEST['fk_product']), 'messageNothing' => "Il n'y a aucunes expédition à afficher", 'picto_search' => img_picto('', 'search.png', '', 0)), 'title' => array('soc_nom' => 'Client', 'expe_ref' => 'Expédition', 'comm_ref' => 'Commande', 'prod_ref' => 'Produit', 'qty' => 'Quantité', 'tarif_poids' => 'Poids', 'asset_lot' => 'Lot')));
llxFooter();
function generateODTOF(&$PDOdb, &$assetOf)
{
    global $db, $conf, $TProductCachegenerateODTOF;
    $TBS = new TTemplateTBS();
    dol_include_once("/product/class/product.class.php");
    $TToMake = array();
    // Tableau envoyé à la fonction render contenant les informations concernant les produit à fabriquer
    $TNeeded = array();
    // Tableau envoyé à la fonction render contenant les informations concernant les produit nécessaires
    $TWorkstations = array();
    // Tableau envoyé à la fonction render contenant les informations concernant les stations de travail
    $TWorkstationUser = array();
    // Tableau de liaison entre les postes et les utilisateurs
    $TWorkstationTask = array();
    // Tableau de liaison entre les postes et les tâches 'mode opératoire'
    $TAssetWorkstation = array();
    // Tableau de liaison entre les composants et les postes de travails
    $TControl = array();
    // Tableau de liaison entre l'OF et les controles associés
    $societe = new Societe($db);
    $societe->fetch($assetOf->fk_soc);
    //pre($societe,true); exit;
    if (!empty($conf->global->ASSET_USE_CONTROL)) {
        $TControl = $assetOf->getControlPDF($PDOdb);
    }
    if (empty($TProductCachegenerateODTOF)) {
        $TProductCachegenerateODTOF = array();
    }
    // On charge les tableaux de produits à fabriquer, et celui des produits nécessaires
    foreach ($assetOf->TAssetOFLine as $k => &$v) {
        if (!isset($TProductCachegenerateODTOF[$v->fk_product])) {
            $prod_cache = new Product($db);
            if ($prod_cache->fetch($v->fk_product) > 0) {
                $prod_cache->fetch_optionals($prod_cache->id);
                $TProductCachegenerateODTOF[$v->fk_product] = $prod_cache;
            }
        } else {
            //echo 'cache '.$v->fk_product.':'.$TProductCachegenerateODTOF[$v->fk_product]->ref.' / '.$TProductCachegenerateODTOF[$v->fk_product]->id.'<br />';
        }
        $prod =& $TProductCachegenerateODTOF[$v->fk_product];
        if ($conf->nomenclature->enabled) {
            $n = new TNomenclature();
            if (!empty($v->fk_nomenclature)) {
                $n->load($PDOdb, $v->fk_nomenclature);
                $TTypesProductsNomenclature = $n->getArrayTypesProducts();
            }
        }
        $qty = !empty($v->qty_needed) ? $v->qty_needed : $v->qty;
        if (!empty($conf->asset->enabled)) {
            $TAssetType = new TAsset_type();
            $TAssetType->load($PDOdb, $prod->array_options['options_type_asset']);
            $unitLabel = $TAssetType->measuring_units == 'unit' || $TAssetType->gestion_stock == 'UNIT' ? 'unité(s)' : measuring_units_string($prod->weight_units, 'weight');
        } else {
            $unitLabel = 'unité(s)';
        }
        if ($v->type == "TO_MAKE") {
            $TToMake[] = array('type' => $v->type, 'qte' => $qty . " " . utf8_decode($unitLabel), 'nomProd' => $prod->ref, 'designation' => utf8_decode($prod->label), 'dateBesoin' => date("d/m/Y", $assetOf->date_besoin), 'lot_number' => $v->lot_number ? "\n(Lot numero " . $v->lot_number . ")" : "", 'code_suivi_ponderal' => $prod->array_options['options_suivi_ponderal'] ? "\n" . $prod->array_options['options_suivi_ponderal'] : "\n(Aucun)");
        } else {
            if ($v->type == "NEEDED") {
                $TNeeded[] = array('type' => $conf->nomenclature->enabled ? $TTypesProductsNomenclature[$v->fk_product] : $v->type, 'qte' => $qty, 'nomProd' => $prod->ref, 'designation' => utf8_decode($prod->label), 'dateBesoin' => date("d/m/Y", $assetOf->date_besoin), 'poids' => $prod->weight ? $prod->weight : 1, 'unitPoids' => utf8_decode($unitLabel), 'finished' => $prod->finished ? "PM" : "MP", 'lot_number' => $v->lot_number ? "\n(Lot numero " . $v->lot_number . ")" : "", 'code_suivi_ponderal' => $prod->array_options['options_suivi_ponderal'] ? "\n(Code suivi ponderal : " . $prod->array_options['options_suivi_ponderal'] . ")" : "");
                if (!empty($conf->global->ASSET_DEFINED_WORKSTATION_BY_NEEDED)) {
                    $TAssetWorkstation[] = array('nomProd' => utf8_decode($prod->label), 'workstations' => utf8_decode($v->getWorkstationsPDF($db)));
                }
            }
        }
    }
    //exit;
    // On charge le tableau d'infos sur les stations de travail de l'OF courant
    foreach ($assetOf->TAssetWorkstationOF as $k => $v) {
        $TWorkstations[] = array('libelle' => utf8_decode($v->ws->libelle), 'nb_hour_max' => utf8_decode($v->ws->nb_hour_capacity), 'nb_hour_real' => utf8_decode($v->nb_hour_real), 'nb_hour_preparation' => utf8_decode($v->nb_hour_prepare), 'nb_heures_prevues' => utf8_decode($v->nb_hour));
        if (!empty($conf->global->ASSET_DEFINED_USER_BY_WORKSTATION)) {
            $TWorkstationUser[] = array('workstation' => utf8_decode($v->ws->libelle), 'users' => utf8_decode($v->getUsersPDF($PDOdb)));
        }
        if (!empty($conf->global->ASSET_DEFINED_OPERATION_BY_WORKSTATION)) {
            $TWorkstationTask[] = array('workstation' => utf8_decode($v->ws->libelle), 'tasks' => utf8_decode($v->getTasksPDF($PDOdb)));
        }
    }
    $dirName = 'OF' . $assetOf->rowid . '(' . date("d_m_Y") . ')';
    $dir = DOL_DATA_ROOT . ($conf->entity > 1 ? '/' . $conf->entity : '') . '/of/' . $dirName . '/';
    @mkdir($dir, 0777, true);
    if (defined('TEMPLATE_OF')) {
        $template = TEMPLATE_OF;
    } else {
        $template = "templateOF.odt";
        //$template = "templateOF.doc";
    }
    $refcmd = '';
    if (!empty($assetOf->fk_commande)) {
        $cmd = new Commande($db);
        $cmd->fetch($assetOf->fk_commande);
        $refcmd = $cmd->ref;
    }
    $barcode_pic = getBarCodePicture($assetOf);
    //var_dump($TToMake);
    $file_path = $TBS->render(dol_buildpath('/of/exempleTemplate/' . $template), array('lignesToMake' => $TToMake, 'lignesNeeded' => $TNeeded, 'lignesWorkstation' => $TWorkstations, 'lignesAssetWorkstations' => $TAssetWorkstation, 'lignesUser' => $TWorkstationUser, 'lignesTask' => $TWorkstationTask, 'lignesControl' => $TControl), array('date' => date("d/m/Y"), 'numeroOF' => $assetOf->numero, 'statutOF' => utf8_decode(TAssetOF::$TStatus[$assetOf->status]), 'prioriteOF' => utf8_decode(TAssetOF::$TOrdre[$assetOf->ordre]), 'date' => date("d/m/Y"), 'refcmd' => $refcmd, 'societe' => $societe->name, 'logo' => DOL_DATA_ROOT . "/mycompany/logos/" . MAIN_INFO_SOCIETE_LOGO, 'barcode' => $barcode_pic, 'use_lot' => (int) $conf->global->ASSET_DEFINED_WORKSTATION_BY_NEEDED, 'defined_user' => (int) $conf->global->ASSET_DEFINED_USER_BY_WORKSTATION, 'defined_task' => (int) $conf->global->ASSET_DEFINED_OPERATION_BY_WORKSTATION, 'use_control' => (int) $conf->global->ASSET_USE_CONTROL), array(), array('outFile' => $dir . $assetOf->numero . ".odt", "convertToPDF" => true));
    return array('file_path' => $file_path, 'dir_name' => $dirName, 'num_of' => $assetOf->numero);
    header("Location: " . DOL_URL_ROOT . "/document.php?modulepart=of&entity=1&file=" . $dirName . "/" . $assetOf->numero . ".pdf");
    //header("Location: ".DOL_URL_ROOT."/document.php?modulepart=asset&entity=1&file=".$dirName."/".$assetOf->numero.".doc");
}
示例#13
0
				// Qte commande
				print '<td align="center">'.$lines[$i]->qty_asked.'</td>';

				// Qte a expedier ou expedier
				print '<td align="center">'.$lines[$i]->qty_shipped.'</td>';

				// Weight
				print '<td align="center">';
				if ($lines[$i]->fk_product_type == 0) print $lines[$i]->weight*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->weight_units,"weight");
				else print '&nbsp;';
				print '</td>';

				// Volume
				print '<td align="center">';
				if ($lines[$i]->fk_product_type == 0) print $lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume");
				else print '&nbsp;';
				print '</td>';

				// Size
				//print '<td align="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>';

				// Entrepot source
				if ($conf->stock->enabled)
				{
					print '<td align="left">';
					if ($lines[$i]->entrepot_id > 0)
					{
						$entrepot = new Entrepot($db);
						$entrepot->fetch($lines[$i]->entrepot_id);
						print $entrepot->getNomUrl(1);
function tabImport(&$TImport, &$commande)
{
    global $langs, $db, $conf;
    $PDOdb = new TPDOdb();
    $form = new TFormCore();
    $formDoli = new Form($db);
    $formproduct = new FormProduct($db);
    if ($commande->statut >= 5 || $commande->statut <= 2) {
        $form->type_aff = "view";
    }
    if ($commande->statut <= 2 || $commande->statut >= 6) {
        print $langs->trans("OrderStatusNotReadyToDispatch");
    }
    _show_product_ventil($TImport, $commande, $form);
    print count($TImport) . ' équipement(s) dans votre réception';
    ?>
	<script type="text/javascript">
		$(document).ready(function() {
			$("#dispatchAsset").change(function() {
				$("#actionVentilation").addClass("error").html("<?php 
    echo $langs->trans('SaveBeforeVentil');
    ?>
");
			});
		});
	</script>
	<table width="100%" class="border" id="dispatchAsset">
		<tr class="liste_titre">
			<td>Produit</td>
			<td>Numéro de Série</td>
			<td>Numéro de Lot</td>
			<td><?php 
    echo $langs->trans('Warehouse');
    ?>
</td>
			<?php 
    if ($conf->global->ASSET_SHOW_DLUO) {
        ?>
				<td>DLUO</td>
			<?php 
    }
    if (empty($conf->global->DISPATCH_USE_ONLY_UNIT_ASSET_RECEPTION)) {
        ?>
			<td>Quantité</td>
			<?php 
        if (!empty($conf->global->DISPATCH_SHOW_UNIT_RECEPTION)) {
            echo '<td>Unité</td>';
        }
    }
    if ($conf->global->clinomadic->enabled) {
        ?>
				<td>IMEI</td>
				<td>Firmware</td>
				<?php 
    }
    ?>
			<td>&nbsp;</td>
		</tr>

	<?php 
    $prod = new Product($db);
    $warning_asset = false;
    if (is_array($TImport)) {
        foreach ($TImport as $k => $line) {
            if ($prod->id == 0 || $line['ref'] != $prod->ref) {
                if (empty($line['fk_product']) === false) {
                    $prod->fetch($line['fk_product']);
                } else {
                    if (empty($line['ref']) === false) {
                        $prod->fetch('', $line['ref']);
                    } else {
                        continue;
                    }
                }
            }
            ?>
<tr>
					<td><?php 
            echo $prod->getNomUrl(1) . $form->hidden('TLine[' . $k . '][fk_product]', $prod->id) . $form->hidden('TLine[' . $k . '][ref]', $prod->ref) . " - " . $prod->label;
            ?>
</td>
					<td><?php 
            echo $form->texte('', 'TLine[' . $k . '][numserie]', $line['numserie'], 30);
            $asset = new TAsset();
            if (empty($line['numserie'])) {
                echo img_picto($langs->trans('SerialNumberNeeded'), 'warning.png');
                $warning_asset = true;
            } else {
                if ($asset->loadReference($PDOdb, $line['numserie'])) {
                    echo '<a href="' . dol_buildpath('/asset/fiche.php?id=' . $asset->getId(), 1) . '">' . img_picto('Equipement lié à cet import', 'info.png') . '</a>';
                } else {
                    echo img_picto('Aucun équipement créé en Base', 'warning.png');
                    $warning_asset = true;
                }
            }
            echo $form->hidden('TLine[' . $k . '][commande_fournisseurdet_asset]', $line['commande_fournisseurdet_asset'], 30);
            ?>
					</td>
					<td><?php 
            echo $form->texte('', 'TLine[' . $k . '][lot_number]', $line['lot_number'], 30);
            ?>
</td>
					<td rel="entrepotChild" fk_product="<?php 
            echo $prod->id;
            ?>
"><?php 
            $formproduct = new FormProduct($db);
            $formproduct->loadWarehouses();
            if (count($formproduct->cache_warehouses) > 1) {
                print $formproduct->selectWarehouses($line['fk_warehouse'], 'TLine[' . $k . '][entrepot]', '', 1, 0, $prod->id, '', 0, 1);
            } elseif (count($formproduct->cache_warehouses) == 1) {
                print $formproduct->selectWarehouses($line['fk_warehouse'], 'TLine[' . $k . '][entrepot]', '', 0, 0, $prod->id, '', 0, 1);
            } else {
                print $langs->trans("NoWarehouseDefined");
            }
            ?>
</td>
					<?php 
            if (!empty($conf->global->ASSET_SHOW_DLUO)) {
                ?>
					<td><?php 
                echo $form->calendrier('', 'TLine[' . $k . '][dluo]', date('d/m/Y', strtotime($line['dluo'])));
                ?>
</td>
					<?php 
            }
            if (empty($conf->global->DISPATCH_USE_ONLY_UNIT_ASSET_RECEPTION)) {
                ?>
						<td><?php 
                echo $form->texte('', 'TLine[' . $k . '][quantity]', $line['quantity'], 10);
                ?>
</td><?php 
                if (!empty($conf->global->DISPATCH_SHOW_UNIT_RECEPTION)) {
                    echo '<td>' . ($commande->statut < 5) ? $formproduct->select_measuring_units('TLine[' . $k . '][quantity_unit]', 'weight', $line['quantity_unit']) : measuring_units_string($line['quantity_unit'], 'weight') . '</td>';
                }
            } else {
                echo $form->hidden('TLine[' . $k . '][quantity]', $line['quantity']);
                echo $form->hidden('TLine[' . $k . '][quantity_unit]', $line['quantity_unit']);
            }
            if ($conf->global->clinomadic->enabled) {
                ?>
						<td><?php 
                echo $form->texte('', 'TLine[' . $k . '][imei]', $line['imei'], 30);
                ?>
</td>
						<td><?php 
                echo $form->texte('', 'TLine[' . $k . '][firmware]', $line['firmware'], 30);
                ?>
</td>
						<?php 
            }
            ?>
					<td>
						<?php 
            if ($commande->statut < 5) {
                echo '<a href="?action=DELETE_LINE&k=' . $k . '&id=' . $commande->id . '&rowid=' . $line['commande_fournisseurdet_asset'] . '">' . img_delete() . '</a>';
            }
            ?>
					</td>
				</tr>
				<?php 
        }
    }
    if ($commande->statut < 5 && $commande->statut > 2) {
        $pListe[0] = "Sélectionnez un produit";
        foreach ($commande->lines as $line) {
            if ($line->fk_product) {
                $pListe[$line->fk_product] = $line->product_ref . " - " . $line->product_label;
            }
        }
        $defaultDLUO = '';
        if ($conf->global->DISPATCH_DLUO_BY_DEFAULT) {
            $defaultDLUO = date('d/m/Y', strtotime(date('Y-m-d') . " " . $conf->global->DISPATCH_DLUO_BY_DEFAULT));
        }
        echo $defaultDLUO;
        ?>
<tr style="background-color: lightblue;">
					<td><?php 
        print $form->combo('', 'new_line_fk_product', $pListe, '');
        ?>
</td>
					<td><?php 
        echo $form->texte('', 'TLine[-1][numserie]', '', 30);
        ?>
</td>
					<td><?php 
        echo $form->texte('', 'TLine[-1][lot_number]', '', 30);
        ?>
</td>
					<td><?php 
        $formproduct = new FormProduct($db);
        $formproduct->loadWarehouses();
        if (count($formproduct->cache_warehouses) > 1) {
            print $formproduct->selectWarehouses('', 'TLine[-1][entrepot]', '', 1, 0, $prod->id, '', 0, 1);
        } elseif (count($formproduct->cache_warehouses) == 1) {
            print $formproduct->selectWarehouses('', 'TLine[-1][entrepot]', '', 0, 0, $prod->id, '', 0, 1);
        } else {
            print $langs->trans("NoWarehouseDefined");
        }
        ?>
</td>
					<?php 
        if (!empty($conf->global->ASSET_SHOW_DLUO)) {
            ?>
						<td><?php 
            echo $form->calendrier('', 'TLine[-1][dluo]', $defaultDLUO);
            ?>
</td>
					<?php 
        }
        if (empty($conf->global->DISPATCH_USE_ONLY_UNIT_ASSET_RECEPTION)) {
            ?>
					<td><?php 
            echo $form->texte('', 'TLine[-1][quantity]', '', 10);
            ?>
</td><?php 
            if (!empty($conf->global->DISPATCH_SHOW_UNIT_RECEPTION)) {
                echo '<td>' . $formproduct->select_measuring_units('TLine[-1][quantity_unit]', 'weight') . '</td>';
            }
        }
        if ($conf->global->clinomadic->enabled) {
            ?>
						<td><?php 
            echo $form->texte('', 'TLine[-1][imei]', '', 30);
            ?>
</td>
						<td><?php 
            echo $form->texte('', 'TLine[-1][firmware]', '', 30);
            ?>
</td>
						<?php 
        }
        ?>
					<td>Nouveau
					</td>
				</tr>
			<?php 
    }
    ?>


	</table>
	<?php 
    if ($commande->statut < 5 || $warning_asset) {
        if ($commande->statut < 5) {
            echo '<div class="tabsAction">' . $form->btsubmit('Enregistrer', 'bt_save') . '</div>';
        }
        $form->type_aff = 'edit';
        ?>
		<hr />
		<?php 
        echo '<div id="actionVentilation">';
        echo 'Date de réception : ' . $form->calendrier('', 'date_recep', time());
        echo ' - ' . $langs->trans("Comment") . ' : ' . $form->texte('', 'comment', $_POST["comment"] ? GETPOST("comment") : $langs->trans("DispatchSupplierOrder", $commande->ref), 60, 128);
        echo ' ' . $form->btsubmit($langs->trans('AssetVentil'), 'bt_create');
        echo '</div>';
    }
}
示例#15
0
 /**
  *  Return a combo box with list of units
  *  For the moment, units labels are defined in measuring_units_string
  *
  *  @param	string		$name                Name of HTML field
  *  @param  string		$measuring_style     Unit to show: weight, size, surface, volume
  *  @param  string		$default             Force unit
  * 	@param	int			$adddefault			Add empty unit called "Default"
  * 	@return	void
  */
 function load_measuring_units($name = 'measuring_units', $measuring_style = '', $default = '0', $adddefault = 0)
 {
     global $langs, $conf, $mysoc;
     $langs->load("other");
     $return = '';
     $measuring_units = array();
     if ($measuring_style == 'weight') {
         $measuring_units = array(-6 => 1, -3 => 1, 0 => 1, 3 => 1, 99 => 1);
     } else {
         if ($measuring_style == 'size') {
             $measuring_units = array(-3 => 1, -2 => 1, -1 => 1, 0 => 1, 98 => 1, 99 => 1);
         } else {
             if ($measuring_style == 'surface') {
                 $measuring_units = array(-6 => 1, -4 => 1, -2 => 1, 0 => 1, 98 => 1, 99 => 1);
             } else {
                 if ($measuring_style == 'volume') {
                     $measuring_units = array(-9 => 1, -6 => 1, -3 => 1, 0 => 1, 88 => 1, 89 => 1, 97 => 1, 99 => 1);
                 }
             }
         }
     }
     // Liter is not used as already available with dm3
     $return .= '<select class="flat" name="' . $name . '">';
     if ($adddefault) {
         $return .= '<option value="0">' . $langs->trans("Default") . '</option>';
     }
     foreach ($measuring_units as $key => $value) {
         $return .= '<option value="' . $key . '"';
         if ($key == $default) {
             $return .= ' selected="selected"';
         }
         //$return.= '>'.$value.'</option>';
         $return .= '>' . measuring_units_string($key, $measuring_style) . '</option>';
     }
     $return .= '</select>';
     return $return;
 }
	/**
	 *    \brief      Assigne les valeurs pour les templates
	 *    \param      object     object
	 */
	function assign_values($action='')
	{
		global $conf,$langs;
		global $html;
		global $formproduct;

		parent::assign_values($action);

		// Stock alert
		$this->tpl['seuil_stock_alerte'] = $this->seuil_stock_alerte;

		if ($action == 'create')
		{
			// Title
			$this->tpl['title'] = load_fiche_titre($langs->trans("NewProduct"));
		}

		if ($action == 'edit')
		{
			$this->tpl['title'] = load_fiche_titre($langs->trans('Modify').' '.$langs->trans('Product').' : '.$this->ref, "");
		}

		if ($action == 'create' || $action == 'edit')
		{
			// Finished
			$statutarray=array('1' => $langs->trans("Finished"), '0' => $langs->trans("RowMaterial"));
			$this->tpl['finished'] = $html->selectarray('finished',$statutarray,$this->finished);

			// Weight
			$this->tpl['weight'] = $this->weight;
			$this->tpl['weight_units'] = $formproduct->load_measuring_units("weight_units","weight",$this->weight_units);

			// Length
			$this->tpl['length'] = $this->length;
			$this->tpl['length_units'] = $formproduct->load_measuring_units("length_units","size",$this->length_units);

			// Surface
			$this->tpl['surface'] = $this->surface;
			$this->tpl['surface_units'] = $formproduct->load_measuring_units("surface_units","surface",$this->surface_units);

			// Volume
			$this->tpl['volume'] = $this->volume;
			$this->tpl['volume_units'] = $formproduct->load_measuring_units("volume_units","volume",$this->volume_units);
		}

		if ($action == 'view')
		{
			// Photo
			$this->tpl['nblignes'] = 4;
			if ($this->is_photo_available($conf->product->dir_output))
			{
				$this->tpl['photos'] = $this->show_photos($conf->product->dir_output,1,1,0,0,0,80);
			}

			// Nature
			$this->tpl['finished'] = $this->getLibFinished();

			// Weight
			if ($this->weight != '')
			{
				$this->tpl['weight'] = $this->weight." ".measuring_units_string($this->weight_units,"weight");
			}

			// Length
			if ($this->length != '')
			{
				$this->tpl['length'] = $this->length." ".measuring_units_string($this->length_units,"size");
			}

			// Surface
			if ($this->surface != '')
			{
				$this->tpl['surface'] = $this->surface." ".measuring_units_string($this->surface_units,"surface");
			}

			// Volume
			if ($this->volume != '')
			{
				$this->tpl['volume'] = $this->volume." ".measuring_units_string($this->volume_units,"volume");
			}
		}
	}
示例#17
0
 // Qte commande
 print '<td align="center">' . $lines[$i]->qty_asked . '</td>';
 // Qte a expedier ou expedier
 print '<td align="center">' . $lines[$i]->qty_shipped . '</td>';
 // Weight
 print '<td align="center">';
 if ($lines[$i]->fk_product_type == 0) {
     print $lines[$i]->weight * $lines[$i]->qty_shipped . ' ' . measuring_units_string($lines[$i]->weight_units, "weight");
 } else {
     print '&nbsp;';
 }
 print '</td>';
 // Volume
 print '<td align="center">';
 if ($lines[$i]->fk_product_type == 0) {
     print $lines[$i]->volume * $lines[$i]->qty_shipped . ' ' . measuring_units_string($lines[$i]->volume_units, "volume");
 } else {
     print '&nbsp;';
 }
 print '</td>';
 // Size
 //print '<td align="center">'.$lines[$i]->volume*$lines[$i]->qty_shipped.' '.measuring_units_string($lines[$i]->volume_units,"volume").'</td>';
 // Entrepot source
 if (!empty($conf->stock->enabled)) {
     print '<td align="left">';
     if ($lines[$i]->entrepot_id > 0) {
         $entrepot = new Entrepot($db);
         $entrepot->fetch($lines[$i]->entrepot_id);
         print $entrepot->getNomUrl(1);
     } else {
         if (count($lines[$i]->details_entrepot) > 1) {
 function libUnite()
 {
     dol_include_once('/core/lib/product.lib.php');
     return measuring_units_string($this->conditionnement_unit, $this->measuring_units);
 }