Merge branch 'develop' of https://github.com/Dolibarr/dolibarr.git into develop_bug
This commit is contained in:
commit
fdde88cbe6
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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>';
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user