Merge branch 'Upstream/develop'
This commit is contained in:
commit
9f92446dba
@ -129,7 +129,7 @@ case "$1" in
|
||||
then
|
||||
# Create an empty conf.php with permission to web server
|
||||
setup_empty_conf
|
||||
else
|
||||
#else
|
||||
# File already exist. We add params not found.
|
||||
#echo Add new params to overwrite path to use shared libraries/fonts
|
||||
#grep -q -c "dolibarr_lib_ADODB_PATH" $config || [ ! -d "/usr/share/php/adodb" ] || echo "<?php \$dolibarr_lib_ADODB_PATH='/usr/share/php/adodb'; ?>" >> $config
|
||||
|
||||
@ -32,7 +32,7 @@ AppPublisherURL=http://www.nltechno.com
|
||||
AppSupportURL=http://www.dolibarr.org
|
||||
AppUpdatesURL=http://www.dolibarr.org
|
||||
AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql softwares.
|
||||
AppCopyright=Copyright (C) 2008-2013 Laurent Destailleur, NLTechno
|
||||
AppCopyright=Copyright (C) 2008-2014 Laurent Destailleur, NLTechno
|
||||
DefaultDirName=c:\dolibarr
|
||||
DefaultGroupName=Dolibarr
|
||||
;LicenseFile=COPYING
|
||||
|
||||
@ -55,6 +55,8 @@ print '</div>';
|
||||
print '<div class="principal">';
|
||||
|
||||
$page=GETPOST('menu','alpha');
|
||||
if (empty($page)) $page='facturation';
|
||||
|
||||
if (in_array(
|
||||
$page,
|
||||
array(
|
||||
|
||||
@ -65,9 +65,10 @@ if (! empty($_GET['zipcode']) || ! empty($_GET['town']))
|
||||
$sql = "SELECT z.rowid, z.zip, z.town, z.fk_county, z.fk_pays as fk_country";
|
||||
$sql.= ", c.rowid as fk_country, c.code as country_code, c.label as country";
|
||||
$sql.= ", d.rowid as fk_county, d.code_departement as county_code, d.nom as county";
|
||||
$sql.= " FROM (".MAIN_DB_PREFIX."c_ziptown as z,".MAIN_DB_PREFIX."c_country as c)";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_ziptown as z";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX ."c_departements as d ON z.fk_county = d.rowid";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r ON d.fk_region = r.code_region";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_regions as r ON d.fk_region = r.code_region,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."c_country as c";
|
||||
$sql.= " WHERE z.fk_pays = c.rowid";
|
||||
$sql.= " AND z.active = 1 AND c.active = 1";
|
||||
if ($zipcode) $sql.=" AND z.zip LIKE '" . $db->escape($zipcode) . "%'";
|
||||
@ -81,8 +82,8 @@ if (! empty($_GET['zipcode']) || ! empty($_GET['town']))
|
||||
$sql.= ", c.code as country_code, c.label as country";
|
||||
$sql.= ", d.code_departement as county_code , d.nom as county";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX.'societe as s';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX ."c_departements as d ON fk_departement = d.rowid";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.'c_country as c ON fk_pays = c.rowid';
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX ."c_departements as d ON s.fk_departement = d.rowid";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid';
|
||||
$sql.= " WHERE";
|
||||
if ($zipcode) $sql.= " s.zip LIKE '".$db->escape($zipcode)."%'";
|
||||
if ($town) $sql.= " s.town LIKE '%" . $db->escape($town) . "%'";
|
||||
|
||||
@ -48,7 +48,7 @@ abstract class CommonObject
|
||||
public $array_options=array();
|
||||
|
||||
public $thirdparty;
|
||||
|
||||
|
||||
public $linkedObjectsIds; // Loaded by ->fetchObjectLinked
|
||||
public $linkedObjects; // Loaded by ->fetchObjectLinked
|
||||
|
||||
@ -2784,7 +2784,7 @@ abstract class CommonObject
|
||||
// Price HT
|
||||
print '<td align="right" width="80"><label for="price_ht">'.$langs->trans('PriceUHT').'</label></td>';
|
||||
|
||||
if ($conf->global->MAIN_FEATURES_LEVEL > 1) print '<td align="right" width="80"> </td>';
|
||||
if ($inputalsopricewithtax) print '<td align="right" width="80"> </td>';
|
||||
|
||||
// Qty
|
||||
print '<td align="right" width="50"><label for="qty">'.$langs->trans('Qty').'</label></td>';
|
||||
|
||||
@ -298,6 +298,9 @@ class DoliDBPgsql extends DoliDB
|
||||
$line=str_replace(' LIKE \'',' ILIKE \'',$line);
|
||||
$line=str_replace(' LIKE BINARY \'',' LIKE \'',$line);
|
||||
|
||||
// Replace INSERT IGNORE into INSERT
|
||||
$line=preg_replace('/^INSERT IGNORE/','INSERT',$line);
|
||||
|
||||
// Delete using criteria on other table must not declare twice the deleted table
|
||||
// DELETE FROM tabletodelete USING tabletodelete, othertable -> DELETE FROM tabletodelete USING othertable
|
||||
if (preg_match('/DELETE FROM ([a-z_]+) USING ([a-z_]+), ([a-z_]+)/i',$line,$reg))
|
||||
|
||||
@ -25,8 +25,9 @@
|
||||
|
||||
|
||||
/**
|
||||
* Get value of an HTML field, do Ajax process and show result.
|
||||
* Generic function that return javascript to add to a page to transform a common input field into an autocomplete field by calling an Ajax page (ex: /societe/ajaxcompanies.php).
|
||||
* The HTML field must be an input text with id=search_$htmlname.
|
||||
* This use the jQuery "autocomplete" function.
|
||||
*
|
||||
* @param string $selected Preselecte value
|
||||
* @param string $htmlname HTML name of input field
|
||||
@ -34,7 +35,7 @@
|
||||
* @param string $urloption More parameters on URL request
|
||||
* @param int $minLength Minimum number of chars to trigger that Ajax search
|
||||
* @param int $autoselect Automatic selection if just one value
|
||||
* @param array $ajaxoptions Multiple options array (Ex: array('update'=>array('field1','field2'...)) will reset field1 and field2 once select done
|
||||
* @param array $ajaxoptions Multiple options array (Ex: array('update'=>array('field1','field2'...)) will reset field1 and field2 once select done)
|
||||
* @return string Script
|
||||
*/
|
||||
function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLength=2, $autoselect=0, $ajaxoptions=array())
|
||||
@ -182,25 +183,28 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt
|
||||
}
|
||||
|
||||
/**
|
||||
* Get value of field, do Ajax process and return result
|
||||
* Generic function that return javascript to add to a page to transform a common input field into an autocomplete field by calling an Ajax page (ex: core/ajax/ziptown.php).
|
||||
* The Ajax page can also returns several values (json format) to fill several input fields.
|
||||
* The HTML field must be an input text with id=$htmlname.
|
||||
* This use the jQuery "autocomplete" function.
|
||||
*
|
||||
* @param string $htmlname Name of field
|
||||
* @param string $fields other fields to autocomplete
|
||||
* @param string $url Chemin du fichier de reponse : /chemin/fichier.php
|
||||
* @param string $htmlname HTML name of input field
|
||||
* @param string $fields Other fields to autocomplete
|
||||
* @param string $url URL for ajax request : /chemin/fichier.php
|
||||
* @param string $option More parameters on URL request
|
||||
* @param int $minLength Minimum number of chars to trigger that Ajax search
|
||||
* @param int $autoselect Automatic selection if just one value
|
||||
* @return string Script
|
||||
*/
|
||||
function ajax_multiautocompleter($htmlname,$fields,$url,$option='',$minLength=2,$autoselect=0)
|
||||
function ajax_multiautocompleter($htmlname, $fields, $url, $option='', $minLength=2, $autoselect=0)
|
||||
{
|
||||
$script = '<!-- Autocomplete -->'."\n";
|
||||
$script.= '<script type="text/javascript">';
|
||||
$script.= 'jQuery(document).ready(function() {
|
||||
var fields = '.json_encode($fields).';
|
||||
var length = fields.length;
|
||||
var nboffields = fields.length;
|
||||
var autoselect = '.$autoselect.';
|
||||
//alert(fields + " " + length);
|
||||
//alert(fields + " " + nboffields);
|
||||
|
||||
jQuery("input#'.$htmlname.'").autocomplete({
|
||||
dataType: "json",
|
||||
@ -214,7 +218,7 @@ function ajax_multiautocompleter($htmlname,$fields,$url,$option='',$minLength=2,
|
||||
if (item.states) {
|
||||
jQuery("#state_id").html(item.states);
|
||||
}
|
||||
for (i=0;i<length;i++) {
|
||||
for (i=0;i<nboffields;i++) {
|
||||
if (item[fields[i]]) { // If defined
|
||||
//alert(item[fields[i]]);
|
||||
jQuery("#" + fields[i]).val(item[fields[i]]);
|
||||
@ -226,8 +230,7 @@ function ajax_multiautocompleter($htmlname,$fields,$url,$option='',$minLength=2,
|
||||
});
|
||||
},
|
||||
select: function( event, ui ) {
|
||||
|
||||
for (i=0;i<length;i++) {
|
||||
for (i=0;i<nboffields;i++) {
|
||||
//alert(fields[i] + " = " + ui.item[fields[i]]);
|
||||
if (fields[i]=="selectcountry_id")
|
||||
{
|
||||
|
||||
@ -96,7 +96,7 @@ $coldisplay=-1; // We remove first td
|
||||
<td align="right"><?php $coldisplay++; ?><?php echo $form->load_tva('tva_tx',$line->tva_tx,$seller,$buyer,0,$line->info_bits,$line->product_type); ?></td>
|
||||
|
||||
<td align="right"><?php $coldisplay++; ?><input type="text" class="flat" size="8" id="price_ht" name="price_ht" value="<?php echo price($line->subprice,0,'',0); ?>"></td>
|
||||
<?php if ($conf->global->MAIN_FEATURES_LEVEL > 1) { ?>
|
||||
<?php if ($inputalsopricewithtax) { ?>
|
||||
<td align="right"><?php $coldisplay++; ?><input type="text" class="flat" size="8" id="price_ttc" name="price_ttc" value="<?php echo price($pu_ttc,0,'',0); ?>"></td>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
@ -17,9 +17,27 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* To use this template, the following var must be defined
|
||||
* Need to have following variables defined:
|
||||
* $object (invoice, order, ...)
|
||||
* $conf
|
||||
* $langs
|
||||
* $dateSelector
|
||||
* $forceall (0 by default, 1 for supplier invoices/orders)
|
||||
* $senderissupplier (0 by default, 1 for supplier invoices/orders)
|
||||
* $inputalsopricewithtax (0 by default, 1 to also show column with unit price including tax)
|
||||
*
|
||||
* $type, $text, $description, $line
|
||||
*/
|
||||
|
||||
$usemargins=0;
|
||||
if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element,array('facture','propal','commande'))) $usemargins=1;
|
||||
|
||||
global $forceall, $senderissupplier, $inputalsopricewithtax;
|
||||
if (empty($dateSelector)) $dateSelector=0;
|
||||
if (empty($forceall)) $forceall=0;
|
||||
if (empty($senderissupplier)) $senderissupplier=0;
|
||||
if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0;
|
||||
|
||||
?>
|
||||
<?php $coldisplay=0; ?>
|
||||
<!-- BEGIN PHP TEMPLATE objectline_view.tpl.php -->
|
||||
@ -100,7 +118,7 @@
|
||||
|
||||
<td align="right" class="nowrap"><?php $coldisplay++; ?><?php echo price($line->subprice); ?></td>
|
||||
|
||||
<?php if ($conf->global->MAIN_FEATURES_LEVEL > 1) { ?>
|
||||
<?php if ($inputalsopricewithtax) { ?>
|
||||
<td align="right" class="nowrap"><?php $coldisplay++; ?> </td>
|
||||
<?php } ?>
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
/**
|
||||
* \file htdocs/fichinter/fiche.php
|
||||
* \brief Fichier fiche intervention
|
||||
* \brief Page of intervention
|
||||
* \ingroup ficheinter
|
||||
*/
|
||||
|
||||
@ -200,7 +200,7 @@ else if ($action == 'add' && $user->rights->ficheinter->creer)
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||
$array_option = $extrafields->getOptionalsFromPost($extralabels);
|
||||
|
||||
|
||||
$object->array_options = $array_option;
|
||||
|
||||
$id = $object->create($user);
|
||||
@ -278,7 +278,7 @@ else if ($action == 'add' && $user->rights->ficheinter->creer)
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
$array_option = $extrafieldsline->getOptionalsFromPost($extralabelsline, $predef);
|
||||
|
||||
|
||||
|
||||
$result = $object->addline(
|
||||
$user,
|
||||
@ -317,9 +317,9 @@ else if ($action == 'add' && $user->rights->ficheinter->creer)
|
||||
$extrafields = new ExtraFields($db);
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
|
||||
$array_option = $extrafields->getOptionalsFromPost($extralabels);
|
||||
|
||||
|
||||
$object->array_options = $array_option;
|
||||
|
||||
|
||||
$result = $object->create($user);
|
||||
if ($result > 0)
|
||||
{
|
||||
@ -455,7 +455,7 @@ else if ($action == "addline" && $user->rights->ficheinter->creer)
|
||||
$date_intervention = dol_mktime(GETPOST('dihour','int'), GETPOST('dimin','int'), 0, GETPOST('dimonth','int'), GETPOST('diday','int'), GETPOST('diyear','int'));
|
||||
$duration = convertTime2Seconds(GETPOST('durationhour','int'), GETPOST('durationmin','int'));
|
||||
|
||||
|
||||
|
||||
// Extrafields
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
@ -553,7 +553,7 @@ else if ($action == 'updateline' && $user->rights->ficheinter->creer && GETPOST(
|
||||
$objectline->datei = $date_inter;
|
||||
$objectline->desc = $desc;
|
||||
$objectline->duration = $duration;
|
||||
|
||||
|
||||
// Extrafields
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
|
||||
@ -1469,18 +1469,18 @@ else if ($id > 0 || ! empty($ref))
|
||||
}
|
||||
|
||||
print '</tr>';
|
||||
|
||||
|
||||
$line = new FichinterLigne($db);
|
||||
$line->fetch($objp->rowid);
|
||||
|
||||
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelslines=$extrafieldsline->fetch_name_optionals_label($line->table_element);
|
||||
|
||||
|
||||
$line->fetch_optionals($line->rowid, $extralabelslines);
|
||||
|
||||
|
||||
print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>5));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Line in update mode
|
||||
@ -1509,17 +1509,17 @@ else if ($id > 0 || ! empty($ref))
|
||||
print '<td align="center" colspan="5" valign="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'">';
|
||||
print '<br><input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||
print '</tr>' . "\n";
|
||||
|
||||
|
||||
$line = new FichinterLigne($db);
|
||||
$line->fetch($objp->rowid);
|
||||
|
||||
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelslines=$extrafieldsline->fetch_name_optionals_label($line->table_element);
|
||||
$line->fetch_optionals($line->rowid, $extralabelslines);
|
||||
|
||||
|
||||
print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>5));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
$i++;
|
||||
@ -1570,16 +1570,16 @@ else if ($id > 0 || ! empty($ref))
|
||||
|
||||
print '<td align="center" valign="middle" colspan="4"><input type="submit" class="button" value="'.$langs->trans('Add').'" name="addline"></td>';
|
||||
print '</tr>';
|
||||
|
||||
|
||||
//Line extrafield
|
||||
|
||||
|
||||
$lineadd = new FichinterLigne($db);
|
||||
|
||||
|
||||
$extrafieldsline = new ExtraFields($db);
|
||||
$extralabelslines=$extrafieldsline->fetch_name_optionals_label($lineadd->table_element);
|
||||
|
||||
|
||||
print $lineadd->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>5));
|
||||
|
||||
|
||||
if (! $num) print '</table>';
|
||||
}
|
||||
|
||||
|
||||
@ -194,7 +194,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$this->extraparams = (array) json_decode($obj->extraparams, true);
|
||||
|
||||
$this->db->free($resql);
|
||||
|
||||
|
||||
// Retreive all extrafield
|
||||
// fetch optionals attributes and labels
|
||||
require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php');
|
||||
@ -658,7 +658,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('ORDER_SUPPLIER_APPROVE',$user);
|
||||
if ($result < 0) $error++;
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -722,7 +722,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
$error++;
|
||||
$this->db->rollback();
|
||||
}
|
||||
else
|
||||
else
|
||||
$this->db->commit();
|
||||
// End call triggers
|
||||
}
|
||||
@ -774,7 +774,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('ORDER_SUPPLIER_CANCEL',$user);
|
||||
if ($result < 0) $error++;
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
|
||||
if ($error == 0)
|
||||
@ -967,7 +967,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('ORDER_SUPPLIER_CREATE',$user);
|
||||
if ($result < 0)
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
@ -1037,7 +1037,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('ORDER_SUPPLIER_CLONE',$user);
|
||||
if ($result < 0) $error++;
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -1216,7 +1216,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
global $conf, $langs, $user;
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEORDER_SUPPLIER_CREATE',$user);
|
||||
if ($result < 0)
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
@ -1285,7 +1285,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
global $conf, $langs, $user;
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEORDER_SUPPLIER_DISPATCH',$user);
|
||||
if ($result < 0)
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
@ -1347,6 +1347,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
*/
|
||||
function deleteline($idline, $notrigger=0)
|
||||
{
|
||||
global $user,$langs,$conf;
|
||||
if ($this->statut == 0)
|
||||
{
|
||||
$this->db->begin();
|
||||
@ -1355,7 +1356,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
{
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEORDER_SUPPLIER_DELETE',$user);
|
||||
if ($result < 0) $error++;
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
@ -1403,7 +1404,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||
|
||||
$error = 0;
|
||||
|
||||
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('ORDER_SUPPLIER_DELETE',$user);
|
||||
if ($result < 0)
|
||||
@ -1412,7 +1413,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
return -1;
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
@ -1807,7 +1808,7 @@ class CommandeFournisseur extends CommonOrder
|
||||
global $conf, $langs, $user;
|
||||
// Call trigger
|
||||
$result=$this->call_trigger('LINEORDER_SUPPLIER_UPDATE',$user);
|
||||
if ($result < 0)
|
||||
if ($result < 0)
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
@ -1951,8 +1952,8 @@ class CommandeFournisseur extends CommonOrder
|
||||
while ($obj=$this->db->fetch_object($resql))
|
||||
{
|
||||
$this->nbtodo++;
|
||||
|
||||
$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
|
||||
|
||||
$date_to_test = empty($obj->delivery_date) ? $obj->datec : $obj->delivery_date;
|
||||
if ($obj->fk_statut != 3 && $this->db->jdate($date_to_test) < ($now - $conf->commande->fournisseur->warning_delay)) $this->nbtodolate++;
|
||||
}
|
||||
return 1;
|
||||
|
||||
@ -15,7 +15,7 @@ body
|
||||
/* Remove the background color to make it transparent */
|
||||
background-color: #fff;
|
||||
|
||||
margin: 20px;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.cke_editable
|
||||
|
||||
@ -297,6 +297,9 @@ create table llx_c_type_resource
|
||||
active tinyint DEFAULT 1 NOT NULL
|
||||
)ENGINE=innodb;
|
||||
|
||||
-- Fix llx_c_type_resource when you update from a 3.6-beta
|
||||
ALTER TABLE llx_c_type_resource CHANGE libelle label VARCHAR(64) NOT NULL;
|
||||
|
||||
ALTER TABLE llx_c_type_resource ADD UNIQUE INDEX uk_c_type_resource_id (label, code);
|
||||
|
||||
-- Fix :: account_parent must be an int, not an account number
|
||||
|
||||
@ -80,11 +80,12 @@ ContractStatusClosed=Closed
|
||||
ContractStatusRunning=Running
|
||||
ContractStatusExpired=expired
|
||||
ContractStatusOnHold=Not running
|
||||
ContractStatusToRun=A mettre en service
|
||||
ContractStatusToRun=To get running
|
||||
ContractNotRunning=This contract is not running
|
||||
ErrorProductAlreadyExists=A product with reference %s already exists.
|
||||
ErrorProductBadRefOrLabel=Wrong value for reference or label.
|
||||
ErrorProductClone=There was a problem while trying to clone the product or service.
|
||||
ErrorPriceCantBeLowerThanMinPrice=Error Price Can't Be Lower Than Minimum Price.
|
||||
Suppliers=Suppliers
|
||||
SupplierRef=Supplier's product ref.
|
||||
ShowProduct=Show product
|
||||
|
||||
@ -1205,7 +1205,7 @@ class Product extends CommonObject
|
||||
if ($newvat == '') $newvat=$this->tva_tx;
|
||||
if (! empty($newminprice) && ($newminprice > $newprice))
|
||||
{
|
||||
$this->error='ErrorPricCanBeLowerThanMinPrice';
|
||||
$this->error='ErrorPriceCantBeLowerThanMinPrice';
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@ -141,7 +141,7 @@ if ($object->id)
|
||||
print '</div>';
|
||||
|
||||
$modulepart = 'produit';
|
||||
$permission = $user->rights->produit->creer;
|
||||
$permission = (($object->type == 0 && $user->rights->produit->creer) || ($object->type == 1 && $user->rights->service->creer));
|
||||
$param = '&id=' . $object->id;
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php';
|
||||
}
|
||||
|
||||
@ -244,6 +244,10 @@ a:hover { text-decoration: underline; color: #000000;}
|
||||
input:focus, textarea:focus, button:focus, select:focus {
|
||||
box-shadow: 0 0 4px #8091BF;
|
||||
}
|
||||
textarea.cke_source:focus
|
||||
{
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
input, input.flat, textarea, textarea.flat, form.flat select, select.flat {
|
||||
font-size: <?php print $fontsize ?>px;
|
||||
@ -2555,6 +2559,10 @@ A.none, A.none:active, A.none:visited, A.none:hover {
|
||||
/* CKEditor */
|
||||
/* ============================================================================== */
|
||||
|
||||
.cke_editable
|
||||
{
|
||||
margin: 5px !important;
|
||||
}
|
||||
.cke_editor table, .cke_editor tr, .cke_editor td
|
||||
{
|
||||
border: 0px solid #FF0000 !important;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user