Skip to content

Commit

Permalink
Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into d…
Browse files Browse the repository at this point in the history
…evelop
  • Loading branch information
eldy committed Jul 25, 2017
2 parents 6fcb54b + 7e19255 commit e35a974
Show file tree
Hide file tree
Showing 16 changed files with 142 additions and 74 deletions.
2 changes: 1 addition & 1 deletion htdocs/accountancy/class/bookkeeping.class.php
Expand Up @@ -1260,7 +1260,7 @@ public function createFromClone($fromid) {

global $user;
$error = 0;
$object = new Accountingbookkeeping($this->db);
$object = new BookKeeping($this->db);

$this->db->begin();

Expand Down
10 changes: 5 additions & 5 deletions htdocs/compta/bank/class/api_bankaccounts.class.php
Expand Up @@ -72,7 +72,7 @@ function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."bank_account as t";
$sql.= ' WHERE t.entity IN ('.getEntity('bank_account').')';
// Add sql filters
if ($sqlfilters)
if ($sqlfilters)
{
if (! DolibarrApi::_checkFilters($sqlfilters))
{
Expand All @@ -81,18 +81,18 @@ function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0
$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
}

$sql.= $this->db->order($sortfield, $sortorder);
if ($limit) {
if ($page < 0)
{
$page = 0;
}
$offset = $limit * $page;

$sql.= $this->db->plimit($limit + 1, $offset);
}

dol_syslog("API Rest request");
$result = $this->db->query($sql);

Expand Down Expand Up @@ -236,7 +236,7 @@ function delete($id)
function _validate($data)
{
$account = array();
foreach (Accounts::$FIELDS as $field) {
foreach (BankAccounts::$FIELDS as $field) {
if (! isset($data[$field]))
throw new RestException(400, "$field field missing");
$account[$field] = $data[$field];
Expand Down
31 changes: 28 additions & 3 deletions htdocs/compta/facture/card.php
Expand Up @@ -400,6 +400,22 @@
setEventMessages($discount->error, $discount->errors, 'errors');
}
}

if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
{
$outputlangs = $langs;
$newlang = '';
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09');
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang;
if (! empty($newlang)) {
$outputlangs = new Translate("", $conf);
$outputlangs->setDefaultLang($newlang);
}
$ret = $object->fetch($id); // Reload to get new records

$result = $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
if ($result < 0) setEventMessages($object->error, $object->errors, 'errors');
}
}

else if ($action == 'setref_client' && $user->rights->facture->creer)
Expand Down Expand Up @@ -1105,8 +1121,17 @@

foreach ($amountdeposit as $tva => $amount)
{
$arraylist = array('amount' => 'FixAmount','variable' => 'VarAmount');
$descline = $langs->trans('Deposit');
$descline.= ' - '.$langs->trans($arraylist[$typeamount]);
if ($typeamount=='amount') {
$descline.= ' ('. price($valuedeposit, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).')';
} elseif ($typeamount=='variable') {
$descline.= ' ('. $valuedeposit.'%)';
}
$descline.= ' - '.$srcobject->ref;
$result = $object->addline(
$langs->trans('Deposit'),
$descline,
$amount, // subprice
1, // quantity
$tva, // vat rate
Expand All @@ -1128,8 +1153,8 @@
0,
0,
0,
0,
$langs->trans('Deposit')
0
//,$langs->trans('Deposit') //Deprecated
);
}

Expand Down
18 changes: 18 additions & 0 deletions htdocs/compta/paiement/class/paiement.class.php
Expand Up @@ -337,6 +337,24 @@ function create($user,$closepaidinvoices=0)
$error++;
}
}
}

if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
{
$outputlangs = $langs;
if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $invoice->thirdparty->default_lang;
if (! empty($newlang)) {
$outputlangs = new Translate("", $conf);
$outputlangs->setDefaultLang($newlang);
}
$ret = $invoice->fetch($id); // Reload to get new records

$result = $invoice->generateDocument($invoice->modelpdf, $outputlangs);
if ($result < 0) {
setEventMessages($invoice->error, $invoice->errors, 'errors');
$error++;
}

}
}
}
Expand Down
43 changes: 36 additions & 7 deletions htdocs/core/class/extrafields.class.php
Expand Up @@ -281,7 +281,7 @@ private function create($attrname, $type='varchar', $length=255, $elementtype='m
*/
private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $elementtype='member', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list=0, $ishidden=0, $default='', $computed='')
{
global $conf;
global $conf,$user;

if ($elementtype == 'thirdparty') $elementtype='societe';
if ($elementtype == 'contact') $elementtype='socpeople';
Expand All @@ -305,7 +305,27 @@ private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $
$params='';
}

$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(name, label, type, pos, size, entity, elementtype, fieldunique, fieldrequired, param, alwayseditable, perms, list, ishidden, fielddefault, fieldcomputed)";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(";
$sql.= " name,";
$sql.= " label,";
$sql.= " type,";
$sql.= " pos,";
$sql.= " size,";
$sql.= " entity,";
$sql.= " elementtype,";
$sql.= " fieldunique,";
$sql.= " fieldrequired,";
$sql.= " param,";
$sql.= " alwayseditable,";
$sql.= " perms,";
$sql.= " list,";
$sql.= " ishidden,";
$sql.= " fielddefault,";
$sql.= " fieldcomputed,";
$sql.= " fk_user_author,";
$sql.= " fk_user_modif,";
$sql.= " datec";
$sql.= " )";
$sql.= " VALUES('".$attrname."',";
$sql.= " '".$this->db->escape($label)."',";
$sql.= " '".$type."',";
Expand All @@ -321,9 +341,12 @@ private function create_label($attrname, $label='', $type='', $pos=0, $size=0, $
$sql.= " ".$list.",";
$sql.= " ".$ishidden.",";
$sql.= " ".($default?"'".$this->db->escape($default)."'":"null").",";
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null");
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
$sql .= " " . $user->id . ",";
$sql .= " " . $user->id . ",";
$sql .= "'" . $this->db->idate(dol_now()) . "'";
$sql.=')';

dol_syslog(get_class($this)."::create_label", LOG_DEBUG);
if ($this->db->query($sql))
{
Expand Down Expand Up @@ -562,7 +585,7 @@ function update($attrname,$label,$type,$length,$elementtype,$unique=0,$required=
*/
private function update_label($attrname,$label,$type,$size,$elementtype,$unique=0,$required=0,$pos=0,$param='',$alwayseditable=0,$perms='',$list=0,$ishidden=0,$default='',$computed='')
{
global $conf;
global $conf, $user;
dol_syslog(get_class($this)."::update_label ".$attrname.", ".$label.", ".$type.", ".$size.", ".$elementtype.", ".$unique.", ".$required.", ".$pos.", ".$alwayseditable.", ".$perms.", ".$list.", ".$ishidden.", ".$default.", ".$computed);

// Clean parameters
Expand Down Expand Up @@ -603,7 +626,10 @@ private function update_label($attrname,$label,$type,$size,$elementtype,$unique=
$sql.= " list,";
$sql.= " ishidden,";
$sql.= " fielddefault,";
$sql.= " fieldcomputed";
$sql.= " fieldcomputed,";
$sql.= " fk_user_author,";
$sql.= " fk_user_modif,";
$sql.= " datec";
$sql.= ") VALUES (";
$sql.= "'".$attrname."',";
$sql.= " ".$conf->entity.",";
Expand All @@ -620,7 +646,10 @@ private function update_label($attrname,$label,$type,$size,$elementtype,$unique=
$sql.= " ".$list.", ";
$sql.= " ".$ishidden.", ";
$sql.= " ".($default?"'".$this->db->escape($default)."'":"null").",";
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null");
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
$sql .= " " . $user->id . ",";
$sql .= " " . $user->id . ",";
$sql .= "'" . $this->db->idate(dol_now()) . "'";
$sql.= ")";

$resql2=$this->db->query($sql);
Expand Down
Expand Up @@ -211,7 +211,7 @@ function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidede
if (! is_object($object))
{
$id = $object;
$object = new Contract($this->db);
$object = new Contrat($this->db);
$result=$object->fetch($id);
if ($result < 0)
{
Expand Down
Expand Up @@ -167,7 +167,7 @@ function info($langs)
$texte.=$file['name'].'<br>';
}
$texte.='<div id="div_'.get_class($this).'">';

if ($conf->global->MAIN_PROPAL_CHOOSE_ODT_DOCUMENT > 0)
{
// Model for creation
Expand Down Expand Up @@ -252,7 +252,7 @@ function write_file($object,$outputlangs,$srctemplatepath,$hidedetails=0,$hidede
if (! is_object($object))
{
$id = $object;
$object = new Propale($this->db);
$object = new Propal($this->db);
$result=$object->fetch($id);
if ($result < 0)
{
Expand Down
78 changes: 40 additions & 38 deletions htdocs/core/tpl/bloc_showhide.tpl.php
Expand Up @@ -21,43 +21,45 @@
if (isset($object->extraparams[$blocname]['showhide'])) $hide = (empty($object->extraparams[$blocname]['showhide']) ? true : false);

?>

<!-- BEGIN PHP TEMPLATE BLOC SHOW/HIDE -->

<script type="text/javascript">
$(document).ready(function() {
$("#hide-<?php echo $blocname ?>").click(function(){
setShowHide(0);
$("#<?php echo $blocname ?>_bloc").hide("blind", {direction: "vertical"}, 300).removeClass("nohideobject");
$(this).hide();
$("#show-<?php echo $blocname ?>").show();
});
$("#show-<?php echo $blocname ?>").click(function(){
setShowHide(1);
$("#<?php echo $blocname ?>_bloc").show("blind", {direction: "vertical"}, 300).addClass("nohideobject");
$(this).hide();
$("#hide-<?php echo $blocname ?>").show();
});
function setShowHide(status) {
var id = <?php echo $object->id; ?>;
var element = '<?php echo $object->element; ?>';
var htmlelement = '<?php echo $blocname ?>';
var type = 'showhide';

$.get("<?php echo dol_buildpath('/core/ajax/extraparams.php', 1); ?>?id="+id+"&element="+element+"&htmlelement="+htmlelement+"&type="+type+"&value="+status);
}
});
</script>

<div style="float:right; position: relative; top: 3px; right:5px;" id="hide-<?php echo $blocname ?>" class="linkobject<?php echo ($hide ? ' hideobject' : ''); ?>"><?php echo img_picto('', '1uparrow.png'); ?></div>
<div style="float:right; position: relative; top: 3px; right:5px;" id="show-<?php echo $blocname ?>" class="linkobject<?php echo ($hide ? '' : ' hideobject'); ?>"><?php echo img_picto('', '1downarrow.png'); ?></div>
<div id="<?php echo $blocname ?>_title" class="liste_titre"><?php echo $title; ?></div>

<div id="<?php echo $blocname ?>_bloc" class="<?php echo ($hide ? 'hideobject' : 'nohideobject'); ?>">

<?php include DOL_DOCUMENT_ROOT.'/core/tpl/'.$blocname.'.tpl.php'; ?>

</div>
<br>

<!-- END PHP TEMPLATE BLOC SHOW/HIDE -->
<?php
print '<script type="text/javascript">'."\n";
print '$(document).ready(function() {'."\n";
print '$("#hide-'.$blocname.'").click(function(){'."\n";
print ' setShowHide(0);'."\n";
print ' $("#'.$blocname.'_bloc").hide("blind", {direction: "vertical"}, 300).removeClass("nohideobject");'."\n";
print ' $(this).hide();'."\n";
print ' $("#show-'.$blocname.'").show();'."\n";
print '});'."\n";

print '$("#show-'.$blocname.'").click(function(){'."\n";
print ' setShowHide(1);'."\n";
print ' $("#'.$blocname.'").show("blind", {direction: "vertical"}, 300).addClass("nohideobject");'."\n";
print ' $(this).hide();'."\n";
print ' $("#hide-'.$blocname.'").show();'."\n";
print '});'."\n";

print 'function setShowHide(status) {'."\n";
print ' var id = '.$object->id."\n";
print ' var element = '.$object->element."\n";
print ' var htmlelement = '.$blocname."\n";
print ' var type = "showhide";'."\n";
print ' $.get("'.dol_buildpath('/core/ajax/extraparams.php', 1);
print '?id="+id+"&element="+element+"&htmlelement="+htmlelement+"&type="+type+"&value="+status);'."\n";
print '}'."\n";

print '});'."\n";
print '</script>'."\n";

print '<div style="float:right; position: relative; top: 3px; right:5px;" id="hide-'.$blocname.'"';
print ' class="linkobject'.($hide ? ' hideobject' : '').'">'.img_picto('', '1uparrow.png').'</div>'."\n";
print '<div style="float:right; position: relative; top: 3px; right:5px;" id="show-'.$blocname.'"';
print ' class="linkobject'.($hide ? '' : ' hideobject').'">'.img_picto('', '1downarrow.png').'</div>'."\n";
print '<div id="'.$blocname.'_title" class="liste_titre">'.$title.'</div>'."\n";
print '<div id="'.$blocname.'_bloc" class="'.($hide ? 'hideobject' : 'nohideobject')'">'."\n";

include DOL_DOCUMENT_ROOT.'/core/tpl/'.$blocname.'.tpl.php';
print '</div><br>';
?>
<!-- END PHP TEMPLATE BLOC SHOW/HIDE -->
2 changes: 1 addition & 1 deletion htdocs/fourn/facture/list.php
Expand Up @@ -494,7 +494,7 @@

if (! GETPOST('cancel'))
{
$objecttmp=new FactureFourn($db);
$objecttmp=new FactureFournisseur($db);
$listofselectedid=array();
$listofselectedthirdparties=array();
$listofselectedref=array();
Expand Down
2 changes: 1 addition & 1 deletion htdocs/index.php
Expand Up @@ -448,7 +448,7 @@
}

// Number of supplier invoices (has paid)
if (! empty($conf->supplier_invoice->enabled) && ! empty($conf->facture->enabled) && $user->rights->facture->lire)
if (! empty($conf->supplier_invoice->enabled) && $user->rights->fournisseur->facture->lire)
{
include_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
$board=new FactureFournisseur($db);
Expand Down
6 changes: 5 additions & 1 deletion htdocs/install/mysql/tables/llx_extrafields.sql
Expand Up @@ -37,5 +37,9 @@ create table llx_extrafields
param text, -- extra parameters to define possible values of field
list integer DEFAULT 0, -- list of values for field that are combo lists
langs varchar(24), -- example: fileofmymodule@mymodule
ishidden integer DEFAULT 0 -- ??? example of use case ???
ishidden integer DEFAULT 0, -- Can be foreign key of external system
fk_user_author integer, -- user making creation
fk_user_modif integer, -- user making last change
datec datetime, -- date de creation
tms timestamp
)ENGINE=innodb;
1 change: 1 addition & 0 deletions htdocs/install/pgsql/functions/functions.sql
Expand Up @@ -165,6 +165,7 @@ CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_usergroup_extrafield
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_product_price_by_qty FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_website_page FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();
CREATE TRIGGER update_customer_modtime BEFORE UPDATE ON llx_extrafields FOR EACH ROW EXECUTE PROCEDURE update_modified_column_tms();


-- Add triggers for timestamp fields named date_m
Expand Down
4 changes: 0 additions & 4 deletions htdocs/master.inc.php
Expand Up @@ -160,10 +160,6 @@
{
$conf->entity = DOLENTITY;
}
else if (!empty($_COOKIE['DOLENTITY'])) // For other application with MultiCompany module (TODO: We should remove this. entity to use should never be stored into client side)
{
$conf->entity = $_COOKIE['DOLENTITY'];
}

// Sanitize entity
if (! is_numeric($conf->entity)) $conf->entity=1;
Expand Down
4 changes: 2 additions & 2 deletions htdocs/product/card.php
Expand Up @@ -990,11 +990,11 @@
// Stock min level
if ($type != 1 && ! empty($conf->stock->enabled))
{
print '<tr><td>'.$langs->trans("StockLimit").'</td><td>';
print '<tr><td>'.$form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1).'</td><td>';
print '<input name="seuil_stock_alerte" class="maxwidth50" value="'.GETPOST('seuil_stock_alerte').'">';
print '</td>';
// Stock desired level
print '<td>'.$langs->trans("DesiredStock").'</td><td>';
print '<td>'.$form->textwithpicto($langs->trans("DesiredStock"), $langs->trans("DesiredStockDesc"), 1).'</td><td>';
print '<input name="desiredstock" class="maxwidth50" value="'.GETPOST('desiredstock').'">';
print '</td></tr>';
}
Expand Down
2 changes: 1 addition & 1 deletion htdocs/product/stock/product.php
Expand Up @@ -614,7 +614,7 @@
}

// Stock alert threshold
print '<tr><td>'.$form->editfieldkey("StockLimit",'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer).'</td><td>';
print '<tr><td>'.$form->editfieldkey($form->textwithpicto($langs->trans("StockLimit"), $langs->trans("StockLimitDesc"), 1),'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer).'</td><td>';
print $form->editfieldval("StockLimit",'seuil_stock_alerte',$object->seuil_stock_alerte,$object,$user->rights->produit->creer,'string');
print '</td></tr>';

Expand Down

0 comments on commit e35a974

Please sign in to comment.