Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into develop_bug

This commit is contained in:
Regis Houssin 2018-10-27 11:01:06 +02:00
commit fdde88cbe6
11 changed files with 87 additions and 43 deletions

View File

@ -490,7 +490,7 @@ class FormProjets
if ($table_element == 'projet_task') return ''; // Special cas of element we never link to a project (already always done)
$linkedtothirdparty=false;
if (! in_array($table_element, array('don','expensereport_det','expensereport','loan','stock_mouvement','chargesociales'))) $linkedtothirdparty=true;
if (! in_array($table_element, array('don','expensereport_det','expensereport','loan','stock_mouvement','payment_salary','payment_various','chargesociales'))) $linkedtothirdparty=true;
$sqlfilter='';
@ -533,6 +533,9 @@ class FormProjets
$sql = 'SELECT t.rowid, t.label as ref';
$projectkey='fk_origin';
break;
case "payment_salary":
$sql = "SELECT t.rowid, t.num_payment as ref"; // TODO In a future fill and use real ref field
break;
case "payment_various":
$sql = "SELECT t.rowid, t.num_payment as ref";
break;

View File

@ -72,8 +72,11 @@ insert into llx_c_action_trigger (code,label,description,elementtype,rang) value
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_VALIDATE','Expense report validated','Executed when an expense report is validated','expensereport',202);
insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_APPROVE','Expense report approved','Executed when an expense report is approved','expensereport',203);
ALTER TABLE llx_payment_salary ADD COLUMN ref varchar(30) NULL after rowid;
ALTER TABLE llx_payment_salary ADD COLUMN fk_projet integer DEFAULT NULL after amount;
ALTER TABLE llx_payment_various ADD COLUMN ref varchar(30) NULL after rowid;
ALTER TABLE llx_categorie ADD COLUMN ref_ext varchar(255);
ALTER TABLE llx_paiement ADD COLUMN ext_payment_id varchar(128);

View File

@ -21,7 +21,7 @@
create table llx_paiement
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
ref varchar(30) NOT NULL, -- payment reference number
ref varchar(30) NULL, -- payment reference number
entity integer DEFAULT 1 NOT NULL, -- Multi company id
datec datetime, -- date de creation
tms timestamp,

View File

@ -19,6 +19,7 @@
create table llx_payment_salary
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
ref varchar(30) NOT NULL, -- payment reference number
tms timestamp,
datec datetime, -- Create date
fk_user integer NOT NULL,
@ -28,7 +29,7 @@ create table llx_payment_salary
amount double(24,8) NOT NULL DEFAULT 0,
fk_projet integer DEFAULT NULL,
fk_typepayment integer NOT NULL,
num_payment varchar(50), -- ref
num_payment varchar(50), -- num cheque or other
label varchar(255),
datesp date, -- date start period
dateep date, -- date end period

View File

@ -19,7 +19,8 @@
create table llx_payment_various
(
rowid integer AUTO_INCREMENT PRIMARY KEY,
num_payment varchar(50), -- ref
ref varchar(30) NOT NULL, -- payment reference number
num_payment varchar(50), -- num cheque or other
label varchar(255),
tms timestamp,
datec datetime, -- Create date

View File

@ -79,20 +79,20 @@ GoToListOfTimeConsumed=Go to list of time consumed
GoToListOfTasks=Go to list of tasks
GoToGanttView=Go to Gantt view
GanttView=Gantt View
ListProposalsAssociatedProject=List of the commercial proposals associated with the project
ListOrdersAssociatedProject=List of customer orders associated with the project
ListInvoicesAssociatedProject=List of customer invoices associated with the project
ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project
ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project
ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project
ListContractAssociatedProject=List of contracts associated with the project
ListShippingAssociatedProject=List of shippings associated with the project
ListFichinterAssociatedProject=List of interventions associated with the project
ListExpenseReportsAssociatedProject=List of expense reports associated with the project
ListDonationsAssociatedProject=List of donations associated with the project
ListVariousPaymentsAssociatedProject=List of miscellaneous payments associated with the project
ListSalariesAssociatedProject=List of salaries associated with the project
ListActionsAssociatedProject=List of events associated with the project
ListProposalsAssociatedProject=List of the commercial proposals related to the project
ListOrdersAssociatedProject=List of customer orders related to the project
ListInvoicesAssociatedProject=List of customer invoices related to the project
ListPredefinedInvoicesAssociatedProject=List of customer template invoices related to the project
ListSupplierOrdersAssociatedProject=List of supplier orders related to the project
ListSupplierInvoicesAssociatedProject=List of supplier invoices related to the project
ListContractAssociatedProject=List of contracts related to the project
ListShippingAssociatedProject=List of shippings related to the project
ListFichinterAssociatedProject=List of interventions related to the project
ListExpenseReportsAssociatedProject=List of expense reports related to the project
ListDonationsAssociatedProject=List of donations related to the project
ListVariousPaymentsAssociatedProject=List of miscellaneous payments related to the project
ListSalariesAssociatedProject=List of payments of salaries related to the project
ListActionsAssociatedProject=List of events related to the project
ListTaskTimeUserProject=List of time consumed on tasks of project
ListTaskTimeForTask=List of time consumed on task
ActivityOnProjectToday=Activity on project today

View File

@ -240,6 +240,14 @@ if ($id > 0 || ! empty($ref))
print nl2br($object->description);
print '</td></tr>';
// Bill time
if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
print yn($object->bill_time);
print '</td></tr>';
}
// Categories
if ($conf->categorie->enabled) {
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';

View File

@ -217,6 +217,14 @@ print '<td class="titlefield tdtop">'.$langs->trans("Description").'</td><td>';
print nl2br($object->description);
print '</td></tr>';
// Bill time
if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
print yn($object->bill_time);
print '</td></tr>';
}
// Categories
if($conf->categorie->enabled) {
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
@ -451,7 +459,7 @@ $listofreferent=array(
'disableamount'=>0,
'urlnew'=>DOL_URL_ROOT.'/compta/salaries/card.php?action=create&projectid='.$id,
'lang'=>'salaries',
'buttonnew'=>'AddSalariesPayment',
'buttonnew'=>'AddSalaryPayment',
'testnew'=>$user->rights->salaries->write,
'test'=>$conf->salaries->enabled && $user->rights->salaries->read),
'variouspayment'=>array(
@ -686,8 +694,8 @@ foreach ($listofreferent as $key => $value)
// and the final balance
print '<tr class="liste_total">';
print '<td align="right" colspan=2 >'.$langs->trans("Profit").'</td>';
print '<td align="right" >'.price($balance_ht).'</td>';
print '<td align="right" >'.price($balance_ttc).'</td>';
print '<td align="right" >'.price(price2num($balance_ht, 'MT')).'</td>';
print '<td align="right" >'.price(price2num($balance_ttc, 'MT')).'</td>';
print '</tr>';
print "</table>";
@ -872,7 +880,9 @@ foreach ($listofreferent as $key => $value)
{
if (empty($conf->global->PROJECT_DISABLE_UNLINK_FROM_OVERVIEW) || $user->admin) // PROJECT_DISABLE_UNLINK_FROM_OVERVIEW is empty by defaut, so this test true
{
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $projectid . '&action=unlink&tablename=' . $tablename . '&elementselect=' . $element->id . '">' . img_picto($langs->trans('Unlink'), 'editdelete') . '</a>';
print '<a href="' . $_SERVER["PHP_SELF"] . '?id=' . $projectid . '&action=unlink&tablename=' . $tablename . '&elementselect=' . $element->id . '" class="reposition">';
print img_picto($langs->trans('Unlink'), 'unlink');
print '</a>';
}
}
print "</td>\n";

View File

@ -91,13 +91,14 @@ $planned_workload=$planned_workloadhour*3600+$planned_workloadmin*60;
$userAccess=0;
$parameters=array('id'=>$id);
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
/*
* Actions
*/
$parameters=array('id'=>$id);
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
// Purge search criteria
if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers
{
@ -404,6 +405,14 @@ if ($id > 0 || ! empty($ref))
print nl2br($object->description);
print '</td></tr>';
// Bill time
if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
print yn($object->bill_time);
print '</td></tr>';
}
// Categories
if($conf->categorie->enabled) {
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';

View File

@ -399,8 +399,16 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
print nl2br($projectstatic->description);
print '</td></tr>';
// Bill time
if (! empty($conf->global->PROJECT_BILL_TIME_SPENT))
{
print '<tr><td>'.$langs->trans("BillTime").'</td><td>';
print yn($projectstatic->bill_time);
print '</td></tr>';
}
// Categories
if($conf->categorie->enabled) {
if ($conf->categorie->enabled) {
print '<tr><td valign="middle">'.$langs->trans("Categories").'</td><td>';
print $form->showCategories($projectstatic->id,'project',1);
print "</td></tr>";
@ -1090,7 +1098,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
if (isset($task_time->total_ht)) print price($valuebilled, 1, $langs, 1, -1, -1, $conf->currency);
print '</td>';
if (! $i) $totalarray['nbfield']++;
if (! $i) $totalarray['totalvaluefield']=$totalarray['nbfield'];
if (! $i) $totalarray['totalvaluebilledfield']=$totalarray['nbfield'];
$totalarray['totalvaluebilled'] += $valuebilled;
}
@ -1152,6 +1160,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0)
}
elseif ($totalarray['totaldurationfield'] == $i) print '<td align="right">'.convertSecondToTime($totalarray['totalduration'],'allhourmin').'</td>';
elseif ($totalarray['totalvaluefield'] == $i) print '<td align="right">'.price($totalarray['totalvalue']).'</td>';
elseif ($totalarray['totalvaluebilledfield'] == $i) print '<td align="right">'.price($totalarray['totalvaluebilled']).'</td>';
else print '<td></td>';
}
print '</tr>';

View File

@ -304,13 +304,13 @@ if (empty($reshook))
if (GETPOST('getcustomercode'))
{
// We defined value code_client
$_POST["code_client"]="Acompleter";
$_POST["customer_code"]="Acompleter";
}
if (GETPOST('getsuppliercode'))
{
// We defined value code_fournisseur
$_POST["code_fournisseur"]="Acompleter";
$_POST["supplier_code"]="Acompleter";
}
if($action=='set_localtax1')
@ -417,8 +417,8 @@ if (empty($reshook))
$object->idprof5 = trim(GETPOST('idprof5', 'alpha'));
$object->idprof6 = trim(GETPOST('idprof6', 'alpha'));
$object->prefix_comm = GETPOST('prefix_comm', 'alpha');
$object->code_client = GETPOST('code_client', 'alpha');
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
$object->code_client = GETPOST('customer_code', 'alpha');
$object->code_fournisseur = GETPOST('supplier_code', 'alpha');
$object->capital = GETPOST('capital', 'alpha');
$object->barcode = GETPOST('barcode', 'alpha');
@ -947,14 +947,14 @@ else
$object->client = GETPOST('client')?GETPOST('client'):$object->client;
if(empty($duplicate_code_error)) {
$object->code_client = GETPOST('code_client', 'alpha');
$object->code_client = GETPOST('customer_code', 'alpha');
$object->fournisseur = GETPOST('fournisseur')?GETPOST('fournisseur'):$object->fournisseur;
}
else {
setEventMessages($langs->trans('NewCustomerSupplierCodeProposed'),'', 'warnings');
}
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
$object->code_fournisseur = GETPOST('supplier_code', 'alpha');
$object->address = GETPOST('address', 'alpha');
$object->zip = GETPOST('zipcode', 'alpha');
$object->town = GETPOST('town', 'alpha');
@ -1190,7 +1190,7 @@ else
print '<table class="nobordernopadding"><tr><td>';
$tmpcode=$object->code_client;
if (empty($tmpcode) && ! empty($modCodeClient->code_auto)) $tmpcode=$modCodeClient->getNextValue($object,0);
print '<input type="text" name="code_client" id="customer_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '<input type="text" name="customer_code" id="customer_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '</td><td>';
$s=$modCodeClient->getToolTip($langs,$object,0);
print $form->textwithpicto('',$s,1);
@ -1218,7 +1218,7 @@ else
print '<table class="nobordernopadding"><tr><td>';
$tmpcode=$object->code_fournisseur;
if (empty($tmpcode) && ! empty($modCodeFournisseur->code_auto)) $tmpcode=$modCodeFournisseur->getNextValue($object,1);
print '<input type="text" name="code_fournisseur" id="supplier_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '<input type="text" name="supplier_code" id="supplier_code" class="maxwidthonsmartphone" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '</td><td>';
$s=$modCodeFournisseur->getToolTip($langs,$object,1);
print $form->textwithpicto('',$s,1);
@ -1570,9 +1570,9 @@ else
$object->name = GETPOST('name', 'alpha');
$object->prefix_comm = GETPOST('prefix_comm', 'alpha');
$object->client = GETPOST('client', 'int');
$object->code_client = GETPOST('code_client', 'alpha');
$object->code_client = GETPOST('customer_code', 'alpha');
$object->fournisseur = GETPOST('fournisseur', 'int');
$object->code_fournisseur = GETPOST('code_fournisseur', 'alpha');
$object->code_fournisseur = GETPOST('supplier_code', 'alpha');
$object->address = GETPOST('address', 'alpha');
$object->zip = GETPOST('zipcode', 'alpha');
$object->town = GETPOST('town', 'alpha');
@ -1776,16 +1776,16 @@ else
$tmpcode=$object->code_client;
if (empty($tmpcode) && ! empty($object->oldcopy->code_client)) $tmpcode=$object->oldcopy->code_client; // When there is an error to update a thirdparty, the number for supplier and customer code is kept to old value.
if (empty($tmpcode) && ! empty($modCodeClient->code_auto)) $tmpcode=$modCodeClient->getNextValue($object,0);
print '<input type="text" name="code_client" id="customer_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '<input type="text" name="customer_code" id="customer_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
}
else if ($object->codeclient_modifiable())
{
print '<input type="text" name="code_client" id="customer_code" size="16" value="'.dol_escape_htmltag($object->code_client).'" maxlength="15">';
print '<input type="text" name="customer_code" id="customer_code" size="16" value="'.dol_escape_htmltag($object->code_client).'" maxlength="15">';
}
else
{
print $object->code_client;
print '<input type="hidden" name="code_client" value="'.dol_escape_htmltag($object->code_client).'">';
print '<input type="hidden" name="customer_code" value="'.dol_escape_htmltag($object->code_client).'">';
}
print '</td><td>';
$s=$modCodeClient->getToolTip($langs,$object,0);
@ -1816,16 +1816,16 @@ else
$tmpcode=$object->code_fournisseur;
if (empty($tmpcode) && ! empty($object->oldcopy->code_fournisseur)) $tmpcode=$object->oldcopy->code_fournisseur; // When there is an error to update a thirdparty, the number for supplier and customer code is kept to old value.
if (empty($tmpcode) && ! empty($modCodeFournisseur->code_auto)) $tmpcode=$modCodeFournisseur->getNextValue($object,1);
print '<input type="text" name="code_fournisseur" id="supplier_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
print '<input type="text" name="supplier_code" id="supplier_code" size="16" value="'.dol_escape_htmltag($tmpcode).'" maxlength="15">';
}
else if ($object->codefournisseur_modifiable())
{
print '<input type="text" name="code_fournisseur" id="supplier_code" size="16" value="'.$object->code_fournisseur.'" maxlength="15">';
print '<input type="text" name="supplier_code" id="supplier_code" size="16" value="'.$object->code_fournisseur.'" maxlength="15">';
}
else
{
print $object->code_fournisseur;
print '<input type="hidden" name="code_fournisseur" value="'.$object->code_fournisseur.'">';
print '<input type="hidden" name="supplier_code" value="'.$object->code_fournisseur.'">';
}
print '</td><td>';
$s=$modCodeFournisseur->getToolTip($langs,$object,1);