replace html code by html5

This commit is contained in:
Frédéric FRANCE 2019-02-24 11:18:55 +01:00
parent e7706192b5
commit a1d2d3bddc
No known key found for this signature in database
GPG Key ID: 06809324E4B2ABC1
17 changed files with 565 additions and 473 deletions

View File

@ -1641,7 +1641,7 @@ else
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
print $langs->trans("BarcodeType");
print '</td>';
if (($action != 'editbarcodetype') && $usercancreate && $createbarcode) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbarcodetype&amp;id='.$object->id.'">'.img_edit($langs->trans('Edit'), 1).'</a></td>';
if (($action != 'editbarcodetype') && $usercancreate && $createbarcode) print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbarcodetype&amp;id='.$object->id.'">'.img_edit($langs->trans('Edit'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editbarcodetype' || $action == 'editbarcode')
@ -1665,7 +1665,7 @@ else
print '<table width="100%" class="nobordernopadding"><tr><td class="nowrap">';
print $langs->trans("BarcodeValue");
print '</td>';
if (($action != 'editbarcode') && $usercancreate && $createbarcode) print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbarcode&amp;id='.$object->id.'">'.img_edit($langs->trans('Edit'), 1).'</a></td>';
if (($action != 'editbarcode') && $usercancreate && $createbarcode) print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=editbarcode&amp;id='.$object->id.'">'.img_edit($langs->trans('Edit'), 1).'</a></td>';
print '</tr></table>';
print '</td><td colspan="2">';
if ($action == 'editbarcode')
@ -1934,7 +1934,7 @@ else
// Categories
if($conf->categorie->enabled) {
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td colspan="3">';
print '<tr><td class="valignmiddle">'.$langs->trans("Categories").'</td><td colspan="3">';
print $form->showCategories($object->id, 'product', 1);
print "</td></tr>";
}

View File

@ -8,6 +8,7 @@
* Copyright (C) 2014 Ion Agorria <ion@agorria.com>
* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2016 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -765,20 +766,20 @@ SCRIPT;
print_liste_field_titre("Suppliers", $_SERVER["PHP_SELF"], "s.nom", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("SupplierRef", $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
if (!empty($conf->global->FOURN_PRODUCT_AVAILABILITY)) print_liste_field_titre("Availability", $_SERVER["PHP_SELF"], "pfp.fk_availability", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("QtyMin", $_SERVER["PHP_SELF"], "pfp.quantity", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], '', '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("PriceQtyMinHT", $_SERVER["PHP_SELF"], '', '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("QtyMin", $_SERVER["PHP_SELF"], "pfp.quantity", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("PriceQtyMinHT", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
if ($conf->multicurrency->enabled) {
print_liste_field_titre("PriceQtyMinHTCurrency", $_SERVER["PHP_SELF"], '', '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("PriceQtyMinHTCurrency", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
}
print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "pfp.unitprice", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "pfp.unitprice", "", $param, '', $sortfield, $sortorder, 'right ');
if ($conf->multicurrency->enabled) {
print_liste_field_titre("UnitPriceHTCurrency", $_SERVER["PHP_SELF"], "pfp.multicurrency_unitprice", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Currency", $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("UnitPriceHTCurrency", $_SERVER["PHP_SELF"], "pfp.multicurrency_unitprice", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Currency", $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
print_liste_field_titre("DiscountQtyMin", $_SERVER["PHP_SELF"], '', '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("NbDaysToDelivery", $_SERVER["PHP_SELF"], "pfp.delivery_time_days", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("ReputationForThisProduct", $_SERVER["PHP_SELF"], "pfp.supplier_reputation", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre("DiscountQtyMin", $_SERVER["PHP_SELF"], '', '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("NbDaysToDelivery", $_SERVER["PHP_SELF"], "pfp.delivery_time_days", "", $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("ReputationForThisProduct", $_SERVER["PHP_SELF"], "pfp.supplier_reputation", "", $param, '', $sortfield, $sortorder, 'center ');
print_liste_field_titre('');
print "</tr>\n";
@ -798,11 +799,11 @@ SCRIPT;
// Supplier ref
if ($user->rights->produit->creer || $user->rights->service->creer) // change required right here
{
print '<td align="left">'.$productfourn->getNomUrl().'</td>';
print '<td class="left">'.$productfourn->getNomUrl().'</td>';
}
else
{
print '<td align="left">'.$productfourn->fourn_ref.'</td>';
print '<td class="left">'.$productfourn->fourn_ref.'</td>';
}
// Availability
@ -814,57 +815,57 @@ SCRIPT;
}
// Quantity
print '<td align="right">';
print '<td class="right">';
print $productfourn->fourn_qty;
print '</td>';
// VAT rate
print '<td align="right">';
print '<td class="right">';
print vatrate($productfourn->fourn_tva_tx, true);
print '</td>';
// Price for the quantity
print '<td align="right">';
print '<td class="right">';
print $productfourn->fourn_price?price($productfourn->fourn_price):"";
print '</td>';
if ($conf->multicurrency->enabled) {
// Price for the quantity in currency
print '<td align="right">';
print '<td class="right">';
print $productfourn->fourn_multicurrency_price ? price($productfourn->fourn_multicurrency_price) : "";
print '</td>';
}
// Unit price
print '<td align="right">';
print '<td class="right">';
print price($productfourn->fourn_unitprice);
//print $objp->unitprice? price($objp->unitprice) : ($objp->quantity?price($objp->price/$objp->quantity):"&nbsp;");
print '</td>';
if ($conf->multicurrency->enabled) {
// Unit price in currency
print '<td align="right">';
print '<td class="right">';
print price($productfourn->fourn_multicurrency_unitprice);
print '</td>';
// Currency
print '<td align="right">';
print '<td class="right">';
print $productfourn->fourn_multicurrency_code ? currency_name($productfourn->fourn_multicurrency_code) : '';
print '</td>';
}
// Discount
print '<td align="right">';
print '<td class="right">';
print price2num($productfourn->fourn_remise_percent).'%';
print '</td>';
// Delivery delay
print '<td align="right">';
print '<td class="right">';
print $productfourn->delivery_time_days;
print '</td>';
// Reputation
print '<td align="center">';
print '<td class="center">';
if (!empty($productfourn->supplier_reputation) && !empty($object->reputations[$productfourn->supplier_reputation])) {
print $object->reputations[$productfourn->supplier_reputation];
}

View File

@ -4,7 +4,8 @@
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2014-2016 Charlie BENKE <charlie@patas-monkey.com>
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2019 Pierre Ardoin <mapiolca@me.com>
* Copyright (C) 2019 Pierre Ardoin <mapiolca@me.com>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -21,7 +22,7 @@
*/
/**
* \file htdocs/product/index.php
* \file htdocs/product/index.php
* \ingroup product
* \brief Homepage products and services
*/
@ -142,31 +143,31 @@ print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</
if (! empty($conf->product->enabled))
{
$statProducts = '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ProductsNotOnSell").'</a></td><td align="right">'.round($prodser[0][0]).'</td>';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ProductsNotOnSell").'</a></td><td class="right">'.round($prodser[0][0]).'</td>';
$statProducts.= "</tr>";
$statProducts.= '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0">'.$langs->trans("ProductsOnSaleOnly").'</a></td><td align="right">'.round($prodser[0][1]).'</td>';
$statProducts.= '<td><a href="list.php?type=0">'.$langs->trans("ProductsOnSaleOnly").'</a></td><td class="right">'.round($prodser[0][1]).'</td>';
$statProducts.= "</tr>";
$statProducts.= '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0">'.$langs->trans("ProductsOnPurchaseOnly").'</a></td><td align="right">'.round($prodser[0][2]).'</td>';
$statProducts.= '<td><a href="list.php?type=0">'.$langs->trans("ProductsOnPurchaseOnly").'</a></td><td class="right">'.round($prodser[0][2]).'</td>';
$statProducts.= "</tr>";
$statProducts.= '<tr class="oddeven">';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ProductsOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[0][3]).'</td>';
$statProducts.= '<td><a href="list.php?type=0&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ProductsOnSellAndOnBuy").'</a></td><td class="right">'.round($prodser[0][3]).'</td>';
$statProducts.= "</tr>";
}
if (! empty($conf->service->enabled))
{
$statServices = '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ServicesNotOnSell").'</a></td><td align="right">'.round($prodser[1][0]).'</td>';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=0&amp;tobuy=0">'.$langs->trans("ServicesNotOnSell").'</a></td><td class="right">'.round($prodser[1][0]).'</td>';
$statServices.= "</tr>";
$statServices.= '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1">'.$langs->trans("ServicesOnSaleOnly").'</a></td><td align="right">'.round($prodser[1][1]).'</td>';
$statServices.= '<td><a href="list.php?type=1">'.$langs->trans("ServicesOnSaleOnly").'</a></td><td class="right">'.round($prodser[1][1]).'</td>';
$statServices.= "</tr>";
$statServices.= '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1">'.$langs->trans("ServicesOnPurchaseOnly").'</a></td><td align="right">'.round($prodser[1][2]).'</td>';
$statServices.= '<td><a href="list.php?type=1">'.$langs->trans("ServicesOnPurchaseOnly").'</a></td><td class="right">'.round($prodser[1][2]).'</td>';
$statServices.= "</tr>";
$statServices.= '<tr class="oddeven">';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ServicesOnSellAndOnBuy").'</a></td><td align="right">'.round($prodser[1][3]).'</td>';
$statServices.= '<td><a href="list.php?type=1&amp;tosell=1&amp;tobuy=1">'.$langs->trans("ServicesOnSellAndOnBuy").'</a></td><td class="right">'.round($prodser[1][3]).'</td>';
$statServices.= "</tr>";
}
$total=0;
@ -185,7 +186,7 @@ else
print $statProducts.$statServices;
$total=round($prodser[0][0])+round($prodser[0][1])+round($prodser[0][2])+round($prodser[0][3])+round($prodser[1][0])+round($prodser[1][1])+round($prodser[1][2])+round($prodser[1][3]); //Calcul du Total des Produits et Services
}
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td align="right">';
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td class="right">';
print $total;
print '</td></tr>';
print '</table>';
@ -198,7 +199,7 @@ if (! empty($conf->categorie->enabled) && ! empty($conf->global->CATEGORY_GRAPHS
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Categories").'</th></tr>';
print '<tr '.$bc[0].'><td align="center" colspan="2">';
print '<tr '.$bc[0].'><td class="center" colspan="2">';
$sql = "SELECT c.label, count(*) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."categorie_product as cs";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cs.fk_categorie = c.rowid";
@ -258,7 +259,7 @@ if (! empty($conf->categorie->enabled) && ! empty($conf->global->CATEGORY_GRAPHS
}
}
print '</td></tr>';
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td align="right">';
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td class="right">';
print $total;
print '</td></tr>';
print '</table>';
@ -356,15 +357,15 @@ if ($result)
$objp->price = $price_result;
}
}
print '<td align="right">';
print '<td class="right">';
if (isset($objp->price_base_type) && $objp->price_base_type == 'TTC') print price($objp->price_ttc).' '.$langs->trans("TTC");
else print price($objp->price).' '.$langs->trans("HT");
print '</td>';
}
print '<td align="right" class="nowrap"><span class="statusrefsell">';
print '<td class="right nowrap"><span class="statusrefsell">';
print $product_static->LibStatut($objp->tosell, 3, 0);
print "</span></td>";
print '<td align="right" class="nowrap"><span class="statusrefbuy">';
print '<td class="right nowrap"><span class="statusrefbuy">';
print $product_static->LibStatut($objp->tobuy, 3, 1);
print "</span></td>";
print "</tr>\n";
@ -444,14 +445,14 @@ function activitytrim($product_type)
print '<table class="noborder" width="75%">';
if ($product_type==0)
print '<tr class="liste_titre"><td align=left>'.$langs->trans("ProductSellByQuarterHT").'</td>';
print '<tr class="liste_titre"><td class=left>'.$langs->trans("ProductSellByQuarterHT").'</td>';
else
print '<tr class="liste_titre"><td align=left>'.$langs->trans("ServiceSellByQuarterHT").'</td>';
print '<td align=right>'.$langs->trans("Quarter1").'</td>';
print '<td align=right>'.$langs->trans("Quarter2").'</td>';
print '<td align=right>'.$langs->trans("Quarter3").'</td>';
print '<td align=right>'.$langs->trans("Quarter4").'</td>';
print '<td align=right>'.$langs->trans("Total").'</td>';
print '<tr class="liste_titre"><td class=left>'.$langs->trans("ServiceSellByQuarterHT").'</td>';
print '<td class=right>'.$langs->trans("Quarter1").'</td>';
print '<td class=right>'.$langs->trans("Quarter2").'</td>';
print '<td class=right>'.$langs->trans("Quarter3").'</td>';
print '<td class=right>'.$langs->trans("Quarter4").'</td>';
print '<td class=right>'.$langs->trans("Total").'</td>';
print '</tr>';
}
$i = 0;
@ -463,12 +464,12 @@ function activitytrim($product_type)
{
if ($trim1+$trim2+$trim3+$trim4 > 0)
{
print '<tr class="oddeven"><td align=left>'.$tmpyear.'</td>';
print '<td align=right>'.price($trim1).'</td>';
print '<td align=right>'.price($trim2).'</td>';
print '<td align=right>'.price($trim3).'</td>';
print '<td align=right>'.price($trim4).'</td>';
print '<td align=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '<tr class="oddeven"><td class=left>'.$tmpyear.'</td>';
print '<td class=right>'.price($trim1).'</td>';
print '<td class=right>'.price($trim2).'</td>';
print '<td class=right>'.price($trim3).'</td>';
print '<td class=right>'.price($trim4).'</td>';
print '<td class=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '</tr>';
$lgn++;
}
@ -496,12 +497,12 @@ function activitytrim($product_type)
}
if ($trim1+$trim2+$trim3+$trim4 > 0)
{
print '<tr class="oddeven"><td align=left>'.$tmpyear.'</td>';
print '<td align=right>'.price($trim1).'</td>';
print '<td align=right>'.price($trim2).'</td>';
print '<td align=right>'.price($trim3).'</td>';
print '<td align=right>'.price($trim4).'</td>';
print '<td align=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '<tr class="oddeven"><td class=left>'.$tmpyear.'</td>';
print '<td class=right>'.price($trim1).'</td>';
print '<td class=right>'.price($trim2).'</td>';
print '<td class=right>'.price($trim3).'</td>';
print '<td class=right>'.price($trim4).'</td>';
print '<td class=right>'.price($trim1+$trim2+$trim3+$trim4).'</td>';
print '</tr>';
}
if ($num > 0 )

View File

@ -514,26 +514,26 @@ if ($resql)
print '<tr class="liste_titre_filter">';
if (! empty($arrayfields['p.ref']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" name="search_ref" size="8" value="'.dol_escape_htmltag($search_ref).'">';
print '</td>';
}
if (! empty($arrayfields['pfp.ref_fourn']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" name="search_ref_supplier" size="8" value="'.dol_escape_htmltag($search_ref_supplier).'">';
print '</td>';
}
if (! empty($arrayfields['p.label']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" name="search_label" size="12" value="'.dol_escape_htmltag($search_label).'">';
print '</td>';
}
// Type
if (! empty($arrayfields['p.fk_product_type']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
$array=array('-1'=>'&nbsp;', '0'=>$langs->trans('Product'), '1'=>$langs->trans('Service'));
print $form->selectarray('search_type', $array, $search_type);
print '</td>';
@ -555,7 +555,7 @@ if ($resql)
// Sell price
if (! empty($arrayfields['p.sellprice']['checked']))
{
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print '</td>';
}
// Minimum buying Price
@ -623,17 +623,17 @@ if ($resql)
}
if (! empty($arrayfields['p.tosell']['checked']))
{
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print $form->selectarray('search_tosell', array('0'=>$langs->trans('ProductStatusNotOnSellShort'),'1'=>$langs->trans('ProductStatusOnSellShort')), $search_tosell, 1);
print '</td >';
}
if (! empty($arrayfields['p.tobuy']['checked']))
{
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print $form->selectarray('search_tobuy', array('0'=>$langs->trans('ProductStatusNotOnBuyShort'),'1'=>$langs->trans('ProductStatusOnBuyShort')), $search_tobuy, 1);
print '</td>';
}
print '<td class="liste_titre" align="middle">';
print '<td class="liste_titre center">';
$searchpicto=$form->showFilterButtons();
print $searchpicto;
print '</td>';
@ -641,39 +641,81 @@ if ($resql)
print '</tr>';
print '<tr class="liste_titre">';
if (! empty($arrayfields['p.ref']['checked'])) print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], "p.ref", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['pfp.ref_fourn']['checked'])) print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"], "pfp.ref_fourn", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['p.label']['checked'])) print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], "p.label", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['p.fk_product_type']['checked'])) print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"], "p.fk_product_type", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['p.barcode']['checked'])) print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"], "p.barcode", "", $param, "", $sortfield, $sortorder);
if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked'])) print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"], "p.duration", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['p.sellprice']['checked'])) print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.minbuyprice']['checked'])) print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.numbuyprice']['checked'])) print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.pmp']['checked'])) print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.seuil_stock_alerte']['checked'])) print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"], "p.seuil_stock_alerte", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.desiredstock']['checked'])) print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"], "p.desiredstock", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.stock']['checked'])) print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"], "p.stock", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['stock_virtual']['checked'])) print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"], "", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.tobatch']['checked'])) print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"], "p.tobatch", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['p.accountancy_code_sell']['checked'])) print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"], "p.accountancy_code_sell", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['p.accountancy_code_buy']['checked'])) print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"], "p.accountancy_code_buy", "", $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['p.ref']['checked'])) {
print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], "p.ref", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['pfp.ref_fourn']['checked'])) {
print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"], "pfp.ref_fourn", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['p.label']['checked'])) {
print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], "p.label", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['p.fk_product_type']['checked'])) {
print_liste_field_titre($arrayfields['p.fk_product_type']['label'], $_SERVER["PHP_SELF"], "p.fk_product_type", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['p.barcode']['checked'])) {
print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"], "p.barcode", "", $param, "", $sortfield, $sortorder);
}
if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked'])) {
print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"], "p.duration", "", $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['p.sellprice']['checked'])) {
print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.minbuyprice']['checked'])) {
print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.numbuyprice']['checked'])) {
print_liste_field_titre($arrayfields['p.numbuyprice']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.pmp']['checked'])) {
print_liste_field_titre($arrayfields['p.pmp']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.seuil_stock_alerte']['checked'])) {
print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"], "p.seuil_stock_alerte", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.desiredstock']['checked'])) {
print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"], "p.desiredstock", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.stock']['checked'])) {
print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"], "p.stock", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['stock_virtual']['checked'])) {
print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"], "", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.tobatch']['checked'])) {
print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"], "p.tobatch", "", $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['p.accountancy_code_sell']['checked'])) {
print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"], "p.accountancy_code_sell", "", $param, '', $sortfield, $sortorder);
}
if (! empty($arrayfields['p.accountancy_code_buy']['checked'])) {
print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"], "p.accountancy_code_buy", "", $param, '', $sortfield, $sortorder);
}
// Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
// Hook fields
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['p.datec']['checked'])) print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['p.tms']['checked'])) print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['p.tosell']['checked'])) print_liste_field_titre($arrayfields['p.tosell']['label'], $_SERVER["PHP_SELF"], "p.tosell", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['p.tobuy']['checked'])) print_liste_field_titre($arrayfields['p.tobuy']['label'], $_SERVER["PHP_SELF"], "p.tobuy", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
print "</tr>\n";
if (! empty($arrayfields['p.datec']['checked'])) {
print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
if (! empty($arrayfields['p.tms']['checked'])) {
print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
if (! empty($arrayfields['p.tosell']['checked'])) {
print_liste_field_titre($arrayfields['p.tosell']['label'], $_SERVER["PHP_SELF"], "p.tosell", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['p.tobuy']['checked'])) {
print_liste_field_titre($arrayfields['p.tobuy']['label'], $_SERVER["PHP_SELF"], "p.tobuy", "", $param, '', $sortfield, $sortorder, 'right ');
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print "</tr>\n";
$product_static=new Product($db);
$product_fourn =new ProductFournisseur($db);
$product_static = new Product($db);
$product_fourn = new ProductFournisseur($db);
$i = 0;
$totalarray=array();
@ -776,7 +818,7 @@ if ($resql)
// Duration
if ((string) $type == '1' && ! empty($arrayfields['p.duration']['checked']))
{
print '<td align="center">';
print '<td class="center">';
if (preg_match('/([^a-z]+)[a-z]$/i', $obj->duration))
{
@ -842,7 +884,7 @@ if ($resql)
// Number of buy prices
if (! empty($arrayfields['p.numbuyprice']['checked']))
{
print '<td align="right">';
print '<td class="right">';
if ($obj->tobuy)
{
if (count($productFournList = $product_fourn->list_product_fournisseur_price($obj->rowid)) > 0)
@ -857,7 +899,7 @@ if ($resql)
// WAP
if (! empty($arrayfields['p.pmp']['checked']))
{
print '<td class="nowrap" align="right">';
print '<td class="nowrap right">';
print price($product_static->pmp, 1, $langs);
print '</td>';
}
@ -865,7 +907,7 @@ if ($resql)
// Limit alert
if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))
{
print '<td align="right">';
print '<td class="right">';
if ($obj->fk_product_type != 1)
{
print $obj->seuil_stock_alerte;
@ -876,7 +918,7 @@ if ($resql)
// Desired stock
if (! empty($arrayfields['p.desiredstock']['checked']))
{
print '<td align="right">';
print '<td class="right">';
if ($obj->fk_product_type != 1)
{
print $obj->desiredstock;
@ -887,7 +929,7 @@ if ($resql)
// Stock real
if (! empty($arrayfields['p.stock']['checked']))
{
print '<td align="right">';
print '<td class="right">';
if ($obj->fk_product_type != 1)
{
if ($obj->seuil_stock_alerte != '' && $product_static->stock_reel < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
@ -899,7 +941,7 @@ if ($resql)
// Stock virtual
if (! empty($arrayfields['stock_virtual']['checked']))
{
print '<td align="right">';
print '<td class="right">';
if ($obj->fk_product_type != 1)
{
if ($obj->seuil_stock_alerte != '' && $product_static->stock_theorique < (float) $obj->seuil_stock_alerte) print img_warning($langs->trans("StockLowerThanLimit", $obj->seuil_stock_alerte)).' ';
@ -911,7 +953,7 @@ if ($resql)
// Lot/Serial
if (! empty($arrayfields['p.tobatch']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print yn($obj->tobatch);
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -937,7 +979,7 @@ if ($resql)
// Date creation
if (! empty($arrayfields['p.datec']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print dol_print_date($obj->date_creation, 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -945,7 +987,7 @@ if ($resql)
// Date modification
if (! empty($arrayfields['p.tms']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print dol_print_date($obj->date_update, 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -954,7 +996,7 @@ if ($resql)
// Status (to sell)
if (! empty($arrayfields['p.tosell']['checked']))
{
print '<td align="right" nowrap="nowrap">';
print '<td class="right nowrap">';
if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
print ajax_object_onoff($product_static, 'status', 'tosell', 'ProductStatusOnSell', 'ProductStatusNotOnSell');
} else {
@ -966,7 +1008,7 @@ if ($resql)
// Status (to buy)
if (! empty($arrayfields['p.tobuy']['checked']))
{
print '<td align="right" nowrap="nowrap">';
print '<td class="right nowrap">';
if (! empty($conf->use_javascript_ajax) && $user->rights->produit->creer && ! empty($conf->global->MAIN_DIRECT_STATUS_UPDATE)) {
print ajax_object_onoff($product_static, 'status_buy', 'tobuy', 'ProductStatusOnBuy', 'ProductStatusNotOnBuy');
} else {
@ -976,7 +1018,7 @@ if ($resql)
if (! $i) $totalarray['nbfield']++;
}
// Action
print '<td class="nowrap" align="center">';
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;

View File

@ -163,7 +163,7 @@ print "<tr class=\"liste_titre\">";
print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
print_liste_field_titre('Type', $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder);
print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
print_liste_field_titre('NbOfQtyInProposals', $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre('NbOfQtyInProposals', $_SERVER["PHP_SELF"], 'c', '', $param, '', $sortfield, $sortorder, 'right ');
print "</tr>\n";
foreach($infoprod as $prodid => $vals)
@ -196,7 +196,7 @@ foreach($infoprod as $prodid => $vals)
else print $langs->trans("Product");
print '</td>';
print '<td>'.$vals['label'].'</td>';
print '<td align="right">'.$vals['nblineproposal'].'</td>';
print '<td class="right">'.$vals['nblineproposal'].'</td>';
print "</tr>\n";
$i++;
}

View File

@ -893,9 +893,9 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUI
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("PriceByQuantityRange") . ' ' . $i . '</td>';
print '<td align="right">' . $langs->trans("HT") . '</td>';
print '<td align="right">' . $langs->trans("UnitPrice") . '</td>';
print '<td align="right">' . $langs->trans("Discount") . '</td>';
print '<td class="right">' . $langs->trans("HT") . '</td>';
print '<td class="right">' . $langs->trans("UnitPrice") . '</td>';
print '<td class="right">' . $langs->trans("Discount") . '</td>';
print '<td>&nbsp;</td>';
print '</tr>';
foreach ($object->prices_by_qty_list[$i] as $ii => $prices)
@ -907,18 +907,18 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUI
print '<input type="hidden" value="' . $prices['rowid'] . '" name="rowid">';
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td><input size="5" type="text" value="' . $prices['quantity'] . '" name="quantity"></td>';
print '<td align="right" colspan="2"><input size="10" type="text" value="' . price2num($prices['price'], 'MU') . '" name="price">&nbsp;' . $object->price_base_type . '</td>';
print '<td align="right"><input size="5" type="text" value="' . $prices['remise_percent'] . '" name="remise_percent">&nbsp;%</td>';
print '<td align="center"><input type="submit" value="' . $langs->trans("Modify") . '" class="button"></td>';
print '<td class="right" colspan="2"><input size="10" type="text" value="' . price2num($prices['price'], 'MU') . '" name="price">&nbsp;' . $object->price_base_type . '</td>';
print '<td class="right"><input size="5" type="text" value="' . $prices['remise_percent'] . '" name="remise_percent">&nbsp;%</td>';
print '<td class="center"><input type="submit" value="' . $langs->trans("Modify") . '" class="button"></td>';
print '</tr>';
print '</form>';
} else {
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td>' . $prices['quantity'] . '</td>';
print '<td align="right">' . price($prices['price']) . '</td>';
print '<td align="right">' . price($prices['unitprice']) . '</td>';
print '<td align="right">' . price($prices['remise_percent']) . ' %</td>';
print '<td align="center">';
print '<td class="right">' . price($prices['price']) . '</td>';
print '<td class="right">' . price($prices['unitprice']) . '</td>';
print '<td class="right">' . price($prices['remise_percent']) . ' %</td>';
print '<td class="center">';
if (($user->rights->produit->creer || $user->rights->service->creer)) {
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=edit_price_by_qty&amp;rowid=' . $prices["rowid"] . '">';
print img_edit() . '</a>';
@ -938,10 +938,10 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUI
print '<input type="hidden" value="0" name="rowid">'; // id in product_price
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td><input size="5" type="text" value="1" name="quantity"></td>';
print '<td align="right" class="nowrap"><input size="10" type="text" value="0" name="price">&nbsp;' . $object->price_base_type . '</td>';
print '<td align="right">&nbsp;</td>';
print '<td align="right" class="nowrap"><input size="5" type="text" value="0" name="remise_percent">&nbsp;%</td>';
print '<td align="center"><input type="submit" value="' . $langs->trans("Add") . '" class="button"></td>';
print '<td class="right" class="nowrap"><input size="10" type="text" value="0" name="price">&nbsp;' . $object->price_base_type . '</td>';
print '<td class="right">&nbsp;</td>';
print '<td class="right" class="nowrap"><input size="5" type="text" value="0" name="remise_percent">&nbsp;%</td>';
print '<td class="center"><input type="submit" value="' . $langs->trans("Add") . '" class="button"></td>';
print '</tr>';
print '</form>';
}
@ -1013,10 +1013,10 @@ else
print '<tr class="liste_titre">';
//print '<td>' . $langs->trans("PriceByQuantityRange") . '</td>';
print '<td>' . $langs->trans("Quantity") . '</td>';
print '<td align="right">' . $langs->trans("Price") . '</td>';
print '<td align="right"></td>';
print '<td align="right">' . $langs->trans("UnitPrice") . '</td>';
print '<td align="right">' . $langs->trans("Discount") . '</td>';
print '<td class="right">' . $langs->trans("Price") . '</td>';
print '<td class="right"></td>';
print '<td class="right">' . $langs->trans("UnitPrice") . '</td>';
print '<td class="right">' . $langs->trans("Discount") . '</td>';
print '<td>&nbsp;</td>';
print '</tr>';
if ($action != 'edit_price_by_qty')
@ -1028,13 +1028,13 @@ else
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td><input size="5" type="text" value="1" name="quantity"></td>';
print '<td align="right"><input class="width50 right" type="text" value="0" name="price"></td>';
print '<td class="right"><input class="width50 right" type="text" value="0" name="price"></td>';
print '<td>';
//print $object->price_base_type;
print '</td>';
print '<td align="right">&nbsp;</td>';
print '<td align="right"><input type="text" class="width50 right" value="0" name="remise_percent">&nbsp;%</td>';
print '<td align="center"><input type="submit" value="' . $langs->trans("Add") . '" class="button"></td>';
print '<td class="right">&nbsp;</td>';
print '<td class="right"><input type="text" class="width50 right" value="0" name="remise_percent">&nbsp;%</td>';
print '<td class="center"><input type="submit" value="' . $langs->trans("Add") . '" class="button"></td>';
print '</tr>';
print '</form>';
@ -1049,27 +1049,27 @@ else
print '<input type="hidden" value="' . $prices['rowid'] . '" name="rowid">'; // id in product_price_by_qty
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td><input size="5" type="text" value="' . $prices['quantity'] . '" name="quantity"></td>';
print '<td align="right"><input class="width50 right" type="text" value="' . price2num($prices['price'], 'MU') . '" name="price"></td>';
print '<td align="right">';
print '<td class="right"><input class="width50 right" type="text" value="' . price2num($prices['price'], 'MU') . '" name="price"></td>';
print '<td class="right">';
//print $object->price_base_type;
print $prices['price_base_type'];
print '</td>';
print '<td align="right">&nbsp;</td>';
print '<td align="right"><input class="width50 right" type="text" value="' . $prices['remise_percent'] . '" name="remise_percent">&nbsp;%</td>';
print '<td align="center"><input type="submit" value="' . $langs->trans("Modify") . '" class="button"></td>';
print '<td class="right">&nbsp;</td>';
print '<td class="right"><input class="width50 right" type="text" value="' . $prices['remise_percent'] . '" name="remise_percent">&nbsp;%</td>';
print '<td class="center"><input type="submit" value="' . $langs->trans("Modify") . '" class="button"></td>';
print '</tr>';
print '</form>';
} else {
print '<tr class="' . ($ii % 2 == 0 ? 'pair' : 'impair') . '">';
print '<td>' . $prices['quantity'] . '</td>';
print '<td align="right">' . price($prices['price']) . '</td>';
print '<td align="right">';
print '<td class="right">' . price($prices['price']) . '</td>';
print '<td class="right">';
//print $object->price_base_type;
print $prices['price_base_type'];
print '</td>';
print '<td align="right">' . price($prices['unitprice']) . '</td>';
print '<td align="right">' . price($prices['remise_percent']) . ' %</td>';
print '<td align="center">';
print '<td class="right">' . price($prices['unitprice']) . '</td>';
print '<td class="right">' . price($prices['remise_percent']) . ' %</td>';
print '<td class="center">';
if (($user->rights->produit->creer || $user->rights->service->creer))
{
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;action=edit_price_by_qty&amp;rowid=' . $prices["rowid"] . '">';
@ -1475,25 +1475,25 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
print '<td align="center">' . $langs->trans("PriceLevel") . '</td>';
print '<td class="center">' . $langs->trans("PriceLevel") . '</td>';
}
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
print '<td align="center">' . $langs->trans("Type") . '</td>';
print '<td class="center">' . $langs->trans("Type") . '</td>';
}
print '<td align="center">' . $langs->trans("PriceBase") . '</td>';
print '<td class="center">' . $langs->trans("PriceBase") . '</td>';
print $conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL;
if (empty($conf->global->PRODUIT_MULTIPRICES) && empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) print '<td align="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td align="right">' . $langs->trans("HT") . '</td>';
print '<td align="right">' . $langs->trans("TTC") . '</td>';
if (empty($conf->global->PRODUIT_MULTIPRICES) && empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) print '<td class="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td class="right">' . $langs->trans("HT") . '</td>';
print '<td class="right">' . $langs->trans("TTC") . '</td>';
if (! empty($conf->dynamicprices->enabled)) {
print '<td align="right">' . $langs->trans("PriceExpressionSelected") . '</td>';
print '<td class="right">' . $langs->trans("PriceExpressionSelected") . '</td>';
}
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td class="right">' . $langs->trans("ChangedBy") . '</td>';
if ($user->rights->produit->supprimer)
print '<td align="right">&nbsp;</td>';
print '<td class="right">&nbsp;</td>';
print '</tr>';
$notfirstlineforlevel=array();
@ -1509,16 +1509,16 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
// Price level
if (! empty($conf->global->PRODUIT_MULTIPRICES) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES)) {
print '<td align="center">' . $objp->price_level . "</td>";
print '<td class="center">' . $objp->price_level . "</td>";
}
// Price by quantity
if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY) || ! empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))
{
$type = ($objp->price_by_qty == 1) ? 'PriceByQuantity' : 'Standard';
print '<td align="center">' . $langs->trans($type) . "</td>";
print '<td class="center">' . $langs->trans($type) . "</td>";
}
print '<td align="center">';
print '<td class="center">';
if (empty($objp->price_by_qty)) {
print $langs->trans($objp->price_base_type);
}
@ -1526,7 +1526,7 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
if (empty($conf->global->PRODUIT_MULTIPRICES) && empty($conf->global->PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES))
{
print '<td align="right">';
print '<td class="right">';
if (empty($objp->price_by_qty)) {
$positiverates='';
@ -1552,41 +1552,41 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
$price_expression = new PriceExpression($db);
$res = $price_expression->fetch($objp->fk_price_expression);
$title = $price_expression->title;
print '<td align="right"></td>';
print '<td align="right"></td>';
print '<td align="right">' . $title . "</td>";
print '<td class="right"></td>';
print '<td class="right"></td>';
print '<td class="right">' . $title . "</td>";
}
else
{
print '<td align="right">';
print '<td class="right">';
if (empty($objp->price_by_qty)) {
print ($objp->price_base_type != 'TTC' ? price($objp->price) : '');
}
print "</td>";
print '<td align="right">';
print '<td class="right">';
if (empty($objp->price_by_qty)) {
print ($objp->price_base_type == 'TTC' ? price($objp->price_ttc) : '');
}
print "</td>";
if (! empty($conf->dynamicprices->enabled)) { //Only if module is enabled
print '<td align="right"></td>';
print '<td class="right"></td>';
}
}
print '<td align="right">';
print '<td class="right">';
if (empty($objp->price_by_qty)) {
print ($objp->price_base_type != 'TTC' ? price($objp->price_min) : '');
}
print '</td>';
print '<td align="right">';
print '<td class="right">';
if (empty($objp->price_by_qty)) {
print ($objp->price_base_type == 'TTC' ? price($objp->price_min_ttc) : '');
}
print '</td>';
// User
print '<td align="right"><a href="' . DOL_URL_ROOT . '/user/card.php?id=' . $objp->user_id . '">' . img_object($langs->trans("ShowUser"), 'user') . ' ' . $objp->login . '</a></td>';
print '<td class="right"><a href="' . DOL_URL_ROOT . '/user/card.php?id=' . $objp->user_id . '">' . img_object($langs->trans("ShowUser"), 'user') . ' ' . $objp->login . '</a></td>';
// Action
if ($user->rights->produit->supprimer)
@ -1599,7 +1599,7 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_
}
elseif ($i > 0) $candelete=1;
print '<td align="right">';
print '<td class="right">';
if ($candelete)
{
print '<a href="' . $_SERVER["PHP_SELF"] . '?action=delete&amp;id=' . $object->id . '&amp;lineid=' . $objp->rowid . '">';
@ -1866,21 +1866,21 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("ThirdParty") . '</td>';
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
print '<td align="center">' . $langs->trans("PriceBase") . '</td>';
print '<td align="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td align="right">' . $langs->trans("HT") . '</td>';
print '<td class="center">' . $langs->trans("PriceBase") . '</td>';
print '<td class="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td class="right">' . $langs->trans("HT") . '</td>';
if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1")
{
//print '<td align="right">' . $langs->trans("INCVATONLY") . '</td>';
print '<td align="right">' . $langs->trans("INCT") . '</td>';
//print '<td class="right">' . $langs->trans("INCVATONLY") . '</td>';
print '<td class="right">' . $langs->trans("INCT") . '</td>';
}
else
{
print '<td align="right">' . $langs->trans("TTC") . '</td>';
print '<td class="right">' . $langs->trans("TTC") . '</td>';
}
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td class="right">' . $langs->trans("ChangedBy") . '</td>';
print '<td>&nbsp;</td>';
print '</tr>';
@ -1917,8 +1917,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print "<td>" . $staticsoc->getNomUrl(1) . "</td>";
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
print '<td align="right">';
print '<td class="center">' . $langs->trans($line->price_base_type) . "</td>";
print '<td class="right">';
$positiverates='';
if (price2num($line->tva_tx)) $positiverates.=($positiverates?'/':'').price2num($line->tva_tx);
@ -1930,25 +1930,25 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
//. vatrate($tva_tx, true, $line->recuperableonly) .
print "</td>";
print '<td align="right">' . price($line->price) . "</td>";
print '<td class="right">' . price($line->price) . "</td>";
if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1")
{
//print '<td align="right">' . price($line->price_ttc) . "</td>";
print '<td align="right">' . price($resultarray[2]) . '</td>';
//print '<td class="right">' . price($line->price_ttc) . "</td>";
print '<td class="right">' . price($resultarray[2]) . '</td>';
}
else
{
print '<td align="right">' . price($line->price_ttc) . "</td>";
print '<td class="right">' . price($line->price_ttc) . "</td>";
}
print '<td align="right">' . price($line->price_min) . '</td>';
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
print '<td class="right">' . price($line->price_min) . '</td>';
print '<td class="right">' . price($line->price_min_ttc) . '</td>';
// User
$userstatic = new User($db);
$userstatic->fetch($line->fk_user);
print '<td align="right">';
print '<td class="right">';
print $userstatic->getLoginUrl(1);
print '</td>';
print '</tr>';
@ -1992,7 +1992,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print '<td class="liste_titre"><input type="text" class="flat" name="search_soc" value="' . $search_soc . '" size="20"></td>';
print '<td class="liste_titre" colspan="'.$colspan.'">&nbsp;</td>';
// Print the search button
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -2002,22 +2002,22 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("ThirdParty") . '</td>';
print '<td>' . $langs->trans("AppliedPricesFrom") . '</td>';
print '<td align="center">' . $langs->trans("PriceBase") . '</td>';
print '<td align="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td align="right">' . $langs->trans("HT") . '</td>';
print '<td class="center">' . $langs->trans("PriceBase") . '</td>';
print '<td class="right">' . $langs->trans("DefaultTaxRate") . '</td>';
print '<td class="right">' . $langs->trans("HT") . '</td>';
if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1")
{
//print '<td align="right">' . $langs->trans("INCVATONLY") . '</td>';
print '<td align="right">' . $langs->trans("INCT") . '</td>';
//print '<td class="right">' . $langs->trans("INCVATONLY") . '</td>';
print '<td class="right">' . $langs->trans("INCT") . '</td>';
}
else
{
print '<td align="right">' . $langs->trans("TTC") . '</td>';
print '<td class="right">' . $langs->trans("TTC") . '</td>';
}
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td align="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td align="right">' . $langs->trans("ChangedBy") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '</td>';
print '<td class="right">' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '</td>';
print '<td class="right">' . $langs->trans("ChangedBy") . '</td>';
print '<td>&nbsp;</td>';
print '</tr>';
@ -2046,8 +2046,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print "<td>" . $langs->trans("Default") . "</td>";
print "<td>" . "</td>";
print '<td align="center">' . $langs->trans($object->price_base_type) . "</td>";
print '<td align="right">';
print '<td class="center">' . $langs->trans($object->price_base_type) . "</td>";
print '<td class="right">';
$positiverates='';
if (price2num($object->tva_tx)) $positiverates.=($positiverates?'/':'').price2num($object->tva_tx);
@ -2060,26 +2060,26 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
//print $object->default_vat_code?' ('.$object->default_vat_code.')':'';
print "</td>";
print '<td align="right">' . price($object->price) . "</td>";
print '<td class="right">' . price($object->price) . "</td>";
if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1")
{
//print '<td align="right">' . price($object->price_ttc) . "</td>";
print '<td align="right">' . price($resultarray[2]) . '</td>';
//print '<td class="right">' . price($object->price_ttc) . "</td>";
print '<td class="right">' . price($resultarray[2]) . '</td>';
}
else
{
print '<td align="right">' . price($object->price_ttc) . "</td>";
print '<td class="right">' . price($object->price_ttc) . "</td>";
}
print '<td align="right">' . price($object->price_min) . '</td>';
print '<td align="right">' . price($object->price_min_ttc) . '</td>';
print '<td align="right">';
print '<td class="right">' . price($object->price_min) . '</td>';
print '<td class="right">' . price($object->price_min_ttc) . '</td>';
print '<td class="right">';
print '</td>';
if ($user->rights->produit->supprimer || $user->rights->service->supprimer)
{
print '<td align="right">';
print '<td class="right">';
print '<a href="' . $_SERVER["PHP_SELF"] . '?action=showlog_default_price&amp;id=' . $object->id . '">';
print img_info($langs->trans('PriceByCustomerLog'));
print '</a>';
@ -2128,8 +2128,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
print "<td>" . $staticsoc->getNomUrl(1) . "</td>";
print "<td>" . dol_print_date($line->datec, "dayhour") . "</td>";
print '<td align="center">' . $langs->trans($line->price_base_type) . "</td>";
print '<td align="right">';
print '<td class="center">' . $langs->trans($line->price_base_type) . "</td>";
print '<td class="right">';
$positiverates='';
if (price2num($line->tva_tx)) $positiverates.=($positiverates?'/':'').price2num($line->tva_tx);
@ -2139,25 +2139,25 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
echo vatrate($positiverates.($line->default_vat_code?' ('.$line->default_vat_code.')':''), '%', ($line->tva_npr?$line->tva_npr:$line->recuperableonly));
print "</td>";
print '<td align="right">' . price($line->price) . "</td>";
print '<td class="right">' . price($line->price) . "</td>";
if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1")
{
//print '<td align="right">' . price($line->price_ttc) . "</td>";
print '<td align="right">' . price($resultarray[2]) . '</td>';
//print '<td class="right">' . price($line->price_ttc) . "</td>";
print '<td class="right">' . price($resultarray[2]) . '</td>';
}
else
{
print '<td align="right">' . price($line->price_ttc) . "</td>";
print '<td class="right">' . price($line->price_ttc) . "</td>";
}
print '<td align="right">' . price($line->price_min) . '</td>';
print '<td align="right">' . price($line->price_min_ttc) . '</td>';
print '<td class="right">' . price($line->price_min) . '</td>';
print '<td class="right">' . price($line->price_min_ttc) . '</td>';
// User
$userstatic = new User($db);
$userstatic->fetch($line->fk_user);
print '<td align="right">';
print '<td class="right">';
print $userstatic->getLoginUrl(1);
print '</td>';
@ -2165,7 +2165,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES))
// Action
if ($user->rights->produit->supprimer || $user->rights->service->supprimer)
{
print '<td align="right">';
print '<td class="right">';
print '<a href="' . $_SERVER["PHP_SELF"] . '?action=showlog_customer_price&amp;id=' . $object->id . '&amp;socid=' . $line->fk_soc . '">';
print img_info($langs->trans('PriceByCustomerLog'));
print '</a>';

View File

@ -443,13 +443,21 @@ else
print "<tr class=\"liste_titre\">";
print_liste_field_titre("Product", "", "p.ref", "&amp;id=".$id, "", "", $sortfield, $sortorder);
print_liste_field_titre("Label", "", "p.label", "&amp;id=".$id, "", "", $sortfield, $sortorder);
print_liste_field_titre("Units", "", "ps.reel", "&amp;id=".$id, "", 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("AverageUnitPricePMPShort", "", "p.pmp", "&amp;id=".$id, "", 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValueShort", "", "", "&amp;id=".$id, "", 'align="right"', $sortfield, $sortorder);
if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("SellPriceMin", "", "p.price", "&amp;id=".$id, "", 'align="right"', $sortfield, $sortorder);
if (empty($conf->global->PRODUIT_MULTIPRICES)) print_liste_field_titre("EstimatedStockValueSellShort", "", "", "&amp;id=".$id, "", 'align="right"', $sortfield, $sortorder);
if ($user->rights->stock->mouvement->creer) print_liste_field_titre('');
if ($user->rights->stock->creer) print_liste_field_titre('');
print_liste_field_titre("Units", "", "ps.reel", "&amp;id=".$id, "", '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("AverageUnitPricePMPShort", "", "p.pmp", "&amp;id=".$id, "", '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("EstimatedStockValueShort", "", "", "&amp;id=".$id, "", '', $sortfield, $sortorder, 'right ');
if (empty($conf->global->PRODUIT_MULTIPRICES)) {
print_liste_field_titre("SellPriceMin", "", "p.price", "&amp;id=".$id, "", '', $sortfield, $sortorder, 'right ');
}
if (empty($conf->global->PRODUIT_MULTIPRICES)) {
print_liste_field_titre("EstimatedStockValueSellShort", "", "", "&amp;id=".$id, "", '', $sortfield, $sortorder, 'right ');
}
if ($user->rights->stock->mouvement->creer) {
print_liste_field_titre('');
}
if ($user->rights->stock->creer) {
print_liste_field_titre('');
}
print "</tr>\n";
$totalunit=0;
@ -506,28 +514,28 @@ else
// Label
print '<td>'.$objp->produit.'</td>';
print '<td align="right">';
print '<td class="right">';
$valtoshow=price2num($objp->value, 'MS');
print empty($valtoshow)?'0':$valtoshow;
print '</td>';
$totalunit+=$objp->value;
// Price buy PMP
print '<td align="right">'.price(price2num($objp->ppmp, 'MU')).'</td>';
print '<td class="right">'.price(price2num($objp->ppmp, 'MU')).'</td>';
// Total PMP
print '<td align="right">'.price(price2num($objp->ppmp*$objp->value, 'MT')).'</td>';
print '<td class="right">'.price(price2num($objp->ppmp*$objp->value, 'MT')).'</td>';
$totalvalue+=price2num($objp->ppmp*$objp->value, 'MT');
// Price sell min
if (empty($conf->global->PRODUIT_MULTIPRICES))
{
$pricemin=$objp->price;
print '<td align="right">';
print '<td class="right">';
print price(price2num($pricemin, 'MU'), 1);
print '</td>';
// Total sell min
print '<td align="right">';
print '<td class="right">';
print price(price2num($pricemin*$objp->value, 'MT'), 1);
print '</td>';
}
@ -535,14 +543,14 @@ else
if ($user->rights->stock->mouvement->creer)
{
print '<td align="center"><a href="'.DOL_URL_ROOT.'/product/stock/product.php?dwid='.$object->id.'&id='.$objp->rowid.'&action=transfert&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$id).'">';
print '<td class="center"><a href="'.DOL_URL_ROOT.'/product/stock/product.php?dwid='.$object->id.'&id='.$objp->rowid.'&action=transfert&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$id).'">';
print img_picto($langs->trans("StockMovement"), 'uparrow.png', 'class="hideonsmartphone"').' '.$langs->trans("StockMovement");
print "</a></td>";
}
if ($user->rights->stock->creer)
{
print '<td align="center"><a href="'.DOL_URL_ROOT.'/product/stock/product.php?dwid='.$object->id.'&id='.$objp->rowid.'&action=correction&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$id).'">';
print '<td class="center"><a href="'.DOL_URL_ROOT.'/product/stock/product.php?dwid='.$object->id.'&id='.$objp->rowid.'&action=correction&backtopage='.urlencode($_SERVER["PHP_SELF"].'?id='.$id).'">';
print $langs->trans("StockCorrection");
print "</a></td>";
}
@ -553,16 +561,16 @@ else
$db->free($resql);
print '<tr class="liste_total"><td class="liste_total" colspan="2">'.$langs->trans("Total").'</td>';
print '<td class="liste_total" align="right">';
print '<td class="liste_total right">';
$valtoshow=price2num($totalunit, 'MS');
print empty($valtoshow)?'0':$valtoshow;
print '</td>';
print '<td class="liste_total">&nbsp;</td>';
print '<td class="liste_total" align="right">'.price(price2num($totalvalue, 'MT')).'</td>';
print '<td class="liste_total right">'.price(price2num($totalvalue, 'MT')).'</td>';
if (empty($conf->global->PRODUIT_MULTIPRICES))
{
print '<td class="liste_total">&nbsp;</td>';
print '<td class="liste_total" align="right">'.price(price2num($totalvaluesell, 'MT')).'</td>';
print '<td class="liste_total right">'.price(price2num($totalvaluesell, 'MT')).'</td>';
}
print '<td class="liste_total">&nbsp;</td>';
print '<td class="liste_total">&nbsp;</td>';

View File

@ -92,7 +92,7 @@ if ($result)
print '<tr class="oddeven">';
print "<td><a href=\"card.php?id=$objp->rowid\">".img_object($langs->trans("ShowStock"), "stock")." ".$objp->label."</a></td>\n";
print '<td align="right">'.$entrepot->LibStatut($objp->statut, 5).'</td>';
print '<td class="right">'.$entrepot->LibStatut($objp->statut, 5).'</td>';
print "</tr>\n";
$i++;
}
@ -142,7 +142,7 @@ if ($resql)
print '<th>'.$langs->trans("EatByDate").'</th>';
}
print '<th>'.$langs->trans("Warehouse").'</th>';
print '<th align="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/product/stock/movement_list.php">'.$langs->trans("FullList").'</a></th>';
print '<th class="right"><a class="notasortlink" href="'.DOL_URL_ROOT.'/product/stock/movement_list.php">'.$langs->trans("FullList").'</a></th>';
print "</tr>\n";
$i=0;
@ -170,7 +170,7 @@ if ($resql)
print '<td class="tdoverflowmax200"><a href="card.php?id='.$objp->entrepot_id.'">';
print img_object($langs->trans("ShowWarehouse"), "stock").' '.$objp->stock;
print "</a></td>\n";
print '<td align="right">';
print '<td class="right">';
if ($objp->qty > 0) print '+';
print $objp->qty.'</td>';
print "</tr>\n";

View File

@ -162,22 +162,22 @@ if ($result)
// Lignes des champs de filtre
print '<tr class="liste_titre_filter">';
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" name="search_ref" size="6" value="'.dol_escape_htmltag($search_ref).'">';
print '</td>';
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" name="search_label" size="10" value="'.dol_escape_htmltag($search_label).'">';
print '</td>';
print '<td class="liste_titre" colspan="3">';
print '</td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print $form->selectarray('search_status', $warehouse->statuts, $search_status, 1, 0, 0, '', 1);
print '</td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -187,10 +187,10 @@ if ($result)
print '<tr class="liste_titre">';
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu", "", $param, "", $sortfield, $sortorder);
print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty", '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue", '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("PhysicalStock", $_SERVER["PHP_SELF"], "stockqty", '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "estimatedvalue", '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', $param, '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('', $_SERVER["PHP_SELF"], "", '', $param, '', $sortfield, $sortorder, 'maxwidthsearch ');
print "</tr>\n";
@ -213,14 +213,14 @@ if ($result)
// Location
print '<td>'.$objp->lieu.'</td>';
// Stock qty
print '<td align="right">'.price2num($objp->stockqty, 5).'</td>';
print '<td class="right">'.price2num($objp->stockqty, 5).'</td>';
// PMP value
print '<td align="right">';
print '<td class="right">';
if (price2num($objp->estimatedvalue, 'MT')) print price(price2num($objp->estimatedvalue, 'MT'), 1);
else print '';
print '</td>';
// Selling value
print '<td align="right">';
print '<td class="right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($objp->sellvalue, 'MT'), 1);
else
{
@ -229,7 +229,7 @@ if ($result)
}
print '</td>';
// Status
print '<td align="right">'.$warehouse->LibStatut($objp->statut, 5).'</td>';
print '<td class="right">'.$warehouse->LibStatut($objp->statut, 5).'</td>';
print '<td></td>';
@ -242,10 +242,10 @@ if ($result)
if ($totalnboflines-$offset <= $limit)
{
print '<tr class="liste_total">';
print '<td colspan="2" align="right">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price2num($totalStock, 5).'</td>';
print '<td align="right">'.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td align="right">';
print '<td colspan="2" class="right">'.$langs->trans("Total").'</td>';
print '<td class="right">'.price2num($totalStock, 5).'</td>';
print '<td class="right">'.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td class="right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalsell, 'MT'), 1, $langs, 0, 0, -1, $conf->currency);
else
{

View File

@ -347,14 +347,13 @@ print '<table class="liste" width="100%">';
$param='';
print '<tr class="liste_titre">';
print getTitleFieldOfList($langs->trans('ProductRef'), 0, $_SERVER["PHP_SELF"], '', $param, '', 'class="tagtd maxwidthonsmartphone"', $sortfield, $sortorder);
if ($conf->productbatch->enabled)
{
print getTitleFieldOfList($langs->trans('Batch'), 0, $_SERVER["PHP_SELF"], '', $param, '', 'class="tagtd maxwidthonsmartphone"', $sortfield, $sortorder);
print getTitleFieldOfList($langs->trans('ProductRef'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone ');
if ($conf->productbatch->enabled) {
print getTitleFieldOfList($langs->trans('Batch'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone ');
}
print getTitleFieldOfList($langs->trans('WarehouseSource'), 0, $_SERVER["PHP_SELF"], '', $param, '', 'class="tagtd maxwidthonsmartphone"', $sortfield, $sortorder);
print getTitleFieldOfList($langs->trans('WarehouseTarget'), 0, $_SERVER["PHP_SELF"], '', $param, '', 'class="tagtd maxwidthonsmartphone"', $sortfield, $sortorder);
print getTitleFieldOfList($langs->trans('Qty'), 0, $_SERVER["PHP_SELF"], '', $param, '', 'align="center" class="tagtd maxwidthonsmartphone"', $sortfield, $sortorder);
print getTitleFieldOfList($langs->trans('WarehouseSource'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone ');
print getTitleFieldOfList($langs->trans('WarehouseTarget'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'tagtd maxwidthonsmartphone ');
print getTitleFieldOfList($langs->trans('Qty'), 0, $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'center tagtd maxwidthonsmartphone ');
print getTitleFieldOfList('', 0);
print '</tr>';
@ -364,8 +363,7 @@ print '<tr class="oddeven">';
print '<td class="titlefield">';
$filtertype=0;
if (! empty($conf->global->STOCK_SUPPORTS_SERVICES)) $filtertype='';
if ($conf->global->PRODUIT_LIMIT_SIZE <= 0)
{
if ($conf->global->PRODUIT_LIMIT_SIZE <= 0) {
$limit='';
}
else
@ -391,9 +389,9 @@ print '<td>';
print $formproduct->selectWarehouses($id_tw, 'id_tw', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, array(), 'minwidth200imp maxwidth200');
print '</td>';
// Qty
print '<td align="center"><input type="text" class="flat maxwidth50" name="qty" value="'.$qty.'"></td>';
print '<td class="center"><input type="text" class="flat maxwidth50" name="qty" value="'.$qty.'"></td>';
// Button to add line
print '<td align="right"><input type="submit" class="button" name="addline" value="'.dol_escape_htmltag($titletoadd).'"></td>';
print '<td class="right"><input type="submit" class="button" name="addline" value="'.dol_escape_htmltag($titletoadd).'"></td>';
print '</tr>';
@ -420,8 +418,8 @@ foreach($listofdata as $key => $val)
print '<td>';
print $warehousestatict->getNomUrl(1);
print '</td>';
print '<td align="center">'.$val['qty'].'</td>';
print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=delline&idline='.$val['id'].'">'.img_delete($langs->trans("Remove")).'</a></td>';
print '<td class="center">'.$val['qty'].'</td>';
print '<td class="right"><a href="'.$_SERVER["PHP_SELF"].'?action=delline&idline='.$val['id'].'">'.img_delete($langs->trans("Remove")).'</a></td>';
print '</tr>';
}

View File

@ -1,9 +1,10 @@
<?php
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
/* Copyright (C) 2001-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -36,8 +37,7 @@ require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/stock.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
if (! empty($conf->projet->enabled))
{
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
}
@ -771,7 +771,7 @@ if ($resql)
if (! empty($arrayfields['m.rowid']['checked']))
{
// Ref
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth25" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
print '</td>';
}
@ -789,36 +789,36 @@ if ($resql)
if (! empty($arrayfields['p.ref']['checked']))
{
// Product Ref
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth75" type="text" name="search_product_ref" value="'.dol_escape_htmltag($idproduct?$product->ref:$search_product_ref).'">';
print '</td>';
}
if (! empty($arrayfields['p.label']['checked']))
{
// Product label
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth100" type="text" name="search_product" value="'.dol_escape_htmltag($idproduct?$product->label:$search_product).'">';
print '</td>';
}
// Batch
if (! empty($arrayfields['m.batch']['checked']))
{
print '<td class="liste_titre" align="center"><input class="flat maxwidth75" type="text" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
print '<td class="liste_titre center"><input class="flat maxwidth75" type="text" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
}
if (! empty($arrayfields['pl.eatby']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '</td>';
}
if (! empty($arrayfields['pl.sellby']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '</td>';
}
// Warehouse
if (! empty($arrayfields['e.ref']['checked']))
{
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
print '<td class="liste_titre maxwidthonsmartphone left">';
//print '<input class="flat" type="text" size="8" name="search_warehouse" value="'.($search_warehouse).'">';
print $formproduct->selectWarehouses($search_warehouse, 'search_warehouse', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, null, 'maxwidth200');
print '</td>';
@ -826,28 +826,28 @@ if ($resql)
if (! empty($arrayfields['m.fk_user_author']['checked']))
{
// Author
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="6" name="search_user" value="'.dol_escape_htmltag($search_user).'">';
print '</td>';
}
if (! empty($arrayfields['m.inventorycode']['checked']))
{
// Inventory code
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="4" name="search_inventorycode" value="'.dol_escape_htmltag($search_inventorycode).'">';
print '</td>';
}
if (! empty($arrayfields['m.label']['checked']))
{
// Label of movement
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="8" name="search_movement" value="'.dol_escape_htmltag($search_movement).'">';
print '</td>';
}
if (! empty($arrayfields['m.type_mouvement']['checked']))
{
// Type of movement
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
//print '<input class="flat" type="text" size="3" name="search_type_mouvement" value="'.dol_escape_htmltag($search_type_mouvement).'">';
print '<select id="search_type_mouvement" name="search_type_mouvement" class="maxwidth150">';
print '<option value="" '.(($search_type_mouvement=="")?'selected="selected"':'').'></option>';
@ -864,21 +864,21 @@ if ($resql)
if (! empty($arrayfields['origin']['checked']))
{
// Origin of movement
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '&nbsp; ';
print '</td>';
}
if (! empty($arrayfields['m.value']['checked']))
{
// Qty
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print '<input class="flat" type="text" size="4" name="search_qty" value="'.dol_escape_htmltag($search_qty).'">';
print '</td>';
}
if (! empty($arrayfields['m.price']['checked']))
{
// Price
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '&nbsp; ';
print '</td>';
}
@ -904,7 +904,7 @@ if ($resql)
print '</td>';
}
// Actions
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -920,13 +920,15 @@ if ($resql)
if (! empty($arrayfields['p.label']['checked']))
print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['m.batch']['checked']))
print_liste_field_titre($arrayfields['m.batch']['label'], $_SERVER["PHP_SELF"], 'm.batch', '', $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['m.batch']['label'], $_SERVER["PHP_SELF"], 'm.batch', '', $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['pl.eatby']['checked']))
print_liste_field_titre($arrayfields['pl.eatby']['label'], $_SERVER["PHP_SELF"], 'pl.eatby', '', $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['pl.eatby']['label'], $_SERVER["PHP_SELF"], 'pl.eatby', '', $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['pl.sellby']['checked']))
print_liste_field_titre($arrayfields['pl.sellby']['label'], $_SERVER["PHP_SELF"], 'pl.sellby', '', $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['e.ref']['checked']))
print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder); // We are on a specific warehouse card, no filter on other should be possible
print_liste_field_titre($arrayfields['pl.sellby']['label'], $_SERVER["PHP_SELF"], 'pl.sellby', '', $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['e.ref']['checked'])) {
// We are on a specific warehouse card, no filter on other should be possible
print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['m.fk_user_author']['checked']))
print_liste_field_titre($arrayfields['m.fk_user_author']['label'], $_SERVER["PHP_SELF"], "m.fk_user_author", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.inventorycode']['checked']))
@ -934,13 +936,13 @@ if ($resql)
if (! empty($arrayfields['m.label']['checked']))
print_liste_field_titre($arrayfields['m.label']['label'], $_SERVER["PHP_SELF"], "m.label", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.type_mouvement']['checked']))
print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, 'align="center"', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, '', $sortfield, $sortorder, 'center ');
if (! empty($arrayfields['origin']['checked']))
print_liste_field_titre($arrayfields['origin']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.value']['checked']))
print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, '', $sortfield, $sortorder, 'right ');
if (! empty($arrayfields['m.price']['checked']))
print_liste_field_titre($arrayfields['m.price']['label'], $_SERVER["PHP_SELF"], "m.price", "", $param, 'align="right"', $sortfield, $sortorder);
print_liste_field_titre($arrayfields['m.price']['label'], $_SERVER["PHP_SELF"], "m.price", "", $param, '', $sortfield, $sortorder, 'right ');
// Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
@ -949,16 +951,19 @@ if ($resql)
$parameters=array('arrayfields'=>$arrayfields, 'param'=>$param, 'sortfield'=>$sortfield, 'sortorder'=>$sortorder);
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['m.datec']['checked'])) print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['m.tms']['checked'])) print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
if (! empty($arrayfields['m.datec']['checked'])) {
print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
if (! empty($arrayfields['m.tms']['checked'])) {
print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print "</tr>\n";
$arrayofuniqueproduct=array();
while ($i < min($num, $limit))
{
while ($i < min($num, $limit)) {
$objp = $db->fetch_object($resql);
$userstatic->id=$objp->fk_user_author;
@ -984,7 +989,7 @@ if ($resql)
$warehousestatic->lieu=$objp->lieu;
$arrayofuniqueproduct[$objp->rowid]=$objp->produit;
if(!empty($objp->fk_origin)) {
if (!empty($objp->fk_origin)) {
$origin = $movement->get_origin($objp->fk_origin, $objp->origintype);
} else {
$origin = '';
@ -994,7 +999,8 @@ if ($resql)
// Id movement
if (! empty($arrayfields['m.rowid']['checked']))
{
print '<td>'.$objp->mid.'</td>'; // This is primary not movement id
// This is primary not movement id
print '<td>'.$objp->mid.'</td>';
}
if (! empty($arrayfields['m.datem']['checked']))
{
@ -1028,11 +1034,11 @@ if ($resql)
}
if (! empty($arrayfields['pl.eatby']['checked']))
{
print '<td align="center">'. dol_print_date($objp->eatby, 'day') .'</td>';
print '<td class="center">'. dol_print_date($objp->eatby, 'day') .'</td>';
}
if (! empty($arrayfields['pl.sellby']['checked']))
{
print '<td align="center">'. dol_print_date($objp->sellby, 'day') .'</td>';
print '<td class="center">'. dol_print_date($objp->sellby, 'day') .'</td>';
}
// Warehouse
if (! empty($arrayfields['e.ref']['checked']))
@ -1071,16 +1077,16 @@ if ($resql)
// Type of movement
switch($objp->type_mouvement) {
case "0":
print '<td align="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
print '<td class="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
break;
case "1":
print '<td align="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
print '<td class="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
break;
case "2":
print '<td align="center">'.$langs->trans('StockDecrease').'</td>';
print '<td class="center">'.$langs->trans('StockDecrease').'</td>';
break;
case "3":
print '<td align="center">'.$langs->trans('StockIncrease').'</td>';
print '<td class="center">'.$langs->trans('StockIncrease').'</td>';
break;
}
}
@ -1092,7 +1098,7 @@ if ($resql)
if (! empty($arrayfields['m.value']['checked']))
{
// Qty
print '<td align="right">';
print '<td class="right">';
if ($objp->qt > 0) print '+';
print $objp->qty;
print '</td>';
@ -1100,12 +1106,12 @@ if ($resql)
if (! empty($arrayfields['m.price']['checked']))
{
// Price
print '<td align="right">';
print '<td class="right">';
if ($objp->price != 0) print price($objp->price);
print '</td>';
}
// Action column
print '<td class="nowrap" align="center">';
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;
@ -1130,8 +1136,7 @@ if ($resql)
print "<br>";
$productidselected=0;
foreach ($arrayofuniqueproduct as $key => $val)
{
foreach ($arrayofuniqueproduct as $key => $val) {
$productidselected=$key;
$productlabelselected=$val;
}
@ -1143,17 +1148,17 @@ if ($resql)
//print '<tr class="total"><td class="liste_total">';
print $langs->trans("NbOfProductBeforePeriod", $productlabelselected, dol_print_date($datebefore, 'day', 'gmt'));
//print '</td>';
//print '<td class="liste_total" colspan="6" align="right">';
//print '<td class="liste_total right" colspan="6">';
print ': '.$balancebefore;
print "<br>\n";
//print '</td></tr>';
//print '<tr class="total"><td class="liste_total">';
print $langs->trans("NbOfProductAfterPeriod", $productlabelselected, dol_print_date($dateafter, 'day', 'gmt'));
//print '</td>';
//print '<td class="liste_total" colspan="6" align="right">';
//print '<td class="liste_total right" colspan="6">';
print ': '.$balanceafter;
print "<br>\n";
//print '</td></tr>';
//print '</td></tr>';
}
}
else

View File

@ -4,6 +4,7 @@
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -768,7 +769,7 @@ if ($resql)
if (! empty($arrayfields['m.rowid']['checked']))
{
// Ref
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth25" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'">';
print '</td>';
}
@ -786,36 +787,36 @@ if ($resql)
if (! empty($arrayfields['p.ref']['checked']))
{
// Product Ref
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth75" type="text" name="search_product_ref" value="'.dol_escape_htmltag($idproduct?$product->ref:$search_product_ref).'">';
print '</td>';
}
if (! empty($arrayfields['p.label']['checked']))
{
// Product label
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat maxwidth100" type="text" name="search_product" value="'.dol_escape_htmltag($idproduct?$product->label:$search_product).'">';
print '</td>';
}
// Batch
if (! empty($arrayfields['m.batch']['checked']))
{
print '<td class="liste_titre" align="center"><input class="flat maxwidth75" type="text" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
print '<td class="liste_titre center"><input class="flat maxwidth75" type="text" name="search_batch" value="'.dol_escape_htmltag($search_batch).'"></td>';
}
if (! empty($arrayfields['pl.eatby']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '</td>';
}
if (! empty($arrayfields['pl.sellby']['checked']))
{
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '</td>';
}
// Warehouse
if (! empty($arrayfields['e.ref']['checked']))
{
print '<td class="liste_titre maxwidthonsmartphone" align="left">';
print '<td class="liste_titre maxwidthonsmartphone left">';
//print '<input class="flat" type="text" size="8" name="search_warehouse" value="'.($search_warehouse).'">';
print $formproduct->selectWarehouses($search_warehouse, 'search_warehouse', 'warehouseopen,warehouseinternal', 1, 0, 0, '', 0, 0, null, 'maxwidth200');
print '</td>';
@ -823,28 +824,28 @@ if ($resql)
if (! empty($arrayfields['m.fk_user_author']['checked']))
{
// Author
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="6" name="search_user" value="'.dol_escape_htmltag($search_user).'">';
print '</td>';
}
if (! empty($arrayfields['m.inventorycode']['checked']))
{
// Inventory code
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="4" name="search_inventorycode" value="'.dol_escape_htmltag($search_inventorycode).'">';
print '</td>';
}
if (! empty($arrayfields['m.label']['checked']))
{
// Label of movement
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '<input class="flat" type="text" size="8" name="search_movement" value="'.dol_escape_htmltag($search_movement).'">';
print '</td>';
}
if (! empty($arrayfields['m.type_mouvement']['checked']))
{
// Type of movement
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
//print '<input class="flat" type="text" size="3" name="search_type_mouvement" value="'.dol_escape_htmltag($search_type_mouvement).'">';
print '<select id="search_type_mouvement" name="search_type_mouvement" class="maxwidth150">';
print '<option value="" '.(($search_type_mouvement=="")?'selected="selected"':'').'></option>';
@ -861,21 +862,21 @@ if ($resql)
if (! empty($arrayfields['origin']['checked']))
{
// Origin of movement
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '&nbsp; ';
print '</td>';
}
if (! empty($arrayfields['m.value']['checked']))
{
// Qty
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
print '<input class="flat" type="text" size="4" name="search_qty" value="'.dol_escape_htmltag($search_qty).'">';
print '</td>';
}
if (! empty($arrayfields['m.price']['checked']))
{
// Price
print '<td class="liste_titre" align="left">';
print '<td class="liste_titre left">';
print '&nbsp; ';
print '</td>';
}
@ -901,28 +902,59 @@ if ($resql)
print '</td>';
}
// Actions
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
print "</tr>\n";
print '<tr class="liste_titre">';
if (! empty($arrayfields['m.rowid']['checked'])) print_liste_field_titre($arrayfields['m.rowid']['label'], $_SERVER["PHP_SELF"], 'm.rowid', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['m.datem']['checked'])) print_liste_field_titre($arrayfields['m.datem']['label'], $_SERVER["PHP_SELF"], 'm.datem', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['p.ref']['checked'])) print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['p.label']['checked'])) print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
if (! empty($arrayfields['m.batch']['checked'])) print_liste_field_titre($arrayfields['m.batch']['label'], $_SERVER["PHP_SELF"], 'm.batch', '', $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['pl.eatby']['checked'])) print_liste_field_titre($arrayfields['pl.eatby']['label'], $_SERVER["PHP_SELF"], 'pl.eatby', '', $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['pl.sellby']['checked'])) print_liste_field_titre($arrayfields['pl.sellby']['label'], $_SERVER["PHP_SELF"], 'pl.sellby', '', $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['e.ref']['checked'])) print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder); // We are on a specific warehouse card, no filter on other should be possible
if (! empty($arrayfields['m.fk_user_author']['checked'])) print_liste_field_titre($arrayfields['m.fk_user_author']['label'], $_SERVER["PHP_SELF"], "m.fk_user_author", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.inventorycode']['checked'])) print_liste_field_titre($arrayfields['m.inventorycode']['label'], $_SERVER["PHP_SELF"], "m.inventorycode", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.label']['checked'])) print_liste_field_titre($arrayfields['m.label']['label'], $_SERVER["PHP_SELF"], "m.label", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.type_mouvement']['checked'])) print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, 'align="center"', $sortfield, $sortorder);
if (! empty($arrayfields['origin']['checked'])) print_liste_field_titre($arrayfields['origin']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.value']['checked'])) print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['m.price']['checked'])) print_liste_field_titre($arrayfields['m.price']['label'], $_SERVER["PHP_SELF"], "m.price", "", $param, 'align="right"', $sortfield, $sortorder);
if (! empty($arrayfields['m.rowid']['checked'])) {
print_liste_field_titre($arrayfields['m.rowid']['label'], $_SERVER["PHP_SELF"], 'm.rowid', '', $param, '', $sortfield, $sortorder);
}
if (! empty($arrayfields['m.datem']['checked'])) {
print_liste_field_titre($arrayfields['m.datem']['label'], $_SERVER["PHP_SELF"], 'm.datem', '', $param, '', $sortfield, $sortorder);
}
if (! empty($arrayfields['p.ref']['checked'])) {
print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder);
}
if (! empty($arrayfields['p.label']['checked'])) {
print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder);
}
if (! empty($arrayfields['m.batch']['checked'])) {
print_liste_field_titre($arrayfields['m.batch']['label'], $_SERVER["PHP_SELF"], 'm.batch', '', $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['pl.eatby']['checked'])) {
print_liste_field_titre($arrayfields['pl.eatby']['label'], $_SERVER["PHP_SELF"], 'pl.eatby', '', $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['pl.sellby']['checked'])) {
print_liste_field_titre($arrayfields['pl.sellby']['label'], $_SERVER["PHP_SELF"], 'pl.sellby', '', $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['e.ref']['checked'])) {
// We are on a specific warehouse card, no filter on other should be possible
print_liste_field_titre($arrayfields['e.ref']['label'], $_SERVER["PHP_SELF"], "e.ref", "", $param, "", $sortfield, $sortorder);
if (! empty($arrayfields['m.fk_user_author']['checked'])) {
print_liste_field_titre($arrayfields['m.fk_user_author']['label'], $_SERVER["PHP_SELF"], "m.fk_user_author", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['m.inventorycode']['checked'])) {
print_liste_field_titre($arrayfields['m.inventorycode']['label'], $_SERVER["PHP_SELF"], "m.inventorycode", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['m.label']['checked'])) {
print_liste_field_titre($arrayfields['m.label']['label'], $_SERVER["PHP_SELF"], "m.label", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['m.type_mouvement']['checked'])) {
print_liste_field_titre($arrayfields['m.type_mouvement']['label'], $_SERVER["PHP_SELF"], "m.type_mouvement", "", $param, '', $sortfield, $sortorder, 'center ');
}
if (! empty($arrayfields['origin']['checked'])) {
print_liste_field_titre($arrayfields['origin']['label'], $_SERVER["PHP_SELF"], "", "", $param, "", $sortfield, $sortorder);
}
if (! empty($arrayfields['m.value']['checked'])) {
print_liste_field_titre($arrayfields['m.value']['label'], $_SERVER["PHP_SELF"], "m.value", "", $param, '', $sortfield, $sortorder, 'right ');
}
if (! empty($arrayfields['m.price']['checked'])) {
print_liste_field_titre($arrayfields['m.price']['label'], $_SERVER["PHP_SELF"], "m.price", "", $param, '', $sortfield, $sortorder, 'right ');
}
// Extra fields
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
@ -931,9 +963,13 @@ if ($resql)
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['m.datec']['checked'])) print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['m.tms']['checked'])) print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
if (! empty($arrayfields['m.datec']['checked'])) {
print_liste_field_titre($arrayfields['p.datec']['label'], $_SERVER["PHP_SELF"], "p.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
if (! empty($arrayfields['m.tms']['checked'])) {
print_liste_field_titre($arrayfields['p.tms']['label'], $_SERVER["PHP_SELF"], "p.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print "</tr>\n";
@ -1010,11 +1046,11 @@ if ($resql)
}
if (! empty($arrayfields['pl.eatby']['checked']))
{
print '<td align="center">'. dol_print_date($objp->eatby, 'day') .'</td>';
print '<td class="center">'. dol_print_date($objp->eatby, 'day') .'</td>';
}
if (! empty($arrayfields['pl.sellby']['checked']))
{
print '<td align="center">'. dol_print_date($objp->sellby, 'day') .'</td>';
print '<td class="center">'. dol_print_date($objp->sellby, 'day') .'</td>';
}
// Warehouse
if (! empty($arrayfields['e.ref']['checked']))
@ -1053,16 +1089,16 @@ if ($resql)
// Type of movement
switch($objp->type_mouvement){
case "0":
print '<td align="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
print '<td class="center">'.$langs->trans('StockIncreaseAfterCorrectTransfer').'</td>';
break;
case "1":
print '<td align="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
print '<td class="center">'.$langs->trans('StockDecreaseAfterCorrectTransfer').'</td>';
break;
case "2":
print '<td align="center">'.$langs->trans('StockDecrease').'</td>';
print '<td class="center">'.$langs->trans('StockDecrease').'</td>';
break;
case "3":
print '<td align="center">'.$langs->trans('StockIncrease').'</td>';
print '<td class="center">'.$langs->trans('StockIncrease').'</td>';
break;
}
}
@ -1074,7 +1110,7 @@ if ($resql)
if (! empty($arrayfields['m.value']['checked']))
{
// Qty
print '<td align="right">';
print '<td class="right">';
if ($objp->qt > 0) print '+';
print $objp->qty;
print '</td>';
@ -1082,12 +1118,12 @@ if ($resql)
if (! empty($arrayfields['m.price']['checked']))
{
// Price
print '<td align="right">';
print '<td class="right">';
if ($objp->price != 0) print price($objp->price);
print '</td>';
}
// Action column
print '<td class="nowrap" align="center">';
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;
@ -1125,14 +1161,14 @@ if ($resql)
//print '<tr class="total"><td class="liste_total">';
print $langs->trans("NbOfProductBeforePeriod", $productlabelselected, dol_print_date($datebefore, 'day', 'gmt'));
//print '</td>';
//print '<td class="liste_total" colspan="6" align="right">';
//print '<td class="liste_total right" colspan="6">';
print ': '.$balancebefore;
print "<br>\n";
//print '</td></tr>';
//print '<tr class="total"><td class="liste_total">';
print $langs->trans("NbOfProductAfterPeriod", $productlabelselected, dol_print_date($dateafter, 'day', 'gmt'));
//print '</td>';
//print '<td class="liste_total" colspan="6" align="right">';
//print '<td class="liste_total right" colspan="6">';
print ': '.$balanceafter;
print "<br>\n";
//print '</td></tr>';

View File

@ -1,14 +1,14 @@
<?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
* Copyright (C) 2005 Simon TOSSER <simon@kornog-computing.com>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2013 Cédric Salvador <csalvador.gpcsolutions.fr>
* Copyright (C) 2013-2018 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2014-2015 Cédric Gross <c.gross@kreiz-it.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -38,9 +38,10 @@ require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php';
require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productstockentrepot.class.php';
if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
if (! empty($conf->projet->enabled))
{
if (! empty($conf->productbatch->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/product/class/productbatch.class.php';
}
if (! empty($conf->projet->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
}
@ -807,17 +808,17 @@ if (! $variants) {
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td colspan="4">' . $langs->trans("Warehouse") . '</td>';
print '<td align="right">' . $langs->trans("NumberOfUnit") . '</td>';
print '<td align="right">' . $langs->trans("AverageUnitPricePMPShort") . '</td>';
print '<td align="right">' . $langs->trans("EstimatedStockValueShort") . '</td>';
print '<td align="right">' . $langs->trans("SellPriceMin") . '</td>';
print '<td align="right">' . $langs->trans("EstimatedStockValueSellShort") . '</td>';
print '<td class="right">' . $langs->trans("NumberOfUnit") . '</td>';
print '<td class="right">' . $langs->trans("AverageUnitPricePMPShort") . '</td>';
print '<td class="right">' . $langs->trans("EstimatedStockValueShort") . '</td>';
print '<td class="right">' . $langs->trans("SellPriceMin") . '</td>';
print '<td class="right">' . $langs->trans("EstimatedStockValueSellShort") . '</td>';
print '</tr>';
if ((!empty($conf->productbatch->enabled)) && $object->hasbatch()) {
print '<tr class="liste_titre"><td width="10%"></td>';
print '<td align="right" width="10%">' . $langs->trans("batch_number") . '</td>';
print '<td align="center" width="10%">' . $langs->trans("EatByDate") . '</td>';
print '<td align="center" width="10%">' . $langs->trans("SellByDate") . '</td>';
print '<td class="right" width="10%">' . $langs->trans("batch_number") . '</td>';
print '<td class="center" width="10%">' . $langs->trans("EatByDate") . '</td>';
print '<td class="center" width="10%">' . $langs->trans("SellByDate") . '</td>';
print '<td></td>';
print '<td></td>';
print '<td></td>';
@ -856,18 +857,18 @@ if (! $variants) {
$stock_real = price2num($obj->reel, 'MS');
print '<tr class="oddeven">';
print '<td colspan="4">' . $entrepotstatic->getNomUrl(1) . '</td>';
print '<td align="right">' . $stock_real . ($stock_real < 0 ? ' ' . img_warning() : '') . '</td>';
print '<td class="right">' . $stock_real . ($stock_real < 0 ? ' ' . img_warning() : '') . '</td>';
// PMP
print '<td align="right">' . (price2num($object->pmp) ? price2num($object->pmp, 'MU') : '') . '</td>';
print '<td class="right">' . (price2num($object->pmp) ? price2num($object->pmp, 'MU') : '') . '</td>';
// Value purchase
print '<td align="right">' . (price2num($object->pmp) ? price(price2num($object->pmp * $obj->reel, 'MT')) : '') . '</td>';
print '<td class="right">' . (price2num($object->pmp) ? price(price2num($object->pmp * $obj->reel, 'MT')) : '') . '</td>';
// Sell price
print '<td align="right">';
print '<td class="right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price, 'MU'), 1);
else print $langs->trans("Variable");
print '</td>';
// Value sell
print '<td align="right">';
print '<td class="right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($object->price * $obj->reel, 'MT'), 1) . '</td>';
else print $langs->trans("Variable");
print '</tr>';
@ -890,33 +891,33 @@ if (! $variants) {
print '<td colspan="9">';
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
print '<input type="hidden" name="pdluoid" value="' . $pdluo->id . '"><input type="hidden" name="action" value="updateline"><input type="hidden" name="id" value="' . $id . '"><table class="noborder" width="100%"><tr><td width="10%"></td>';
print '<td align="right" width="10%"><input type="text" name="batch_number" value="' . $pdluo->batch . '"></td>';
print '<td align="center" width="10%">';
print '<td class="right" width="10%"><input type="text" name="batch_number" value="' . $pdluo->batch . '"></td>';
print '<td class="center" width="10%">';
print $form->selectDate($pdluo->eatby, 'eatby', '', '', 1, '', 1, 0);
print '</td>';
print '<td align="center" width="10%">';
print '<td class="center" width="10%">';
print $form->selectDate($pdluo->sellby, 'sellby', '', '', 1, '', 1, 0);
print '</td>';
print '<td align="right" width="10%">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
print '<td class="right" width="10%">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
print '<td colspan="4"><input type="submit" class="button" id="savelinebutton" name="save" value="' . $langs->trans("Save") . '">';
print '<input type="submit" class="button" id="cancellinebutton" name="Cancel" value="' . $langs->trans("Cancel") . '"></td></tr>';
print '</table>';
print '</form>';
print '</td></tr>';
} else {
print "\n" . '<tr><td align="right">';
print "\n" . '<tr><td class="right">';
print img_picto($langs->trans("Tranfer"), 'uparrow', 'class="hideonsmartphone"') . ' ';
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&amp;id_entrepot=' . $entrepotstatic->id . '&amp;action=transfert&amp;pdluoid=' . $pdluo->id . '">' . $langs->trans("TransferStock") . '</a>';
// Disabled, because edition of stock content must use the "Correct stock menu".
// Do not use this, or data will be wrong (bad tracking of movement label, inventory code, ...
//print '<a href="'.$_SERVER["PHP_SELF"].'?id='.$id.'&amp;action=editline&amp;lineid='.$pdluo->id.'#'.$pdluo->id.'">';
//print img_edit().'</a></td>';
print '<td align="right">';
print '<td class="right">';
print $product_lot_static->getNomUrl(1);
print '</td>';
print '<td align="center">' . dol_print_date($pdluo->eatby, 'day') . '</td>';
print '<td align="center">' . dol_print_date($pdluo->sellby, 'day') . '</td>';
print '<td align="right">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
print '<td class="center">' . dol_print_date($pdluo->eatby, 'day') . '</td>';
print '<td class="center">' . dol_print_date($pdluo->sellby, 'day') . '</td>';
print '<td class="right">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
print '<td colspan="4"></td></tr>';
}
}
@ -925,21 +926,21 @@ if (! $variants) {
}
} else dol_print_error($db);
print '<tr class="liste_total"><td align="right" class="liste_total" colspan="4">' . $langs->trans("Total") . ':</td>';
print '<td class="liste_total" align="right">' . price2num($total, 'MS') . '</td>';
print '<td class="liste_total" align="right">';
print '<tr class="liste_total"><td class="right liste_total" colspan="4">' . $langs->trans("Total") . ':</td>';
print '<td class="liste_total right">' . price2num($total, 'MS') . '</td>';
print '<td class="liste_total right">';
print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : '&nbsp;'); // This value may have rounding errors
print '</td>';
// Value purchase
print '<td class="liste_total" align="right">';
print '<td class="liste_total right">';
print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : '&nbsp;';
print '</td>';
print '<td class="liste_total" align="right">';
print '<td class="liste_total right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : '&nbsp;');
else print $langs->trans("Variable");
print '</td>';
// Value to sell
print '<td class="liste_total" align="right">';
print '<td class="liste_total right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1);
else print $langs->trans("Variable");
print '</td>';
@ -959,14 +960,14 @@ if (! $variants) {
print '<table class="noborder" width="100%">';
if (!empty($user->rights->produit->creer)) {
print '<tr class="liste_titre"><td width="40%">' . $formproduct->selectWarehouses('', 'fk_entrepot') . '</td>';
print '<td align="right"><input name="seuil_stock_alerte" type="text" placeholder="' . $langs->trans("StockLimit") . '" /></td>';
print '<td align="right"><input name="desiredstock" type="text" placeholder="' . $langs->trans("DesiredStock") . '" /></td>';
print '<td align="right"><input type="submit" value="' . $langs->trans('Save') . '" class="button" /></td>';
print '<td class="right"><input name="seuil_stock_alerte" type="text" placeholder="' . $langs->trans("StockLimit") . '" /></td>';
print '<td class="right"><input name="desiredstock" type="text" placeholder="' . $langs->trans("DesiredStock") . '" /></td>';
print '<td class="right"><input type="submit" value="' . $langs->trans('Save') . '" class="button" /></td>';
print '</tr>';
} else {
print '<tr class="liste_titre"><td width="40%">' . $langs->trans("Warehouse") . '</td>';
print '<td align="right">' . $langs->trans("StockLimit") . '</td>';
print '<td align="right">' . $langs->trans("DesiredStock") . '</td>';
print '<td class="right">' . $langs->trans("StockLimit") . '</td>';
print '<td class="right">' . $langs->trans("DesiredStock") . '</td>';
print '</tr>';
}
@ -979,10 +980,10 @@ if (! $variants) {
$ent = new Entrepot($db);
$ent->fetch($line['fk_entrepot']);
print '<tr class="oddeven"><td width="40%">' . $ent->getNomUrl(3) . '</td>';
print '<td align="right">' . $line['seuil_stock_alerte'] . '</td>';
print '<td align="right">' . $line['desiredstock'] . '</td>';
print '<td class="right">' . $line['seuil_stock_alerte'] . '</td>';
print '<td class="right">' . $line['desiredstock'] . '</td>';
if (!empty($user->rights->produit->creer)) {
print '<td align="right"><a href="?id=' . $id . '&fk_productstockwarehouse=' . $line['id'] . '&action=delete_productstockwarehouse">' . img_delete() . '</a></td>';
print '<td class="right"><a href="?id=' . $id . '&fk_productstockwarehouse=' . $line['id'] . '&action=delete_productstockwarehouse">' . img_delete() . '</a></td>';
}
print '</tr>';
}
@ -1064,8 +1065,8 @@ if (! $variants) {
}
print '<tr class="liste_total">';
print '<td colspan="4" align="left">'.$langs->trans("Total").'</td>';
print '<td align="right">'.$stock_total.'</td>';
print '<td colspan="4" class="left">'.$langs->trans("Total").'</td>';
print '<td class="right">'.$stock_total.'</td>';
print '</tr>';
}
else

View File

@ -1,6 +1,7 @@
<?php
/* Copyright (C) 2007-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
/* Copyright (C) 2007-2016 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -17,10 +18,10 @@
*/
/**
* \file product/stock/productlot_list.php
* \ingroup stock
* \brief This file is an example of a php page
* Initialy built by build_class_from_table on 2016-05-17 12:22
* \file product/stock/productlot_list.php
* \ingroup stock
* \brief This file is an example of a php page
* Initialy built by build_class_from_table on 2016-05-17 12:22
*/
require '../../main.inc.php';
@ -34,10 +35,10 @@ require_once DOL_DOCUMENT_ROOT.'/product/stock/class/productlot.class.php';
$langs->loadLangs(array('stocks', 'productbatch', 'other', 'users'));
// Get parameters
$id = GETPOST('id', 'int');
$action = GETPOST('action', 'alpha');
$id = GETPOST('id', 'int');
$action = GETPOST('action', 'alpha');
$backtopage = GETPOST('backtopage', 'alpha');
$myparam = GETPOST('myparam', 'alpha');
$myparam = GETPOST('myparam', 'alpha');
$toselect = GETPOST('toselect', 'array');
@ -362,12 +363,12 @@ if ($resql)
/*if (! empty($arrayfields['u.statut']['checked']))
{
// Status
print '<td class="liste_titre" align="center">';
print '<td class="liste_titre center">';
print $form->selectarray('search_statut', array('-1'=>'','0'=>$langs->trans('Disabled'),'1'=>$langs->trans('Enabled')),$search_statut);
print '</td>';
}*/
// Action column
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons($massactionbutton?1:0, 'checkforselect', 1);
print $searchpicto;
print '</td>';
@ -389,11 +390,17 @@ if ($resql)
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
$reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook
print $hookmanager->resPrint;
if (! empty($arrayfields['t.datec']['checked'])) print_liste_field_titre($arrayfields['t.datec']['label'], $_SERVER["PHP_SELF"], "t.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER["PHP_SELF"], "t.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder);
//if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($arrayfields['t.status']['label'],$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch ');
print '</tr>'."\n";
if (! empty($arrayfields['t.datec']['checked'])) {
print_liste_field_titre($arrayfields['t.datec']['label'], $_SERVER["PHP_SELF"], "t.datec", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
if (! empty($arrayfields['t.tms']['checked'])) {
print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER["PHP_SELF"], "t.tms", "", $param, '', $sortfield, $sortorder, 'center nowrap ');
}
//if (! empty($arrayfields['t.status']['checked'])) {
// print_liste_field_titre($arrayfields['t.status']['label'], $_SERVER["PHP_SELF"], "t.status", "", $param, '', $sortfield, $sortorder, 'center ');
//}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print '</tr>'."\n";
$productlot = new Productlot($db);
@ -464,7 +471,7 @@ if ($resql)
// Date creation
if (! empty($arrayfields['t.datec']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print dol_print_date($db->jdate($obj->date_creation), 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -472,7 +479,7 @@ if ($resql)
// Date modification
if (! empty($arrayfields['t.tms']['checked']))
{
print '<td align="center">';
print '<td class="center">';
print dol_print_date($db->jdate($obj->date_update), 'dayhour', 'tzuser');
print '</td>';
if (! $i) $totalarray['nbfield']++;
@ -482,11 +489,11 @@ if ($resql)
if (! empty($arrayfields['u.statut']['checked']))
{
$userstatic->statut=$obj->statut;
print '<td align="center">'.$userstatic->getLibStatut(3).'</td>';
print '<td class="center">'.$userstatic->getLibStatut(3).'</td>';
}*/
// Action column
print '<td class="nowrap" align="center">';
print '<td class="nowrap center">';
if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined
{
$selected=0;
@ -514,9 +521,9 @@ if ($resql)
if ($num < $limit && empty($offset)) print '<td class="left">'.$langs->trans("Total").'</td>';
else print '<td class="left">'.$langs->trans("Totalforthispage").'</td>';
}
elseif ($totalarray['totalhtfield'] == $i) print '<td align="right">'.price($totalarray['totalht']).'</td>';
elseif ($totalarray['totalvatfield'] == $i) print '<td align="right">'.price($totalarray['totalvat']).'</td>';
elseif ($totalarray['totalttcfield'] == $i) print '<td align="right">'.price($totalarray['totalttc']).'</td>';
elseif ($totalarray['totalhtfield'] == $i) print '<td class="right">'.price($totalarray['totalht']).'</td>';
elseif ($totalarray['totalvatfield'] == $i) print '<td class="right">'.price($totalarray['totalvat']).'</td>';
elseif ($totalarray['totalttcfield'] == $i) print '<td class="right">'.price($totalarray['totalttc']).'</td>';
else print '<td></td>';
}
print '</tr>';

View File

@ -4,6 +4,7 @@
* Copyright (C) 2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2016 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2016 ATM Consulting <support@atm-consulting.fr>
* Copyright (C) 2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -534,11 +535,11 @@ print '<td class="liste_titre"><input class="flat" type="text" name="sref" size=
print '<td class="liste_titre"><input class="flat" type="text" name="snom" size="8" value="'.dol_escape_htmltag($snom).'"></td>';
if (!empty($conf->service->enabled) && $type == 1) print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="right">&nbsp;</td>';
print '<td class="liste_titre" align="right">' . $langs->trans('AlertOnly') . '&nbsp;<input type="checkbox" id="salert" name="salert" ' . (!empty($alertchecked)?$alertchecked:'') . '></td>';
print '<td class="liste_titre" align="right">' . $langs->trans('IncludeAlsoDraftOrders') . '&nbsp;<input type="checkbox" id="draftorder" name="draftorder" ' . (!empty($draftchecked)?$draftchecked:'') . '></td>';
print '<td class="liste_titre right">&nbsp;</td>';
print '<td class="liste_titre right">' . $langs->trans('AlertOnly') . '&nbsp;<input type="checkbox" id="salert" name="salert" ' . (!empty($alertchecked)?$alertchecked:'') . '></td>';
print '<td class="liste_titre right">' . $langs->trans('IncludeAlsoDraftOrders') . '&nbsp;<input type="checkbox" id="draftorder" name="draftorder" ' . (!empty($draftchecked)?$draftchecked:'') . '></td>';
print '<td class="liste_titre">&nbsp;</td>';
print '<td class="liste_titre" align="right">';
print '<td class="liste_titre right">';
$searchpicto=$form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -549,13 +550,13 @@ print '<tr class="liste_titre">';
print_liste_field_titre('<input type="checkbox" onClick="toggle(this)" />', $_SERVER["PHP_SELF"], '');
print_liste_field_titre('Ref', $_SERVER["PHP_SELF"], 'p.ref', $param, '', '', $sortfield, $sortorder);
print_liste_field_titre('Label', $_SERVER["PHP_SELF"], 'p.label', $param, '', '', $sortfield, $sortorder);
if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre('Duration', $_SERVER["PHP_SELF"], 'p.duration', $param, '', 'align="center"', $sortfield, $sortorder);
print_liste_field_titre('DesiredStock', $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre('StockLimitShort', $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre($stocklabel, $_SERVER["PHP_SELF"], 'stock_physique', $param, '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre('Ordered', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre('StockToBuy', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre('SupplierRef', $_SERVER["PHP_SELF"], '', $param, '', 'align="right"', $sortfield, $sortorder);
if (!empty($conf->service->enabled) && $type == 1) print_liste_field_titre('Duration', $_SERVER["PHP_SELF"], 'p.duration', $param, '', '', $sortfield, $sortorder, 'center ');
print_liste_field_titre('DesiredStock', $_SERVER["PHP_SELF"], 'p.desiredstock', $param, '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('StockLimitShort', $_SERVER["PHP_SELF"], 'p.seuil_stock_alerte', $param, '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre($stocklabel, $_SERVER["PHP_SELF"], 'stock_physique', $param, '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('Ordered', $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('StockToBuy', $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre('SupplierRef', $_SERVER["PHP_SELF"], '', $param, '', '', $sortfield, $sortorder, 'right ');
print "</tr>\n";
while ($i < ($limit ? min($num, $limit) : $num))
@ -660,27 +661,27 @@ while ($i < ($limit ? min($num, $limit) : $num))
} else {
$duration = $objp->duration;
}
print '<td align="center">'.$duration.'</td>';
print '<td class="center">'.$duration.'</td>';
}
// Desired stock
print '<td align="right">' . $desiredstock . '</td>';
print '<td class="right">' . $desiredstock . '</td>';
// Limit stock for alert
print '<td align="right">' . $alertstock . '</td>';
print '<td class="right">' . $alertstock . '</td>';
// Current stock (all warehouses)
print '<td align="right">'. $warning . $stock. '</td>';
print '<td class="right">'. $warning . $stock. '</td>';
// Already ordered
print '<td align="right"><a href="replenishorders.php?sproduct=' . $prod->id . '">'. $ordered . '</a> ' . $picto. '</td>';
print '<td class="right"><a href="replenishorders.php?sproduct=' . $prod->id . '">'. $ordered . '</a> ' . $picto. '</td>';
// To order
//print '<td align="right"><input type="text" name="tobuy'.$i.'" value="'.$stocktobuy.'" '.$disabled.'></td>';
print '<td align="right"><input type="text" size="4" name="tobuy'.$i.'" value="'.$stocktobuy.'"></td>';
//print '<td class="right"><input type="text" name="tobuy'.$i.'" value="'.$stocktobuy.'" '.$disabled.'></td>';
print '<td class="right"><input type="text" size="4" name="tobuy'.$i.'" value="'.$stocktobuy.'"></td>';
// Supplier
print '<td align="right">'. $form->select_product_fourn_price($prod->id, 'fourn'.$i, $fk_supplier).'</td>';
print '<td class="right">'. $form->select_product_fourn_price($prod->id, 'fourn'.$i, $fk_supplier).'</td>';
print '</tr>';
}

View File

@ -2,7 +2,7 @@
/*
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
* Copyright (C) 2014 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -198,7 +198,7 @@ if ($resql)
'<td class="liste_titre">'.
$form->selectDate($search_date, 'search_date', 0, 0, 1, '', 1, 0, 0, '').
'</td>'.
'<td class="liste_titre" align="right">';
'<td class="liste_titre right">';
$searchpicto = $form->showFilterAndCheckAddButtons(0);
print $searchpicto;
print '</td>';
@ -261,9 +261,10 @@ if ($resql)
'cf.fk_statut',
'',
$param,
'align="right"',
'',
$sortfield,
$sortorder
$sortorder,
'right '
);
print '</tr>';
@ -277,13 +278,12 @@ if ($resql)
if ($showline)
{
$href = DOL_URL_ROOT . '/fourn/commande/card.php?id=' . $obj->rowid;
print '<tr>'.
$href = DOL_URL_ROOT.'/fourn/commande/card.php?id='.$obj->rowid;
print '<tr>';
// Ref
'<td>'.
'<a href="' . $href . '">'.
img_object($langs->trans('ShowOrder'), 'order') . ' ' . $obj->ref.
'</a></td>';
print '<td>';
print '<a href="'.$href.'">'.img_object($langs->trans('ShowOrder'), 'order').' '.$obj->ref.'</a>';
print '</td>';
// Company
$href = DOL_URL_ROOT . '/fourn/card.php?socid=' . $obj->socid;
@ -300,13 +300,9 @@ if ($resql)
} else {
$txt = '&nbsp;';
}
print '<td>'.
$txt.
'</td>'.
print '<td>'.$txt.'</td>';
// Amount
'<td>'.
price($obj->total_ttc).
'</td>';
print '<td>'.price($obj->total_ttc).'</td>';
// Date
if ($obj->dc) {
@ -314,14 +310,10 @@ if ($resql)
} else {
$date = '-';
}
print '<td>'.
$date.
'</td>'.
print '<td>'.$date.'</td>';
// Statut
'<td align="right">'.
$commandestatic->LibStatut($obj->fk_statut, 5).
'</td>'.
'</tr>';
print '<td class="right">'.$commandestatic->LibStatut($obj->fk_statut, 5).'</td>';
print '</tr>';
}
$i++;
}
@ -334,7 +326,7 @@ if ($resql)
}
else
{
dol_print_error($db);
dol_print_error($db);
}
// End of page

View File

@ -87,9 +87,9 @@ if ($result)
print "<tr class=\"liste_titre\">";
print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "e.ref", "", "", "", $sortfield, $sortorder);
print_liste_field_titre("LocationSummary", $_SERVER["PHP_SELF"], "e.lieu", "", "", "", $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "e.valo_pmp", '', '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', '', 'align="right"', $sortfield, $sortorder);
print_liste_field_titre("EstimatedStockValue", $_SERVER["PHP_SELF"], "e.valo_pmp", '', '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("EstimatedStockValueSell", $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'right ');
print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "e.statut", '', '', '', $sortfield, $sortorder, 'right ');
print "</tr>\n";
if ($num)
@ -104,17 +104,17 @@ if ($result)
print '<td><a href="card.php?id='.$objp->rowid.'">'.img_object($langs->trans("ShowWarehouse"), 'stock').' '.$objp->ref.'</a></td>';
print '<td>'.$objp->lieu.'</td>';
// PMP value
print '<td align="right">';
print '<td class="right">';
if (price2num($objp->estimatedvalue, 'MT')) print price(price2num($objp->estimatedvalue, 'MT'), 1);
else print '';
print '</td>';
// Selling value
print '<td align="right">';
print '<td class="right">';
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($objp->sellvalue, 'MT'), 1);
else print $langs->trans("Variable");
print '</td>';
// Status
print '<td align="right">'.$entrepot->LibStatut($objp->statut, 5).'</td>';
print '<td class="right">'.$entrepot->LibStatut($objp->statut, 5).'</td>';
print "</tr>\n";
$total += price2num($objp->estimatedvalue, 'MU');
$totalsell += price2num($objp->sellvalue, 'MU');
@ -123,10 +123,10 @@ if ($result)
}
print '<tr class="liste_total">';
print '<td colspan="2" align="right">'.$langs->trans("Total").'</td>';
print '<td align="right">'.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td align="right">'.price(price2num($totalsell, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td align="right">&nbsp;</td>';
print '<td colspan="2" class="right">'.$langs->trans("Total").'</td>';
print '<td class="right">'.price(price2num($total, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td class="right">'.price(price2num($totalsell, 'MT'), 1, $langs, 0, 0, -1, $conf->currency).'</td>';
print '<td class="right">&nbsp;</td>';
print "</tr>\n";
}