Merge branch '3.8' of git@github.com:Dolibarr/dolibarr.git into 3.8
This commit is contained in:
commit
8562bc2369
@ -494,6 +494,8 @@ Dolibarr better:
|
|||||||
- Fix: Bad permission assignments for stock movements actions
|
- Fix: Bad permission assignments for stock movements actions
|
||||||
- Fix: [ bug #2891 ] Category hooks do not work
|
- Fix: [ bug #2891 ] Category hooks do not work
|
||||||
- Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics
|
- Fix: [ bug #2696 ] Adding complementary attribute fails if code is numerics
|
||||||
|
- Fix: [ bug #3074 ] Accruals accounting use payment date instead of commitment date in turnover reports for salaries
|
||||||
|
- Fix: Not showing product supplier reference when page break
|
||||||
|
|
||||||
***** ChangeLog for 3.6.2 compared to 3.6.1 *****
|
***** ChangeLog for 3.6.2 compared to 3.6.1 *****
|
||||||
- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
|
- Fix: fix ErrorBadValueForParamNotAString error message in price customer multiprice.
|
||||||
@ -677,6 +679,7 @@ Fix: [ bug #2715 ] Statistics page has broken layout with long thirdparty names
|
|||||||
Fix: [ bug #2570 ] [Contacts] Page should not process if ID is invalid
|
Fix: [ bug #2570 ] [Contacts] Page should not process if ID is invalid
|
||||||
Fix: [ bug #3268 ] SQL error when accessing thirdparty log page without a socid parameter
|
Fix: [ bug #3268 ] SQL error when accessing thirdparty log page without a socid parameter
|
||||||
Fix: [ bug #3180 ] formObjectOptions hook when editing thirdparty card does not print result
|
Fix: [ bug #3180 ] formObjectOptions hook when editing thirdparty card does not print result
|
||||||
|
Fix: [ bug #1791 ] Margin menu not available if any Finance module is not enabled
|
||||||
|
|
||||||
***** ChangeLog for 3.5.6 compared to 3.5.5 *****
|
***** ChangeLog for 3.5.6 compared to 3.5.5 *****
|
||||||
Fix: Avoid missing class error for fetch_thirdparty method #1973
|
Fix: Avoid missing class error for fetch_thirdparty method #1973
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
# This directory contains script example to use ansible to deploy or maitains dolibarr instances
|
|
||||||
|
|
||||||
This is a quick tutorial:
|
|
||||||
|
|
||||||
* Install ansible:
|
|
||||||
> apt-get install ansible
|
|
||||||
|
|
||||||
* Add ip of server to manage into
|
|
||||||
/etc/ansible/hosts
|
|
||||||
|
|
||||||
* Deploy public key to managed servers
|
|
||||||
- authorized_key: user=charlie key="{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
#!/usr/bin/env ansible-playbook
|
|
||||||
|
|
||||||
# Run script with ansible-playbook deploydev.yml
|
|
||||||
# or ./deploydev.yml
|
|
||||||
|
|
||||||
- name: Configure webserver with apache
|
|
||||||
hosts: webservers
|
|
||||||
sudo: True
|
|
||||||
tasks:
|
|
||||||
- name: install apache
|
|
||||||
apt: name=apache update_cache=yes
|
|
||||||
- name: copy apache config file
|
|
||||||
copy: src=files/apachealias.conf dest=/etc/apache/conf.d/dolibarr_dev
|
|
||||||
#- name: enable configuration
|
|
||||||
# file: >
|
|
||||||
# dest=/etc/apache/sites-enabled/default
|
|
||||||
# src=/etc/apache/sites-available/default
|
|
||||||
# state=link
|
|
||||||
- name: copy info.html
|
|
||||||
template: src=templates/info.html.j2 dest=/var/www/dolibarr_dev/info.html
|
|
||||||
mode=0644
|
|
||||||
- name: restart apache
|
|
||||||
service: name=apache state=restarted
|
|
||||||
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
|
|
||||||
Alias /dolibarr_dev /var/www/dolibarr
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
[webservers]
|
|
||||||
testserver ansible_ssh_host=127.0.0.1 ansible_ssh_port=22
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Page info ansible</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Apache, configured by Ansible</h1>
|
|
||||||
<p>If you can see this, Ansible successfully installed apache.</p>
|
|
||||||
<p>{{ ansible_managed }}</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -3138,11 +3138,12 @@ class PropaleLigne extends CommonObjectLine
|
|||||||
if (empty($this->total_localtax2)) $this->total_localtax2=0;
|
if (empty($this->total_localtax2)) $this->total_localtax2=0;
|
||||||
if (empty($this->rang)) $this->rang=0;
|
if (empty($this->rang)) $this->rang=0;
|
||||||
if (empty($this->remise)) $this->remise=0;
|
if (empty($this->remise)) $this->remise=0;
|
||||||
if (empty($this->remise_percent)) $this->remise_percent=0;
|
if (empty($this->remise_percent) || ! is_numeric($this->remise_percent)) $this->remise_percent=0;
|
||||||
if (empty($this->info_bits)) $this->info_bits=0;
|
if (empty($this->info_bits)) $this->info_bits=0;
|
||||||
if (empty($this->special_code)) $this->special_code=0;
|
if (empty($this->special_code)) $this->special_code=0;
|
||||||
if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
|
if (empty($this->fk_parent_line)) $this->fk_parent_line=0;
|
||||||
if (empty($this->fk_fournprice)) $this->fk_fournprice=0;
|
if (empty($this->fk_fournprice)) $this->fk_fournprice=0;
|
||||||
|
if (! is_numeric($this->qty)) $this->qty = 0;
|
||||||
|
|
||||||
if (empty($this->pa_ht)) $this->pa_ht=0;
|
if (empty($this->pa_ht)) $this->pa_ht=0;
|
||||||
|
|
||||||
|
|||||||
@ -579,7 +579,7 @@ else
|
|||||||
|
|
||||||
// State
|
// State
|
||||||
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
||||||
if ($account->fk_departement > 0) print getState($account->fk_departement);
|
if ($account->state_id > 0) print getState($account->state_id);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
// Conciliate
|
// Conciliate
|
||||||
|
|||||||
@ -554,13 +554,20 @@ if ($mysoc->tva_assuj == 'franchise') // Non assujeti
|
|||||||
|
|
||||||
if ($conf->salaries->enabled)
|
if ($conf->salaries->enabled)
|
||||||
{
|
{
|
||||||
print '<tr><td colspan="4">'.$langs->trans("Salaries").'</td></tr>';
|
if ($modecompta == 'CREANCES-DETTES') {
|
||||||
$sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as label, date_format(p.datep,'%Y-%m') as dm, sum(p.amount) as amount";
|
$column = 'p.datev';
|
||||||
|
} else {
|
||||||
|
$column = 'p.datep';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<tr><td colspan="4">'.$langs->trans("Salaries").'</td></tr>';
|
||||||
|
$sql = "SELECT u.rowid, u.firstname, u.lastname, p.fk_user, p.label as label, date_format($column,'%Y-%m') as dm, sum(p.amount) as amount";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p";
|
||||||
$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user";
|
$sql.= " INNER JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid=p.fk_user";
|
||||||
$sql.= " WHERE p.entity = ".$conf->entity;
|
$sql.= " WHERE p.entity = ".$conf->entity;
|
||||||
if (! empty($date_start) && ! empty($date_end))
|
if (! empty($date_start) && ! empty($date_end))
|
||||||
$sql.= " AND p.datep >= '".$db->idate($date_start)."' AND p.datep <= '".$db->idate($date_end)."'";
|
$sql.= " AND $column >= '".$db->idate($date_start)."' AND $column <= '".$db->idate($date_end)."'";
|
||||||
|
|
||||||
$sql.= " GROUP BY u.rowid, u.firstname, u.lastname, p.fk_user, p.label, dm";
|
$sql.= " GROUP BY u.rowid, u.firstname, u.lastname, p.fk_user, p.label, dm";
|
||||||
$sql.= " ORDER BY u.firstname";
|
$sql.= " ORDER BY u.firstname";
|
||||||
|
|
||||||
|
|||||||
@ -477,9 +477,16 @@ $reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$acti
|
|||||||
/*
|
/*
|
||||||
* Salaries
|
* Salaries
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if ($modecompta == 'CREANCES-DETTES') {
|
||||||
|
$column = 'p.datev';
|
||||||
|
} else {
|
||||||
|
$column = 'p.datep';
|
||||||
|
}
|
||||||
|
|
||||||
$subtotal_ht = 0;
|
$subtotal_ht = 0;
|
||||||
$subtotal_ttc = 0;
|
$subtotal_ttc = 0;
|
||||||
$sql = "SELECT p.label as nom, date_format(p.datep,'%Y-%m') as dm, sum(p.amount) as amount";
|
$sql = "SELECT p.label as nom, date_format($column,'%Y-%m') as dm, sum(p.amount) as amount";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p";
|
||||||
$sql.= " WHERE p.entity = ".$conf->entity;
|
$sql.= " WHERE p.entity = ".$conf->entity;
|
||||||
$sql.= " GROUP BY p.label, dm";
|
$sql.= " GROUP BY p.label, dm";
|
||||||
|
|||||||
@ -342,7 +342,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
$pageposafter=$pageposbefore;
|
$pageposafter=$pageposbefore;
|
||||||
//print $pageposafter.'-'.$pageposbefore;exit;
|
//print $pageposafter.'-'.$pageposbefore;exit;
|
||||||
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
||||||
pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc);
|
pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc,1);
|
||||||
$posyafter=$pdf->GetY();
|
$posyafter=$pdf->GetY();
|
||||||
if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text
|
if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text
|
||||||
{
|
{
|
||||||
|
|||||||
@ -353,7 +353,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pageposafter=$pageposbefore;
|
$pageposafter=$pageposbefore;
|
||||||
//print $pageposafter.'-'.$pageposbefore;exit;
|
//print $pageposafter.'-'.$pageposbefore;exit;
|
||||||
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
$pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it.
|
||||||
pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc);
|
pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxtva-$curX,4,$curX,$curY,$hideref,$hidedesc,1);
|
||||||
$posyafter=$pdf->GetY();
|
$posyafter=$pdf->GetY();
|
||||||
if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text
|
if ($posyafter > ($this->page_hauteur - ($heightforfooter+$heightforfreetext+$heightforinfotot))) // There is no space left for total+free text
|
||||||
{
|
{
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2004 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) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2015 Juanjo Menent <jmenent@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -68,7 +69,7 @@ if ($sall) $sql.= natural_search(array('e.label','e.description','e.lieu','e.add
|
|||||||
$sql.= " GROUP BY e.rowid, e.label, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays";
|
$sql.= " GROUP BY e.rowid, e.label, e.statut, e.lieu, e.address, e.zip, e.town, e.fk_pays";
|
||||||
$sql.= $db->order($sortfield,$sortorder);
|
$sql.= $db->order($sortfield,$sortorder);
|
||||||
$sql.= $db->plimit($limit+1, $offset);
|
$sql.= $db->plimit($limit+1, $offset);
|
||||||
print $sql;
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -823,7 +823,8 @@ class Task extends CommonObject
|
|||||||
{
|
{
|
||||||
$tasktime_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time");
|
$tasktime_id = $this->db->last_insert_id(MAIN_DB_PREFIX."projet_task_time");
|
||||||
$ret = $tasktime_id;
|
$ret = $tasktime_id;
|
||||||
|
$this->timespent_id = $ret;
|
||||||
|
|
||||||
if (! $notrigger)
|
if (! $notrigger)
|
||||||
{
|
{
|
||||||
// Call trigger
|
// Call trigger
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user