Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: ChangeLog htdocs/exports/export.php htdocs/filefunc.inc.php
This commit is contained in:
commit
fb3d20107c
62
ChangeLog
62
ChangeLog
@ -27,8 +27,68 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* If your logo was visible on the menu bar, you must upload a new logo into 'Home-Setup-Company/Organization' to have it visible agin in menu.
|
* If your logo was visible on the menu bar, you must upload a new logo into 'Home-Setup-Company/Organization' to have it visible agin in menu.
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 10.0.2 compared to 10.0.1 *****
|
***** ChangeLog for 10.0.3 compared to 10.0.2 *****
|
||||||
|
FIX: #11702
|
||||||
|
FIX: #11861 No consistent code to manage measuring units
|
||||||
|
FIX: #11942
|
||||||
|
FIX: #12026
|
||||||
|
FIX: #12040
|
||||||
|
FIX: #12041
|
||||||
|
FIX: #12054
|
||||||
|
FIX: #12083
|
||||||
|
FIX: #12088
|
||||||
|
FIX: access to public interface when origin email has an alias.
|
||||||
|
FIX: Alias name is not into the email recipient label.
|
||||||
|
FIX: allow standalone credit note even if no invoice
|
||||||
|
FIX: an admin can not access his own permissions after enabling advanced
|
||||||
|
FIX: an admin can not access his own permissions after enabling advanced permissions
|
||||||
|
FIX: Attachement of linked files on ticket when sending a message
|
||||||
|
FIX: avoid non numeric warning
|
||||||
|
FIX: Bad currency var used in stripe for connect
|
||||||
|
FIX: Bad list of ticket on public interface for ticket emailcollector
|
||||||
|
FIX: Can't modify vendor invoice if transfered into accountancy
|
||||||
|
FIX: change product type must be allowed if we activate hidden conf
|
||||||
|
FIX: colspan on VAT quadri report
|
||||||
|
FIX: CSS
|
||||||
|
FIX: Debug feature orderstoinvoice for suppliers
|
||||||
|
FIX: do not output return code on screen after a select of bank account
|
||||||
|
FIX: Edit of ticket module parameters erased others
|
||||||
|
FIX: empty cache when we want to load specific warehouses in select
|
||||||
|
FIX: escape email alias
|
||||||
|
FIX: expedition.class.php
|
||||||
|
FIX: Export of leave request show the number of open days
|
||||||
|
FIX: Filtering the HTTP Header "Accept-Language".
|
||||||
|
FIX: Filter on project on ticket list
|
||||||
|
FIX: Filter "Open all" of ticket was ko.
|
||||||
|
FIX: Force downlaod of file with .noexe as octet-stream mime type
|
||||||
|
FIX: form not closed.
|
||||||
|
FIX: hidden conf to prevent from changing product_type
|
||||||
|
FIX: If product account not suggested during bind, it is not preselected
|
||||||
|
FIX: If we share invoice, we need to see discount created from a deposit on each entity
|
||||||
|
FIX: Import of product using units
|
||||||
|
FIX: label of thirdparty is wrong on open project list
|
||||||
|
FIX: Look and feel v10
|
||||||
|
FIX: missing begin()
|
||||||
|
FIX: missing "$this->id" in "fetch" function
|
||||||
|
FIX: navigation on ticket tab of projects
|
||||||
|
FIX: new invoice with generic thirdparty in takepos
|
||||||
|
FIX: Pb in units of shipments
|
||||||
|
FIX: regression with option to hide picto on top menu
|
||||||
|
FIX: selection of project i am contact of.
|
||||||
|
FIX: Send email from expense report card.
|
||||||
|
FIX: shipping card: missing user error messages when classifying closed or billed
|
||||||
|
FIX: SQL injection on qty
|
||||||
|
FIX: stripe payment when there is a quote into address
|
||||||
|
FIX: Substitution of __PROJECT_XXX__ not done
|
||||||
|
FIX: TakePOS no invoice validation control and good payment translate
|
||||||
|
FIX: the access of the bank account of one user
|
||||||
|
FIX: top menu right padding
|
||||||
|
FIX: Update of leave request when CSRF with token is on
|
||||||
|
FIX: Var not enough sanitized
|
||||||
|
FIX: wrong test
|
||||||
|
FIX: XSS
|
||||||
|
|
||||||
|
***** ChangeLog for 10.0.2 compared to 10.0.1 *****
|
||||||
FIX: #10460 compatibility with MariaDB 10.4
|
FIX: #10460 compatibility with MariaDB 10.4
|
||||||
FIX: #11401 Adherent unknown language key
|
FIX: #11401 Adherent unknown language key
|
||||||
FIX: #11422 Can't edit his own events with standard rights
|
FIX: #11422 Can't edit his own events with standard rights
|
||||||
|
|||||||
@ -1048,6 +1048,7 @@ class BlockedLog
|
|||||||
if (empty($conf->global->BLOCKEDLOG_ENTITY_FINGERPRINT)) { // creation of a unique fingerprint
|
if (empty($conf->global->BLOCKEDLOG_ENTITY_FINGERPRINT)) { // creation of a unique fingerprint
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/security.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';
|
||||||
|
|
||||||
$fingerprint = dol_hash(print_r($mysoc, true).getRandomPassword(1), '5');
|
$fingerprint = dol_hash(print_r($mysoc, true).getRandomPassword(1), '5');
|
||||||
|
|||||||
@ -91,15 +91,13 @@ if ($_socid > 0)
|
|||||||
|
|
||||||
dol_fiche_head($head, $tabchoice, $langs->trans("ThirdParty"), 0, 'company');
|
dol_fiche_head($head, $tabchoice, $langs->trans("ThirdParty"), 0, 'company');
|
||||||
|
|
||||||
print '<table width="100%" border="0">';
|
print '<table class="border centpercent">';
|
||||||
print '<tr><td class="tdtop">';
|
|
||||||
print '<table class="border" width="100%">';
|
|
||||||
|
|
||||||
print '<tr><td colspan="2" width="25%">';
|
print '<tr><td class="titlefieldcreate">';
|
||||||
print $langs->trans("PriceLevel").'</td><td colspan="2">'.$objsoc->price_level."</td></tr>";
|
print $langs->trans("PriceLevel").'</td><td>'.$objsoc->price_level."</td></tr>";
|
||||||
|
|
||||||
print '<tr><td colspan="2">';
|
print '<tr><td>';
|
||||||
print $langs->trans("NewValue").'</td><td colspan="2">';
|
print $langs->trans("NewValue").'</td><td>';
|
||||||
print '<select name="price_level" class="flat">';
|
print '<select name="price_level" class="flat">';
|
||||||
for($i=1;$i<=$conf->global->PRODUIT_MULTIPRICES_LIMIT;$i++)
|
for($i=1;$i<=$conf->global->PRODUIT_MULTIPRICES_LIMIT;$i++)
|
||||||
{
|
{
|
||||||
@ -116,12 +114,6 @@ if ($_socid > 0)
|
|||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
print "</td>\n";
|
|
||||||
|
|
||||||
|
|
||||||
print "</td></tr>";
|
|
||||||
print "</table>";
|
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
|
||||||
@ -157,8 +149,8 @@ if ($_socid > 0)
|
|||||||
while ($i < $num )
|
while ($i < $num )
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
$tag = !$tag;
|
|
||||||
print '<tr '.$bc[$tag].'>';
|
print '<tr class="oddeven">';
|
||||||
print '<td>'.dol_print_date($db->jdate($obj->dc), "dayhour").'</td>';
|
print '<td>'.dol_print_date($db->jdate($obj->dc), "dayhour").'</td>';
|
||||||
print '<td>'.$obj->price_level.' </td>';
|
print '<td>'.$obj->price_level.' </td>';
|
||||||
$userstatic->id=$obj->uid;
|
$userstatic->id=$obj->uid;
|
||||||
|
|||||||
@ -270,6 +270,7 @@ class modSociete extends DolibarrModules
|
|||||||
'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode'
|
'st.code'=>'ProspectStatus','payterm.libelle'=>'PaymentConditions','paymode.libelle'=>'PaymentMode'
|
||||||
);
|
);
|
||||||
if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix';
|
if (! empty($conf->global->SOCIETE_USEPREFIX)) $this->export_fields_array[$r]['s.prefix']='Prefix';
|
||||||
|
if (! empty($conf->global->PRODUIT_MULTIPRICES)) $this->export_fields_array[$r]['s.price_level']='PriceLevel';
|
||||||
// Add multicompany field
|
// Add multicompany field
|
||||||
if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED))
|
if (! empty($conf->global->MULTICOMPANY_ENTITY_IN_EXPORT_IF_SHARED))
|
||||||
{
|
{
|
||||||
@ -295,7 +296,8 @@ class modSociete extends DolibarrModules
|
|||||||
's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text",
|
's.tva_intra'=>"Text",'s.capital'=>"Numeric",'s.note_private'=>"Text",'s.note_public'=>"Text",'t.libelle'=>"Text",
|
||||||
'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code',
|
'ce.code'=>"List:c_effectif:libelle:code","cfj.libelle"=>"Text",'s.fk_prospectlevel'=>'List:c_prospectlevel:label:code',
|
||||||
'st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text','u.login'=>'Text','u.firstname'=>'Text','u.lastname'=>'Text','payterm.libelle'=>'Text',
|
'st.code'=>'List:c_stcomm:libelle:code','d.nom'=>'Text','u.login'=>'Text','u.firstname'=>'Text','u.lastname'=>'Text','payterm.libelle'=>'Text',
|
||||||
'paymode.libelle'=>'Text','s.entity'=>'Numeric'
|
'paymode.libelle'=>'Text','s.entity'=>'Numeric',
|
||||||
|
's.price_level'=>'Numeric'
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->export_entities_array[$r]=array('u.login'=>'user','u.firstname'=>'user','u.lastname'=>'user'); // We define here only fields that use another picto
|
$this->export_entities_array[$r]=array('u.login'=>'user','u.firstname'=>'user','u.lastname'=>'user'); // We define here only fields that use another picto
|
||||||
|
|||||||
@ -33,7 +33,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/export/modules_export.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadlangs(array('exports', 'other', 'users', 'companies', 'projects', 'banks'));
|
$langs->loadlangs(array('admin', 'exports', 'other', 'users', 'companies', 'projects', 'suppliers', 'products', 'bank'));
|
||||||
|
|
||||||
// Everybody should be able to go on this page
|
// Everybody should be able to go on this page
|
||||||
//if (! $user->admin)
|
//if (! $user->admin)
|
||||||
|
|||||||
@ -85,10 +85,7 @@ if (empty($reshook))
|
|||||||
$result=$object->fetch($id);
|
$result=$object->fetch($id);
|
||||||
$object->code_compta_fournisseur=$_POST["supplieraccountancycode"];
|
$object->code_compta_fournisseur=$_POST["supplieraccountancycode"];
|
||||||
$result=$object->update($object->id, $user, 1, 0, 1);
|
$result=$object->update($object->id, $user, 1, 0, 1);
|
||||||
if ($result < 0)
|
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
|
||||||
{
|
|
||||||
$mesg=join(',', $object->errors);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// terms of the settlement
|
// terms of the settlement
|
||||||
if ($action == 'setconditions' && $user->rights->societe->creer)
|
if ($action == 'setconditions' && $user->rights->societe->creer)
|
||||||
|
|||||||
@ -212,7 +212,7 @@ if (empty($user->societe_id) && empty($conf->global->MAIN_DISABLE_GLOBAL_BOXSTAT
|
|||||||
'askprice',
|
'askprice',
|
||||||
'projects',
|
'projects',
|
||||||
'expensereports',
|
'expensereports',
|
||||||
'holidays',
|
'holiday',
|
||||||
'donations'
|
'donations'
|
||||||
);
|
);
|
||||||
// Dashboard Icon lines
|
// Dashboard Icon lines
|
||||||
|
|||||||
@ -1069,6 +1069,7 @@ CompanyTown=Town
|
|||||||
CompanyCountry=Country
|
CompanyCountry=Country
|
||||||
CompanyCurrency=Main currency
|
CompanyCurrency=Main currency
|
||||||
CompanyObject=Object of the company
|
CompanyObject=Object of the company
|
||||||
|
IDCountry=ID country
|
||||||
Logo=Logo
|
Logo=Logo
|
||||||
LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...)
|
LogoDesc=Main logo of company. Will be used into generated documents (PDF, ...)
|
||||||
LogoSquarred=Logo (squarred)
|
LogoSquarred=Logo (squarred)
|
||||||
|
|||||||
@ -213,8 +213,8 @@ UseMultipriceRules=Use price segment rules (defined into product module setup) t
|
|||||||
PercentVariationOver=%% variation over %s
|
PercentVariationOver=%% variation over %s
|
||||||
PercentDiscountOver=%% discount over %s
|
PercentDiscountOver=%% discount over %s
|
||||||
KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
|
KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products
|
||||||
VariantRefExample=Example: COL
|
VariantRefExample=Examples: COL, SIZE
|
||||||
VariantLabelExample=Example: Color
|
VariantLabelExample=Examples: Color, Size
|
||||||
### composition fabrication
|
### composition fabrication
|
||||||
Build=Produce
|
Build=Produce
|
||||||
ProductsMultiPrice=Products and prices for each price segment
|
ProductsMultiPrice=Products and prices for each price segment
|
||||||
|
|||||||
@ -450,7 +450,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
// Clone
|
// Clone
|
||||||
if (! empty($user->rights->mymodule->write))
|
if (! empty($user->rights->mymodule->write))
|
||||||
{
|
{
|
||||||
print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=order">' . $langs->trans("ToClone") . '</a></div>';
|
print '<a class="butAction" href="' . $_SERVER['PHP_SELF'] . '?id=' . $object->id . '&socid=' . $object->socid . '&action=clone&object=order">' . $langs->trans("ToClone") . '</a>'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -53,6 +53,19 @@ class Productlot extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $ismultientitymanaged = 1;
|
public $ismultientitymanaged = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array Array with all fields and their property. Do not use it as a static var. It may be modified by constructor.
|
||||||
|
*/
|
||||||
|
public $fields=array(
|
||||||
|
'rowid' => array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'),
|
||||||
|
'batch' =>array('type'=>'varchar(30)', 'label'=>'Batch', 'enabled'=>1, 'visible'=>1, 'notnull'=>0, 'showoncombobox'=>1, 'index'=>1, 'position'=>10, 'comment'=>'Batch'),
|
||||||
|
'entity' =>array('type'=>'integer', 'label'=>'Entity', 'enabled'=>1, 'visible'=>0, 'default'=>1, 'notnull'=>1, 'index'=>1, 'position'=>20),
|
||||||
|
'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>500),
|
||||||
|
'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>501),
|
||||||
|
'fk_user_author'=>array('type'=>'integer', 'label'=>'UserAuthor', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'position'=>510, 'foreignkey'=>'llx_user.rowid'),
|
||||||
|
'fk_user_modif' =>array('type'=>'integer', 'label'=>'UserModif', 'enabled'=>1, 'visible'=>-2, 'notnull'=>-1, 'position'=>511)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int Entity
|
* @var int Entity
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -764,7 +764,7 @@ if (empty($reshook))
|
|||||||
|
|
||||||
if ($user->rights->stock->mouvement->creer)
|
if ($user->rights->stock->mouvement->creer)
|
||||||
{
|
{
|
||||||
if (! $variants) {
|
if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) {
|
||||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=correction">' . $langs->trans("CorrectStock") . '</a>';
|
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=correction">' . $langs->trans("CorrectStock") . '</a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -780,7 +780,7 @@ if (empty($reshook))
|
|||||||
//if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch())
|
//if (($user->rights->stock->mouvement->creer) && ! $object->hasbatch())
|
||||||
if ($user->rights->stock->mouvement->creer)
|
if ($user->rights->stock->mouvement->creer)
|
||||||
{
|
{
|
||||||
if (! $variants) {
|
if (! $variants || ! empty($conf->global->VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT)) {
|
||||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=transfert">' . $langs->trans("TransferStock") . '</a>';
|
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?id=' . $object->id . '&action=transfert">' . $langs->trans("TransferStock") . '</a>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -804,8 +804,8 @@ if (! $variants) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
print '<div class="div-table-responsive">';
|
print '<div class="div-table-responsive">';
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td colspan="4">' . $langs->trans("Warehouse") . '</td>';
|
print '<td colspan="4">' . $langs->trans("Warehouse") . '</td>';
|
||||||
print '<td class="right">' . $langs->trans("NumberOfUnit") . '</td>';
|
print '<td class="right">' . $langs->trans("NumberOfUnit") . '</td>';
|
||||||
@ -924,7 +924,8 @@ if (! $variants) {
|
|||||||
print '<td class="center">' . dol_print_date($pdluo->eatby, 'day') . '</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="center">' . dol_print_date($pdluo->sellby, 'day') . '</td>';
|
||||||
print '<td class="right">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
|
print '<td class="right">' . $pdluo->qty . ($pdluo->qty < 0 ? ' ' . img_warning() : '') . '</td>';
|
||||||
print '<td colspan="4"></td></tr>';
|
print '<td colspan="4"></td>';
|
||||||
|
print '</tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -932,12 +933,13 @@ if (! $variants) {
|
|||||||
}
|
}
|
||||||
} else dol_print_error($db);
|
} else dol_print_error($db);
|
||||||
|
|
||||||
|
// Total line
|
||||||
print '<tr class="liste_total"><td class="right liste_total" colspan="4">' . $langs->trans("Total") . ':</td>';
|
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">' . price2num($total, 'MS') . '</td>';
|
||||||
print '<td class="liste_total right">';
|
print '<td class="liste_total right">';
|
||||||
print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : ' '); // This value may have rounding errors
|
print ($totalwithpmp ? price(price2num($totalvalue / $totalwithpmp, 'MU')) : ' '); // This value may have rounding errors
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Value purchase
|
// Value purchase
|
||||||
print '<td class="liste_total right">';
|
print '<td class="liste_total right">';
|
||||||
print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : ' ';
|
print $totalvalue ? price(price2num($totalvalue, 'MT'), 1) : ' ';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -945,12 +947,13 @@ if (! $variants) {
|
|||||||
if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : ' ');
|
if (empty($conf->global->PRODUIT_MULTIPRICES)) print ($total ? price($totalvaluesell / $total, 1) : ' ');
|
||||||
else print $langs->trans("Variable");
|
else print $langs->trans("Variable");
|
||||||
print '</td>';
|
print '</td>';
|
||||||
// Value to sell
|
// Value to sell
|
||||||
print '<td class="liste_total right">';
|
print '<td class="liste_total right">';
|
||||||
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1);
|
if (empty($conf->global->PRODUIT_MULTIPRICES)) print price(price2num($totalvaluesell, 'MT'), 1);
|
||||||
else print $langs->trans("Variable");
|
else print $langs->trans("Variable");
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@ -1073,6 +1076,7 @@ if (! $variants) {
|
|||||||
print '<tr class="liste_total">';
|
print '<tr class="liste_total">';
|
||||||
print '<td colspan="4" class="left">'.$langs->trans("Total").'</td>';
|
print '<td colspan="4" class="left">'.$langs->trans("Total").'</td>';
|
||||||
print '<td class="right">'.$stock_total.'</td>';
|
print '<td class="right">'.$stock_total.'</td>';
|
||||||
|
print '<td></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1384,6 +1384,9 @@ div.nopadding {
|
|||||||
.pictomodule {
|
.pictomodule {
|
||||||
width: 14px;
|
width: 14px;
|
||||||
}
|
}
|
||||||
|
.pictomodule {
|
||||||
|
width: 14px;
|
||||||
|
}
|
||||||
.fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit,
|
.fiche .arearef img.pictoedit, .fiche .arearef span.pictoedit,
|
||||||
.fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit,
|
.fiche .fichecenter img.pictoedit, .fiche .fichecenter span.pictoedit,
|
||||||
.tagtdnote span.pictoedit {
|
.tagtdnote span.pictoedit {
|
||||||
|
|||||||
@ -377,6 +377,7 @@ if (! empty($id) || ! empty($ref))
|
|||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
$listofvariantselected = '';
|
||||||
|
|
||||||
// Create or edit a varian
|
// Create or edit a varian
|
||||||
if ($action == 'add' || ($action == 'edit')) {
|
if ($action == 'add' || ($action == 'edit')) {
|
||||||
@ -386,7 +387,7 @@ if (! empty($id) || ! empty($ref))
|
|||||||
//print dol_fiche_head();
|
//print dol_fiche_head();
|
||||||
$features = $_SESSION['addvariant_'.$object->id];
|
$features = $_SESSION['addvariant_'.$object->id];
|
||||||
//First, sanitize
|
//First, sanitize
|
||||||
print '<div id="parttoaddvariant">';
|
$listofvariantselected = '<div id="parttoaddvariant">';
|
||||||
if (! empty($features)) {
|
if (! empty($features)) {
|
||||||
foreach ($features as $feature) {
|
foreach ($features as $feature) {
|
||||||
|
|
||||||
@ -400,16 +401,14 @@ if (! empty($id) || ! empty($ref))
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<i>' . $prodattr->label . '</i>:'. $prodattr_val->value . ' ';
|
$listofvariantselected .= '<i>' . $prodattr->label . '</i>:'. $prodattr_val->value . ' ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</div>';
|
$listofvariantselected .= '</div>';
|
||||||
print '<br><br>';
|
|
||||||
//print dol_fiche_end();
|
//print dol_fiche_end();
|
||||||
} else {
|
} else {
|
||||||
$title = $langs->trans('EditProductCombination');
|
$title = $langs->trans('EditProductCombination');
|
||||||
}
|
}
|
||||||
print load_fiche_titre($title);
|
|
||||||
|
|
||||||
if ($action == 'add') {
|
if ($action == 'add') {
|
||||||
$prodattr_all = $prodattr->fetchAll();
|
$prodattr_all = $prodattr->fetchAll();
|
||||||
@ -499,6 +498,10 @@ if (! empty($id) || ! empty($ref))
|
|||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
print load_fiche_titre($title);
|
||||||
|
|
||||||
print '<form method="post" id="combinationform" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
print '<form method="post" id="combinationform" action="'.$_SERVER["PHP_SELF"].'">'."\n";
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="id" value="'.dol_escape_htmltag($id).'">'."\n";
|
print '<input type="hidden" name="id" value="'.dol_escape_htmltag($id).'">'."\n";
|
||||||
@ -507,9 +510,9 @@ if (! empty($id) || ! empty($ref))
|
|||||||
print '<input type="hidden" name="valueid" value="' . $valueid .'">'."\n";
|
print '<input type="hidden" name="valueid" value="' . $valueid .'">'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
print dol_fiche_head();
|
print dol_fiche_head();
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<table class="border" style="width: 100%">
|
<table class="border" style="width: 100%">
|
||||||
<?php if ($action == 'add') { ?>
|
<?php if ($action == 'add') { ?>
|
||||||
@ -524,6 +527,7 @@ if (! empty($id) || ! empty($ref))
|
|||||||
print '<option value="-1"> </option>';
|
print '<option value="-1"> </option>';
|
||||||
foreach ($prodattr_all as $attr)
|
foreach ($prodattr_all as $attr)
|
||||||
{
|
{
|
||||||
|
//print '<option value="'.$attr->id.'"'.($attr->id == GETPOST('attribute', 'int') ? ' selected="selected"' : '').'>'.$attr->label.'</option>';
|
||||||
print '<option value="'.$attr->id.'">'.$attr->label.'</option>';
|
print '<option value="'.$attr->id.'">'.$attr->label.'</option>';
|
||||||
}
|
}
|
||||||
print '</select>';
|
print '</select>';
|
||||||
@ -561,6 +565,10 @@ if (! empty($id) || ! empty($ref))
|
|||||||
<input type="submit" class="button" name="selectvariant" id="selectvariant" value="<?php echo dol_escape_htmltag($langs->trans("SelectCombination")); ?>">
|
<input type="submit" class="button" name="selectvariant" id="selectvariant" value="<?php echo dol_escape_htmltag($langs->trans("SelectCombination")); ?>">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr><td></td><td>
|
||||||
|
<?php echo $listofvariantselected; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
@ -781,8 +789,8 @@ if (! empty($id) || ! empty($ref))
|
|||||||
</td>
|
</td>
|
||||||
<td class="right"><?php echo ($currcomb->variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?></td>
|
<td class="right"><?php echo ($currcomb->variation_price >= 0 ? '+' : '').price($currcomb->variation_price).($currcomb->variation_price_percentage ? ' %' : '') ?></td>
|
||||||
<?php if ($object->isProduct()) print '<td class="right">'.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight').'</td>'; ?>
|
<?php if ($object->isProduct()) print '<td class="right">'.($currcomb->variation_weight >= 0 ? '+' : '').price($currcomb->variation_weight).' '.measuring_units_string($prodstatic->weight_units, 'weight').'</td>'; ?>
|
||||||
<td class="center;"><?php echo $prodstatic->getLibStatut(2, 0) ?></td>
|
<td class="center"><?php echo $prodstatic->getLibStatut(2, 0) ?></td>
|
||||||
<td class="center;"><?php echo $prodstatic->getLibStatut(2, 1) ?></td>
|
<td class="center"><?php echo $prodstatic->getLibStatut(2, 1) ?></td>
|
||||||
<td class="right">
|
<td class="right">
|
||||||
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=edit&valueid='.$currcomb->id, 2) ?>"><?php echo img_edit() ?></a>
|
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=edit&valueid='.$currcomb->id, 2) ?>"><?php echo img_edit() ?></a>
|
||||||
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=delete&valueid='.$currcomb->id, 2) ?>"><?php echo img_delete() ?></a>
|
<a class="paddingleft paddingright" href="<?php echo dol_buildpath('/variants/combinations.php?id='.$id.'&action=delete&valueid='.$currcomb->id, 2) ?>"><?php echo img_delete() ?></a>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user