Merge branch '15.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: htdocs/install/mysql/migration/14.0.0-15.0.0.sql htdocs/langs/en_US/banks.lang htdocs/projet/list.php
This commit is contained in:
commit
c2fb5d577c
@ -659,8 +659,7 @@ class Adherent extends CommonObject
|
|||||||
$nbrowsaffected = 0;
|
$nbrowsaffected = 0;
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass." nosyncthirdparty=".$nosyncthirdparty.", email=".
|
dol_syslog(get_class($this)."::update notrigger=".$notrigger.", nosyncuser=".$nosyncuser.", nosyncuserpass=".$nosyncuserpass." nosyncthirdparty=".$nosyncthirdparty.", email=".$this->email);
|
||||||
$this->email);
|
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
$this->lastname = trim($this->lastname) ? trim($this->lastname) : trim($this->lastname);
|
$this->lastname = trim($this->lastname) ? trim($this->lastname) : trim($this->lastname);
|
||||||
@ -693,7 +692,9 @@ class Adherent extends CommonObject
|
|||||||
$sql .= ", gender = ".($this->gender != -1 ? "'".$this->db->escape($this->gender)."'" : "null"); // 'man' or 'woman'
|
$sql .= ", gender = ".($this->gender != -1 ? "'".$this->db->escape($this->gender)."'" : "null"); // 'man' or 'woman'
|
||||||
$sql .= ", login = ".($this->login ? "'".$this->db->escape($this->login)."'" : "null");
|
$sql .= ", login = ".($this->login ? "'".$this->db->escape($this->login)."'" : "null");
|
||||||
$sql .= ", societe = ".($this->company ? "'".$this->db->escape($this->company)."'" : ($this->societe ? "'".$this->db->escape($this->societe)."'" : "null"));
|
$sql .= ", societe = ".($this->company ? "'".$this->db->escape($this->company)."'" : ($this->societe ? "'".$this->db->escape($this->societe)."'" : "null"));
|
||||||
$sql .= ", fk_soc = ".($this->socid > 0 ? $this->db->escape($this->socid) : "null");
|
if ($this->socid) {
|
||||||
|
$sql .= ", fk_soc = ".($this->socid > 0 ? $this->db->escape($this->socid) : "null"); // Must be modified only when creating from a third-party
|
||||||
|
}
|
||||||
$sql .= ", address = ".($this->address ? "'".$this->db->escape($this->address)."'" : "null");
|
$sql .= ", address = ".($this->address ? "'".$this->db->escape($this->address)."'" : "null");
|
||||||
$sql .= ", zip = ".($this->zip ? "'".$this->db->escape($this->zip)."'" : "null");
|
$sql .= ", zip = ".($this->zip ? "'".$this->db->escape($this->zip)."'" : "null");
|
||||||
$sql .= ", town = ".($this->town ? "'".$this->db->escape($this->town)."'" : "null");
|
$sql .= ", town = ".($this->town ? "'".$this->db->escape($this->town)."'" : "null");
|
||||||
@ -713,9 +714,6 @@ class Adherent extends CommonObject
|
|||||||
$sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid);
|
$sql .= ", fk_adherent_type = ".$this->db->escape($this->typeid);
|
||||||
$sql .= ", morphy = '".$this->db->escape($this->morphy)."'";
|
$sql .= ", morphy = '".$this->db->escape($this->morphy)."'";
|
||||||
$sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null");
|
$sql .= ", birth = ".($this->birth ? "'".$this->db->idate($this->birth)."'" : "null");
|
||||||
if ($this->socid) {
|
|
||||||
$sql .= ", fk_soc = '".$this->db->escape($this->socid)."'"; // Must be modified only when creating from a third-party
|
|
||||||
}
|
|
||||||
if ($this->datefin) {
|
if ($this->datefin) {
|
||||||
$sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription
|
$sql .= ", datefin = '".$this->db->idate($this->datefin)."'"; // Must be modified only when deleting a subscription
|
||||||
}
|
}
|
||||||
|
|||||||
@ -307,7 +307,7 @@ $memberstatic = new Adherent($db);
|
|||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
if (!empty($search_categ) || !empty($catid)) {
|
if ((!empty($search_categ) && $search_categ > 0) || !empty($catid)) {
|
||||||
$sql = "SELECT DISTINCT";
|
$sql = "SELECT DISTINCT";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT";
|
$sql = "SELECT";
|
||||||
@ -336,7 +336,7 @@ $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d";
|
|||||||
if (!empty($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
|
if (!empty($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (d.rowid = ef.fk_object)";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (d.rowid = ef.fk_object)";
|
||||||
}
|
}
|
||||||
if (!empty($search_categ) || !empty($catid)) {
|
if ((!empty($search_categ) && $search_categ > 0) || !empty($catid)) {
|
||||||
// We need this table joined to the select in order to filter by categ
|
// We need this table joined to the select in order to filter by categ
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_member as cm ON d.rowid = cm.fk_member";
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX."categorie_member as cm ON d.rowid = cm.fk_member";
|
||||||
}
|
}
|
||||||
@ -540,7 +540,7 @@ if ($search_login) {
|
|||||||
if ($search_email) {
|
if ($search_email) {
|
||||||
$param .= "&search_email=".urlencode($search_email);
|
$param .= "&search_email=".urlencode($search_email);
|
||||||
}
|
}
|
||||||
if ($search_categ) {
|
if ($search_categ > 0 || $search_categ == -2) {
|
||||||
$param .= "&search_categ=".urlencode($search_categ);
|
$param .= "&search_categ=".urlencode($search_categ);
|
||||||
}
|
}
|
||||||
if ($search_company) {
|
if ($search_company) {
|
||||||
@ -573,7 +573,7 @@ if ($search_phone_mobile != '') {
|
|||||||
if ($search_filter && $search_filter != '-1') {
|
if ($search_filter && $search_filter != '-1') {
|
||||||
$param .= "&search_filter=".urlencode($search_filter);
|
$param .= "&search_filter=".urlencode($search_filter);
|
||||||
}
|
}
|
||||||
if ($search_status != "" && $search_status != Adherent::STATUS_DRAFT) {
|
if ($search_status != "" && $search_status != -3) {
|
||||||
$param .= "&search_status=".urlencode($search_status);
|
$param .= "&search_status=".urlencode($search_status);
|
||||||
}
|
}
|
||||||
if ($search_type > 0) {
|
if ($search_type > 0) {
|
||||||
|
|||||||
@ -743,7 +743,7 @@ if (empty($reshook)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
// On verifie si la facture a des paiements
|
// We check if invoice has payments
|
||||||
$sql = 'SELECT pf.amount';
|
$sql = 'SELECT pf.amount';
|
||||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf';
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'paiement_facture as pf';
|
||||||
$sql .= ' WHERE pf.fk_facture = '.((int) $object->id);
|
$sql .= ' WHERE pf.fk_facture = '.((int) $object->id);
|
||||||
@ -993,7 +993,7 @@ if (empty($reshook)) {
|
|||||||
$db->rollback();
|
$db->rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($action == 'confirm_delete_paiement' && $confirm == 'yes' && $usercancreate) {
|
} elseif ($action == 'confirm_delete_paiement' && $confirm == 'yes' && $usercanissuepayment) {
|
||||||
// Delete payment
|
// Delete payment
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
if ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 0) {
|
if ($object->statut == Facture::STATUS_VALIDATED && $object->paye == 0) {
|
||||||
|
|||||||
@ -75,6 +75,12 @@ $hookmanager->initHooks(array('paiementcard', 'globalcard'));
|
|||||||
|
|
||||||
$formquestion = array();
|
$formquestion = array();
|
||||||
|
|
||||||
|
$usercanissuepayment = !empty($user->rights->facture->paiement);
|
||||||
|
|
||||||
|
$fieldid = 'rowid';
|
||||||
|
$isdraft = (($object->statut == Facture::STATUS_DRAFT) ? 1 : 0);
|
||||||
|
$result = restrictedArea($user, 'facture', $object->id, '', '', 'fk_soc', $fieldid, $isdraft);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -87,7 +93,7 @@ if ($reshook < 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
if ($action == 'add_paiement' || ($action == 'confirm_paiement' && $confirm == 'yes')) {
|
if (($action == 'add_paiement' || ($action == 'confirm_paiement' && $confirm == 'yes')) && $usercanissuepayment) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$datepaye = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
$datepaye = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
||||||
@ -202,7 +208,7 @@ if (empty($reshook)) {
|
|||||||
/*
|
/*
|
||||||
* Action confirm_paiement
|
* Action confirm_paiement
|
||||||
*/
|
*/
|
||||||
if ($action == 'confirm_paiement' && $confirm == 'yes') {
|
if ($action == 'confirm_paiement' && $confirm == 'yes' && $usercanissuepayment) {
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$datepaye = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
$datepaye = dol_mktime(12, 0, 0, GETPOST('remonth', 'int'), GETPOST('reday', 'int'), GETPOST('reyear', 'int'));
|
||||||
@ -486,7 +492,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie
|
|||||||
print '<td><span class="fieldrequired">'.$langs->trans('AccountToDebit').'</span></td>';
|
print '<td><span class="fieldrequired">'.$langs->trans('AccountToDebit').'</span></td>';
|
||||||
}
|
}
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$form->select_comptes($accountid, 'accountid', 0, '', 2);
|
print $form->select_comptes($accountid, 'accountid', 0, '', 2, '', 0, '', 1);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td> </td>';
|
print '<td> </td>';
|
||||||
|
|||||||
@ -64,6 +64,8 @@ if ($socid && $socid != $object->thirdparty->id) {
|
|||||||
accessforbidden();
|
accessforbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -191,6 +193,39 @@ if ($action == 'setdatep' && GETPOST('datepday')) {
|
|||||||
setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors');
|
setEventMessages($langs->trans('PaymentDateUpdateFailed'), null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($action == 'createbankpayment' && !empty($user->rights->facture->paiement)) {
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
|
// Create the record into bank for the amount of payment $object
|
||||||
|
if (!$error) {
|
||||||
|
$label = '(CustomerInvoicePayment)';
|
||||||
|
if (GETPOST('type') == Facture::TYPE_CREDIT_NOTE) {
|
||||||
|
$label = '(CustomerInvoicePaymentBack)'; // Refund of a credit note
|
||||||
|
}
|
||||||
|
|
||||||
|
$bankaccountid = GETPOST('accountid', 'int');
|
||||||
|
if ($bankaccountid > 0) {
|
||||||
|
$object->paiementcode = $object->type_code;
|
||||||
|
$object->amounts = $object->getAmountsArray();
|
||||||
|
|
||||||
|
$result = $object->addPaymentToBank($user, 'payment', $label, $bankaccountid, '', '');
|
||||||
|
if ($result < 0) {
|
||||||
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors');
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!$error) {
|
||||||
|
$db->commit();
|
||||||
|
} else {
|
||||||
|
$db->rollback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -315,7 +350,37 @@ if (!empty($conf->banque->enabled)) {
|
|||||||
print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted');
|
print $bankline->getNomUrl(1, 0, 'showconciliatedandaccounted');
|
||||||
} else {
|
} else {
|
||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
print '<span class="opacitymedium">'.$langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentitiesnoconv("Module85Name")).'</span>';
|
print '<span class="opacitymedium">';
|
||||||
|
print $langs->trans("NoRecordFoundIBankcAccount", $langs->transnoentitiesnoconv("Module85Name"));
|
||||||
|
print '</span>';
|
||||||
|
if (!empty($user->rights->facture->paiement)) {
|
||||||
|
// Try to guess $bankaccountidofinvoices that is ID of bank account defined on invoice.
|
||||||
|
// Return null if not found, return 0 if it has different value for at least 2 invoices, return the value if same on all invoices where a bank is defined.
|
||||||
|
$amountofpayments = $object->getAmountsArray();
|
||||||
|
$bankaccountidofinvoices = null;
|
||||||
|
foreach ($amountofpayments as $idinvoice => $amountofpayment) {
|
||||||
|
$tmpinvoice = new Facture($db);
|
||||||
|
$tmpinvoice->fetch($idinvoice);
|
||||||
|
if ($tmpinvoice->fk_account > 0 && $bankaccountidofinvoices !== 0) {
|
||||||
|
if (is_null($bankaccountidofinvoices)) {
|
||||||
|
$bankaccountidofinvoices = $tmpinvoice->fk_account;
|
||||||
|
} elseif ($bankaccountidofinvoices != $tmpinvoice->fk_account) {
|
||||||
|
$bankaccountidofinvoices = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<form method="POST" name="createbankpayment">';
|
||||||
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
print '<input type="hidden" name="action" value="createbankpayment">';
|
||||||
|
print '<input type="hidden" name="id" value="'.$object->id.'">';
|
||||||
|
print ' '.$langs->trans("ToCreateRelatedRecordIntoBank").': ';
|
||||||
|
print $form->select_comptes($bankaccountidofinvoices, 'accountid', 0, '', 2, '', 0, '', 1);
|
||||||
|
//print '<span class="opacitymedium">';
|
||||||
|
print '<input type="submit" class="button small smallpaddingimp" name="createbankpayment" value="'.$langs->trans("ClickHere").'">';
|
||||||
|
//print '</span>';
|
||||||
|
print '</form>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|||||||
@ -954,6 +954,7 @@ class Paiement extends CommonObject
|
|||||||
*
|
*
|
||||||
* @param string $filter Filter
|
* @param string $filter Filter
|
||||||
* @return int|array <0 if KO or array of invoice id
|
* @return int|array <0 if KO or array of invoice id
|
||||||
|
* @see getAmountsArray()
|
||||||
*/
|
*/
|
||||||
public function getBillsArray($filter = '')
|
public function getBillsArray($filter = '')
|
||||||
{
|
{
|
||||||
@ -987,6 +988,7 @@ class Paiement extends CommonObject
|
|||||||
* Return list of amounts of payments.
|
* Return list of amounts of payments.
|
||||||
*
|
*
|
||||||
* @return int|array Array of amount of payments
|
* @return int|array Array of amount of payments
|
||||||
|
* @see getBillsArray()
|
||||||
*/
|
*/
|
||||||
public function getAmountsArray()
|
public function getAmountsArray()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -7717,7 +7717,7 @@ abstract class CommonObject
|
|||||||
if (empty($reshook)) {
|
if (empty($reshook)) {
|
||||||
if (key_exists('label', $extrafields->attributes[$this->table_element]) && is_array($extrafields->attributes[$this->table_element]['label']) && count($extrafields->attributes[$this->table_element]['label']) > 0) {
|
if (key_exists('label', $extrafields->attributes[$this->table_element]) && is_array($extrafields->attributes[$this->table_element]['label']) && count($extrafields->attributes[$this->table_element]['label']) > 0) {
|
||||||
$out .= "\n";
|
$out .= "\n";
|
||||||
$out .= '<!-- showOptionals --> ';
|
$out .= '<!-- commonobject:showOptionals --> ';
|
||||||
$out .= "\n";
|
$out .= "\n";
|
||||||
|
|
||||||
$extrafields_collapse_num = '';
|
$extrafields_collapse_num = '';
|
||||||
|
|||||||
@ -225,7 +225,14 @@ function getURLContent($url, $postorget = 'GET', $param = '', $followlocation =
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Common check on ip (local and external)
|
// Common check on ip (local and external)
|
||||||
$arrayofmetadataserver = array('100.100.100.200' => 'Alibaba', '192.0.0.192'=> 'Oracle', '192.80.8.124'=>'Packet');
|
// See list on https://tagmerge.com/gist/a7b9d57ff8ec11d63642f8778609a0b8
|
||||||
|
// Not evasive url that ar enot IP are excluded by test on IP v4/v6 validity.
|
||||||
|
$arrayofmetadataserver = array(
|
||||||
|
'100.100.100.200' => 'Alibaba',
|
||||||
|
'192.0.0.192' => 'Oracle',
|
||||||
|
'192.80.8.124' => 'Packet',
|
||||||
|
'100.88.222.5' => 'Tencent cloud',
|
||||||
|
);
|
||||||
foreach ($arrayofmetadataserver as $ipofmetadataserver => $nameofmetadataserver) {
|
foreach ($arrayofmetadataserver as $ipofmetadataserver => $nameofmetadataserver) {
|
||||||
if ($iptocheck == $ipofmetadataserver) {
|
if ($iptocheck == $ipofmetadataserver) {
|
||||||
$info['http_code'] = 400;
|
$info['http_code'] = 400;
|
||||||
|
|||||||
@ -356,7 +356,7 @@ if ($nolinesbefore) {
|
|||||||
}
|
}
|
||||||
if (is_object($objectline)) {
|
if (is_object($objectline)) {
|
||||||
$temps = $objectline->showOptionals($extrafields, 'create', array(), '', '', 1, 'line');
|
$temps = $objectline->showOptionals($extrafields, 'create', array(), '', '', 1, 'line');
|
||||||
;
|
|
||||||
if (!empty($temps)) {
|
if (!empty($temps)) {
|
||||||
print '<div style="padding-top: 10px" id="extrafield_lines_area_create" name="extrafield_lines_area_create">';
|
print '<div style="padding-top: 10px" id="extrafield_lines_area_create" name="extrafield_lines_area_create">';
|
||||||
print $temps;
|
print $temps;
|
||||||
|
|||||||
@ -1342,6 +1342,23 @@ if ($action == 'create') {
|
|||||||
print '<a name="'.$objp->rowid.'"></a>'; // ancre pour retourner sur la ligne
|
print '<a name="'.$objp->rowid.'"></a>'; // ancre pour retourner sur la ligne
|
||||||
print dol_htmlentitiesbr($objp->description);
|
print dol_htmlentitiesbr($objp->description);
|
||||||
|
|
||||||
|
$objectline = new FichinterLigne($db);
|
||||||
|
$objectline->fetch($objp->rowid);
|
||||||
|
$objectline->fetch_optionals();
|
||||||
|
|
||||||
|
$extrafields->fetch_name_optionals_label($objectline->table_element);
|
||||||
|
|
||||||
|
if (!empty($extrafields)) {
|
||||||
|
$temps = $objectline->showOptionals($extrafields, 'view', array(), '', '', 1, 'line');
|
||||||
|
if (!empty($temps)) {
|
||||||
|
print '<div style="padding-top: 10px" id="extrafield_lines_area_'.$line->id.'" name="extrafield_lines_area_'.$line->id.'">';
|
||||||
|
print $temps;
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
// Date
|
// Date
|
||||||
print '<td class="center" width="150">'.(empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR) ?dol_print_date($db->jdate($objp->date_intervention), 'dayhour') : dol_print_date($db->jdate($objp->date_intervention), 'day')).'</td>';
|
print '<td class="center" width="150">'.(empty($conf->global->FICHINTER_DATE_WITHOUT_HOUR) ?dol_print_date($db->jdate($objp->date_intervention), 'dayhour') : dol_print_date($db->jdate($objp->date_intervention), 'day')).'</td>';
|
||||||
|
|
||||||
@ -1378,15 +1395,6 @@ if ($action == 'create') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
$line = new FichinterLigne($db);
|
|
||||||
$line->fetch($objp->rowid);
|
|
||||||
|
|
||||||
$extrafields->fetch_name_optionals_label($line->table_element);
|
|
||||||
|
|
||||||
$line->fetch_optionals();
|
|
||||||
|
|
||||||
print $line->showOptionals($extrafields, 'view', array('colspan'=>5));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Line in update mode
|
// Line in update mode
|
||||||
@ -1405,6 +1413,22 @@ if ($action == 'create') {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor('np_desc', $objp->description, '', 164, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%');
|
$doleditor = new DolEditor('np_desc', $objp->description, '', 164, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
|
|
||||||
|
$objectline = new FichinterLigne($db);
|
||||||
|
$objectline->fetch($objp->rowid);
|
||||||
|
$objectline->fetch_optionals();
|
||||||
|
|
||||||
|
$extrafields->fetch_name_optionals_label($objectline->table_element);
|
||||||
|
|
||||||
|
if (!empty($extrafields)) {
|
||||||
|
$temps = $objectline->showOptionals($extrafields, 'edit', array(), '', '', 1, 'line');
|
||||||
|
if (!empty($temps)) {
|
||||||
|
print '<div style="padding-top: 10px" id="extrafield_lines_area_'.$line->id.'" name="extrafield_lines_area_'.$line->id.'">';
|
||||||
|
print $temps;
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Date d'intervention
|
// Date d'intervention
|
||||||
@ -1431,14 +1455,6 @@ if ($action == 'create') {
|
|||||||
print '<input type="submit" class="button buttongen marginbottomonly button-save" name="save" value="'.$langs->trans("Save").'">';
|
print '<input type="submit" class="button buttongen marginbottomonly button-save" name="save" value="'.$langs->trans("Save").'">';
|
||||||
print '<input type="submit" class="button buttongen marginbottomonly button-cancel" name="cancel" value="'.$langs->trans("Cancel").'"></td>';
|
print '<input type="submit" class="button buttongen marginbottomonly button-cancel" name="cancel" value="'.$langs->trans("Cancel").'"></td>';
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
$line = new FichinterLigne($db);
|
|
||||||
$line->fetch($objp->rowid);
|
|
||||||
|
|
||||||
$extrafields->fetch_name_optionals_label($line->table_element);
|
|
||||||
$line->fetch_optionals();
|
|
||||||
|
|
||||||
print $line->showOptionals($extrafields, 'edit', array('colspan'=>5));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$i++;
|
$i++;
|
||||||
@ -1481,6 +1497,20 @@ if ($action == 'create') {
|
|||||||
$doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'restricthtml'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%');
|
$doleditor = new DolEditor('np_desc', GETPOST('np_desc', 'restricthtml'), '', 100, 'dolibarr_details', '', false, true, $conf->global->FCKEDITOR_ENABLE_DETAILS, ROWS_2, '90%');
|
||||||
$doleditor->Create();
|
$doleditor->Create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$objectline = new FichinterLigne($db);
|
||||||
|
$extrafields->fetch_name_optionals_label($objectline->table_element);
|
||||||
|
|
||||||
|
if (is_object($objectline)) {
|
||||||
|
$temps = $objectline->showOptionals($extrafields, 'create', array(), '', '', 1, 'line');
|
||||||
|
|
||||||
|
if (!empty($temps)) {
|
||||||
|
print '<div style="padding-top: 10px" id="extrafield_lines_area_create" name="extrafield_lines_area_create">';
|
||||||
|
print $temps;
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
// Date intervention
|
// Date intervention
|
||||||
@ -1513,14 +1543,6 @@ if ($action == 'create') {
|
|||||||
print '<td class="center" valign="middle" colspan="3"><input type="submit" class="button button-add" value="'.$langs->trans('Add').'" name="addline"></td>';
|
print '<td class="center" valign="middle" colspan="3"><input type="submit" class="button button-add" value="'.$langs->trans('Add').'" name="addline"></td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
//Line extrafield
|
|
||||||
|
|
||||||
$lineadd = new FichinterLigne($db);
|
|
||||||
|
|
||||||
$extrafields->fetch_name_optionals_label($lineadd->table_element);
|
|
||||||
|
|
||||||
print $lineadd->showOptionals($extrafields, 'edit', array('colspan'=>5));
|
|
||||||
|
|
||||||
if (!$num) {
|
if (!$num) {
|
||||||
print '</table>';
|
print '</table>';
|
||||||
}
|
}
|
||||||
|
|||||||
27
htdocs/install/mysql/data/llx_c_partnership_type.sql
Normal file
27
htdocs/install/mysql/data/llx_c_partnership_type.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-- Copyright (C) 2020 florian HENRY florian.henry@scopen.fr
|
||||||
|
--
|
||||||
|
-- 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
|
||||||
|
-- the Free Software Foundation; either version 3 of the License, or
|
||||||
|
-- (at your option) any later version.
|
||||||
|
--
|
||||||
|
-- This program is distributed in the hope that it will be useful,
|
||||||
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
-- GNU General Public License for more details.
|
||||||
|
--
|
||||||
|
-- You should have received a copy of the GNU General Public License
|
||||||
|
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
--
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Do not place a comment at the end of the line, this file is parsed when
|
||||||
|
-- from the install and all '--' are removed.
|
||||||
|
--
|
||||||
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO llx_c_partnership_type (code, label, active) VALUES ('DEFAULT', 'Default', 1);
|
||||||
|
|
||||||
@ -507,6 +507,7 @@ 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_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802);
|
INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_CANCEL','Holiday canceled','Executed when a holiday is canceled','holiday',802);
|
||||||
INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804);
|
INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) values ('HOLIDAY_DELETE','Holiday deleted','Executed when a holiday is deleted','holiday',804);
|
||||||
|
|
||||||
|
|
||||||
-- We do not delete old mexican legal forms because they may have been used. User will have to insert the new one manually not inserted because of conflict if he need them.
|
-- We do not delete old mexican legal forms because they may have been used. User will have to insert the new one manually not inserted because of conflict if he need them.
|
||||||
--DELETE FROM llx_c_forme_juridique WHERE code IN ('15401', '15402', '15403', '15404', '15405', '15406');
|
--DELETE FROM llx_c_forme_juridique WHERE code IN ('15401', '15402', '15403', '15404', '15405', '15406');
|
||||||
|
|
||||||
@ -529,3 +530,7 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154,
|
|||||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15417', '624 - Coordinados', 1);
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15417', '624 - Coordinados', 1);
|
||||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15418', '625 - Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas', 1);
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15418', '625 - Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas', 1);
|
||||||
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15419', '626 - Régimen Simplificado de Confianza', 1);
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15419', '626 - Régimen Simplificado de Confianza', 1);
|
||||||
|
|
||||||
|
-- VMYSQL4.3 ALTER TABLE llx_user MODIFY COLUMN fk_soc integer NULL;
|
||||||
|
-- VPGSQL8.2 ALTER TABLE llx_user ALTER COLUMN fk_soc DROP NOT NULL;
|
||||||
|
|
||||||
|
|||||||
@ -69,6 +69,26 @@ ALTER TABLE llx_c_typent MODIFY COLUMN libelle varchar(128);
|
|||||||
UPDATE llx_rights_def SET perms = 'writeall' WHERE perms = 'writeall_advance' AND module = 'holiday';
|
UPDATE llx_rights_def SET perms = 'writeall' WHERE perms = 'writeall_advance' AND module = 'holiday';
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15401', '601 - General de Ley Personas Morales', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15402', '603 - Personas Morales con Fines no Lucrativos', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15403', '605 - Sueldos y Salarios e Ingresos Asimilados a Salarios', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15404', '606 - Arrendamiento', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15405', '607 - Régimen de Enajenación o Adquisición de Bienes', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15406', '608 - Demás ingresos', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15407', '610 - Residentes en el Extranjero sin Establecimiento Permanente en México', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15408', '611 - Ingresos por Dividendos (socios y accionistas)', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15409', '612 - Personas Físicas con Actividades Empresariales y Profesionales', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15410', '614 - Ingresos por intereses', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15411', '615 - Régimen de los ingresos por obtención de premios', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15412', '616 - Sin obligaciones fiscales', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15413', '620 - Sociedades Cooperativas de Producción que optan por diferir sus ingresos', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15414', '621 - Incorporación Fiscal', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15415', '622 - Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15416', '623 - Opcional para Grupos de Sociedades', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15417', '624 - Coordinados', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15418', '625 - Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas', 1);
|
||||||
|
INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15419', '626 - Régimen Simplificado de Confianza', 1);
|
||||||
|
|
||||||
|
|
||||||
-- v16
|
-- v16
|
||||||
|
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_login (login, entity);
|
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_login (login, entity);
|
||||||
|
|
||||||
ALTER TABLE llx_user ADD INDEX idx_user_fk_societe (fk_soc);
|
ALTER TABLE llx_user ADD INDEX idx_user_fk_societe (fk_soc);
|
||||||
|
|
||||||
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_fk_socpeople (fk_socpeople);
|
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_fk_socpeople (fk_socpeople);
|
||||||
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_fk_member (fk_member);
|
ALTER TABLE llx_user ADD UNIQUE INDEX uk_user_fk_member (fk_member);
|
||||||
|
|||||||
@ -64,12 +64,12 @@ create table llx_user
|
|||||||
--module_comm smallint DEFAULT 1,
|
--module_comm smallint DEFAULT 1,
|
||||||
--module_compta smallint DEFAULT 1,
|
--module_compta smallint DEFAULT 1,
|
||||||
|
|
||||||
fk_soc integer, -- id thirdparty if user linked to a company (external user)
|
fk_soc integer NULL, -- id thirdparty if user linked to a company (external user)
|
||||||
fk_socpeople integer, -- id contact origin if user linked to a contact
|
fk_socpeople integer NULL, -- id contact origin if user linked to a contact
|
||||||
fk_member integer, -- if member if suer linked to a member
|
fk_member integer NULL, -- if member if suer linked to a member
|
||||||
fk_user integer, -- Supervisor, hierarchic parent
|
fk_user integer NULL, -- Supervisor, hierarchic parent
|
||||||
fk_user_expense_validator integer,
|
fk_user_expense_validator integer NULL,
|
||||||
fk_user_holiday_validator integer,
|
fk_user_holiday_validator integer NULL,
|
||||||
|
|
||||||
idpers1 varchar(128),
|
idpers1 varchar(128),
|
||||||
idpers2 varchar(128),
|
idpers2 varchar(128),
|
||||||
|
|||||||
@ -183,4 +183,5 @@ NoBankAccountDefined=No bank account defined
|
|||||||
NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled.
|
NoRecordFoundIBankcAccount=No record found in bank account. Commonly, this occurs when a record has been deleted manually from the list of transaction in the bank account (for example during a reconciliation of the bank account). Another reason is that the payment was recorded when the module "%s" was disabled.
|
||||||
AlreadyOneBankAccount=Already one bank account defined
|
AlreadyOneBankAccount=Already one bank account defined
|
||||||
SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level
|
SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformation=SEPA transfer: 'Payment Type' at 'Credit Transfer' level
|
||||||
SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=SEPA XML: PaymentTypeInformation is mandatory and can now be placed at CreditTransferTransactionInformation level (instead of Payment level). We strongly recommend to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level.
|
SEPAXMLPlacePaymentTypeInformationInCreditTransfertransactionInformationHelp=SEPA XML: PaymentTypeInformation is mandatory and can now be placed at CreditTransferTransactionInformation level (instead of Payment level). We strongly recommend to place PaymentTypeInformation at Payment level, as all banks will not necessarily accept it at CreditTransferTransactionInformation level. Contact your bank before placing PaymentTypeInformation at CreditTransferTransactionInformation level.
|
||||||
|
ToCreateRelatedRecordIntoBank=To create missing related bank record
|
||||||
|
|||||||
@ -67,7 +67,7 @@ ErrorDestinationAlreadyExists=Another file with the name <b>%s</b> already exist
|
|||||||
ErrorPartialFile=File not received completely by server.
|
ErrorPartialFile=File not received completely by server.
|
||||||
ErrorNoTmpDir=Temporary directy %s does not exists.
|
ErrorNoTmpDir=Temporary directy %s does not exists.
|
||||||
ErrorUploadBlockedByAddon=Upload blocked by a PHP/Apache plugin.
|
ErrorUploadBlockedByAddon=Upload blocked by a PHP/Apache plugin.
|
||||||
ErrorFileSizeTooLarge=File size is too large.
|
ErrorFileSizeTooLarge=File size is too large or file not provided.
|
||||||
ErrorFieldTooLong=Field %s is too long.
|
ErrorFieldTooLong=Field %s is too long.
|
||||||
ErrorSizeTooLongForIntType=Size too long for int type (%s digits maximum)
|
ErrorSizeTooLongForIntType=Size too long for int type (%s digits maximum)
|
||||||
ErrorSizeTooLongForVarcharType=Size too long for string type (%s chars maximum)
|
ErrorSizeTooLongForVarcharType=Size too long for string type (%s chars maximum)
|
||||||
|
|||||||
@ -1165,3 +1165,5 @@ NotClosedYet=Not yet closed
|
|||||||
ClearSignature=Reset signature
|
ClearSignature=Reset signature
|
||||||
CanceledHidden=Canceled hidden
|
CanceledHidden=Canceled hidden
|
||||||
CanceledShown=Canceled shown
|
CanceledShown=Canceled shown
|
||||||
|
Terminate=Terminate
|
||||||
|
Terminated=Terminated
|
||||||
|
|||||||
@ -503,7 +503,7 @@ if ((!defined('NOCSRFCHECK') && empty($dolibarr_nocsrfcheck) && getDolGlobalInt(
|
|||||||
// If token is not provided or empty, error (we are in case it is mandatory)
|
// If token is not provided or empty, error (we are in case it is mandatory)
|
||||||
if (!GETPOST('token', 'alpha') || GETPOST('token', 'alpha') == 'notrequired') {
|
if (!GETPOST('token', 'alpha') || GETPOST('token', 'alpha') == 'notrequired') {
|
||||||
if (GETPOST('uploadform', 'int')) {
|
if (GETPOST('uploadform', 'int')) {
|
||||||
dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." refused. File size too large.");
|
dol_syslog("--- Access to ".(empty($_SERVER["REQUEST_METHOD"]) ? '' : $_SERVER["REQUEST_METHOD"].' ').$_SERVER["PHP_SELF"]." refused. File size too large or not provided.");
|
||||||
$langs->loadLangs(array("errors", "install"));
|
$langs->loadLangs(array("errors", "install"));
|
||||||
print $langs->trans("ErrorFileSizeTooLarge").' ';
|
print $langs->trans("ErrorFileSizeTooLarge").' ';
|
||||||
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
print $langs->trans("ErrorGoBackAndCorrectParameters");
|
||||||
|
|||||||
@ -118,7 +118,7 @@ class Partnership extends CommonObject
|
|||||||
'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,),
|
'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,),
|
||||||
'date_partnership_start' => array('type'=>'date', 'label'=>'DatePartnershipStart', 'enabled'=>'1', 'position'=>52, 'notnull'=>1, 'visible'=>1,),
|
'date_partnership_start' => array('type'=>'date', 'label'=>'DatePartnershipStart', 'enabled'=>'1', 'position'=>52, 'notnull'=>1, 'visible'=>1,),
|
||||||
'date_partnership_end' => array('type'=>'date', 'label'=>'DatePartnershipEnd', 'enabled'=>'1', 'position'=>53, 'notnull'=>0, 'visible'=>1,),
|
'date_partnership_end' => array('type'=>'date', 'label'=>'DatePartnershipEnd', 'enabled'=>'1', 'position'=>53, 'notnull'=>0, 'visible'=>1,),
|
||||||
'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>54, 'notnull'=>0, 'visible'=>2, 'index'=>1, 'arrayofkeyval'=>array('-1'=>'','0'=>'Draft', '1'=>'Accepted', '2'=>'Refused', '9'=>'Canceled'),),
|
'status' => array('type'=>'smallint', 'label'=>'Status', 'enabled'=>'1', 'position'=>54, 'notnull'=>0, 'visible'=>2, 'index'=>1, 'arrayofkeyval'=>array('-1'=>'','0'=>'Draft', '1'=>'Accepted', '2'=>'Refused', '9'=>'Terminated'),),
|
||||||
'count_last_url_check_error' => array('type'=>'integer', 'label'=>'CountLastUrlCheckError', 'enabled'=>'1', 'position'=>63, 'notnull'=>0, 'visible'=>-2, 'default'=>'0',),
|
'count_last_url_check_error' => array('type'=>'integer', 'label'=>'CountLastUrlCheckError', 'enabled'=>'1', 'position'=>63, 'notnull'=>0, 'visible'=>-2, 'default'=>'0',),
|
||||||
'last_check_backlink' => array('type'=>'datetime', 'label'=>'LastCheckBacklink', 'enabled'=>'1', 'position'=>65, 'notnull'=>0, 'visible'=>-2,),
|
'last_check_backlink' => array('type'=>'datetime', 'label'=>'LastCheckBacklink', 'enabled'=>'1', 'position'=>65, 'notnull'=>0, 'visible'=>-2,),
|
||||||
'reason_decline_or_cancel' => array('type'=>'text', 'label'=>'ReasonDeclineOrCancel', 'enabled'=>'1', 'position'=>64, 'notnull'=>0, 'visible'=>-2,),
|
'reason_decline_or_cancel' => array('type'=>'text', 'label'=>'ReasonDeclineOrCancel', 'enabled'=>'1', 'position'=>64, 'notnull'=>0, 'visible'=>-2,),
|
||||||
@ -1085,12 +1085,12 @@ class Partnership extends CommonObject
|
|||||||
$this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated');
|
$this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated');
|
||||||
$this->labelStatus[self::STATUS_APPROVED] = $langs->transnoentitiesnoconv('Approved');
|
$this->labelStatus[self::STATUS_APPROVED] = $langs->transnoentitiesnoconv('Approved');
|
||||||
$this->labelStatus[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv('Refused');
|
$this->labelStatus[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv('Refused');
|
||||||
$this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Canceled');
|
$this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Terminated');
|
||||||
$this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft');
|
$this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv('Draft');
|
||||||
$this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated');
|
$this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv('Validated');
|
||||||
$this->labelStatusShort[self::STATUS_APPROVED] = $langs->transnoentitiesnoconv('Approved');
|
$this->labelStatusShort[self::STATUS_APPROVED] = $langs->transnoentitiesnoconv('Approved');
|
||||||
$this->labelStatusShort[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv('Refused');
|
$this->labelStatusShort[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv('Refused');
|
||||||
$this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Canceled');
|
$this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv('Terminated');
|
||||||
}
|
}
|
||||||
|
|
||||||
$statusType = 'status'.$status;
|
$statusType = 'status'.$status;
|
||||||
|
|||||||
@ -64,7 +64,7 @@ class PartnershipUtils
|
|||||||
{
|
{
|
||||||
global $conf, $langs, $user;
|
global $conf, $langs, $user;
|
||||||
|
|
||||||
$managedfor = $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
$managedfor = empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) ? 'thirdparty' : $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
||||||
|
|
||||||
if ($managedfor != 'member') {
|
if ($managedfor != 'member') {
|
||||||
return 0; // If option 'PARTNERSHIP_IS_MANAGED_FOR' = 'thirdparty', this cron job does nothing.
|
return 0; // If option 'PARTNERSHIP_IS_MANAGED_FOR' = 'thirdparty', this cron job does nothing.
|
||||||
|
|||||||
@ -79,13 +79,14 @@ $permissiontodelete = $user->rights->partnership->delete || ($permissiontoadd &
|
|||||||
$permissionnote = $user->rights->partnership->write; // Used by the include of actions_setnotes.inc.php
|
$permissionnote = $user->rights->partnership->write; // Used by the include of actions_setnotes.inc.php
|
||||||
$permissiondellink = $user->rights->partnership->write; // Used by the include of actions_dellink.inc.php
|
$permissiondellink = $user->rights->partnership->write; // Used by the include of actions_dellink.inc.php
|
||||||
$upload_dir = $conf->partnership->multidir_output[isset($object->entity) ? $object->entity : 1];
|
$upload_dir = $conf->partnership->multidir_output[isset($object->entity) ? $object->entity : 1];
|
||||||
$managedfor = $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
$managedfor = empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) ? 'thirdparty' : $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
||||||
|
|
||||||
if (empty($conf->partnership->enabled)) accessforbidden();
|
if (empty($conf->partnership->enabled)) accessforbidden();
|
||||||
if (empty($permissiontoread)) accessforbidden();
|
if (empty($permissiontoread)) accessforbidden();
|
||||||
if ($object->id > 0 && $object->fk_member > 0 && $managedfor != 'member') accessforbidden();
|
if ($object->id > 0 && $object->fk_member > 0 && $managedfor != 'member') accessforbidden();
|
||||||
if ($object->id > 0 && $object->fk_soc > 0 && $managedfor != 'thirdparty') accessforbidden();
|
if ($object->id > 0 && $object->fk_soc > 0 && $managedfor != 'thirdparty') accessforbidden();
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
@ -578,7 +579,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
// Approve
|
// Approve
|
||||||
if ($object->status == $object::STATUS_VALIDATED) {
|
if ($object->status == $object::STATUS_VALIDATED) {
|
||||||
if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) {
|
if (empty($object->table_element_line) || (is_array($object->lines) && count($object->lines) > 0)) {
|
||||||
print dolGetButtonAction($langs->trans('Approved'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_accept&confirm=yes&token='.newToken(), '', $permissiontoadd);
|
print dolGetButtonAction($langs->trans('Approve'), '', 'default', $_SERVER['PHP_SELF'].'?id='.$object->id.'&action=confirm_accept&confirm=yes&token='.newToken(), '', $permissiontoadd);
|
||||||
} else {
|
} else {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
print dolGetButtonAction($langs->trans("ErrorAddAtLeastOneLineFirst"), $langs->trans("Approved"), 'default', '#', '', 0);
|
print dolGetButtonAction($langs->trans("ErrorAddAtLeastOneLineFirst"), $langs->trans("Approved"), 'default', '#', '', 0);
|
||||||
@ -588,7 +589,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
|
|||||||
// Cancel
|
// Cancel
|
||||||
if ($permissiontoadd) {
|
if ($permissiontoadd) {
|
||||||
if ($object->status == $object::STATUS_APPROVED) {
|
if ($object->status == $object::STATUS_APPROVED) {
|
||||||
print dolGetButtonAction($langs->trans('Cancel'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=close&token='.newToken(), '', $permissiontoadd);
|
print dolGetButtonAction($langs->trans('Resiliate'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=close&token='.newToken(), '', $permissiontoadd);
|
||||||
} elseif ($object->status > $object::STATUS_APPROVED) {
|
} elseif ($object->status > $object::STATUS_APPROVED) {
|
||||||
// print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen&token='.newToken().'">'.$langs->trans("Re-Open").'</a>'."\n";
|
// print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'&action=reopen&token='.newToken().'">'.$langs->trans("Re-Open").'</a>'."\n";
|
||||||
print dolGetButtonAction($langs->trans('Re-Open'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_reopen&confirm=yes&token='.newToken(), '', $permissiontoadd);
|
print dolGetButtonAction($langs->trans('Re-Open'), '', 'default', $_SERVER["PHP_SELF"].'?id='.$object->id.'&action=confirm_reopen&confirm=yes&token='.newToken(), '', $permissiontoadd);
|
||||||
|
|||||||
@ -74,7 +74,7 @@ $extrafields->fetch_name_optionals_label($object->table_element);
|
|||||||
|
|
||||||
$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
|
$search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_');
|
||||||
|
|
||||||
$managedfor = $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
$managedfor = empty($conf->global->PARTNERSHIP_IS_MANAGED_FOR) ? 'thirdparty' : $conf->global->PARTNERSHIP_IS_MANAGED_FOR;
|
||||||
|
|
||||||
if ($managedfor != 'member' && $sortfield == 'd.datefin') $sortfield = '';
|
if ($managedfor != 'member' && $sortfield == 'd.datefin') $sortfield = '';
|
||||||
|
|
||||||
|
|||||||
@ -699,7 +699,7 @@ if ($search_opp_percent != '') {
|
|||||||
if ($search_public != '') {
|
if ($search_public != '') {
|
||||||
$param .= '&search_public='.urlencode($search_public);
|
$param .= '&search_public='.urlencode($search_public);
|
||||||
}
|
}
|
||||||
if ($search_project_user != '') {
|
if ($search_project_user > 0) {
|
||||||
$param .= '&search_project_user='.urlencode($search_project_user);
|
$param .= '&search_project_user='.urlencode($search_project_user);
|
||||||
}
|
}
|
||||||
if ($search_project_contact != '') {
|
if ($search_project_contact != '') {
|
||||||
|
|||||||
@ -41,6 +41,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/multicurrency/class/multicurrency.class.php';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to manage third parties objects (customers, suppliers, prospects...)
|
* Class to manage third parties objects (customers, suppliers, prospects...)
|
||||||
*/
|
*/
|
||||||
@ -2573,7 +2574,7 @@ class Societe extends CommonObject
|
|||||||
$name .= ' ('.$this->name_alias.')';
|
$name .= ' ('.$this->name_alias.')';
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = ''; $label = '';
|
$result = ''; $label = ''; $label2 = '';
|
||||||
$linkstart = ''; $linkend = '';
|
$linkstart = ''; $linkend = '';
|
||||||
|
|
||||||
if (!empty($this->logo) && class_exists('Form')) {
|
if (!empty($this->logo) && class_exists('Form')) {
|
||||||
@ -2641,47 +2642,48 @@ class Societe extends CommonObject
|
|||||||
}
|
}
|
||||||
$label .= '<br>'.implode(' ', $phonelist);
|
$label .= '<br>'.implode(' ', $phonelist);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($this->address)) {
|
if (!empty($this->address)) {
|
||||||
$label .= '<br><b>'.$langs->trans("Address").':</b> '.dol_format_address($this, 1, ' ', $langs); // Address + country
|
$label2 .= '<br><b>'.$langs->trans("Address").':</b> '.dol_format_address($this, 1, ' ', $langs); // Address + country
|
||||||
} elseif (!empty($this->country_code)) {
|
} elseif (!empty($this->country_code)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Country').':</b> '.$this->country_code;
|
$label2 .= '<br><b>'.$langs->trans('Country').':</b> '.$this->country_code;
|
||||||
}
|
}
|
||||||
if (!empty($this->tva_intra) || (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP) && strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'vatnumber') !== false)) {
|
if (!empty($this->tva_intra) || (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP) && strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'vatnumber') !== false)) {
|
||||||
$label .= '<br><b>'.$langs->trans('VATIntra').':</b> '.dol_escape_htmltag($this->tva_intra);
|
$label2 .= '<br><b>'.$langs->trans('VATIntra').':</b> '.dol_escape_htmltag($this->tva_intra);
|
||||||
}
|
}
|
||||||
if (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP)) {
|
if (!empty($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP)) {
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid1') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid1') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId1'.$this->country_code).':</b> '.$this->idprof1;
|
$label2 .= '<br><b>'.$langs->trans('ProfId1'.$this->country_code).':</b> '.$this->idprof1;
|
||||||
}
|
}
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid2') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid2') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId2'.$this->country_code).':</b> '.$this->idprof2;
|
$label2 .= '<br><b>'.$langs->trans('ProfId2'.$this->country_code).':</b> '.$this->idprof2;
|
||||||
}
|
}
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid3') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid3') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId3'.$this->country_code).':</b> '.$this->idprof3;
|
$label2 .= '<br><b>'.$langs->trans('ProfId3'.$this->country_code).':</b> '.$this->idprof3;
|
||||||
}
|
}
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid4') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid4') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId4'.$this->country_code).':</b> '.$this->idprof4;
|
$label2 .= '<br><b>'.$langs->trans('ProfId4'.$this->country_code).':</b> '.$this->idprof4;
|
||||||
}
|
}
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid5') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid5') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId5'.$this->country_code).':</b> '.$this->idprof5;
|
$label2 .= '<br><b>'.$langs->trans('ProfId5'.$this->country_code).':</b> '.$this->idprof5;
|
||||||
}
|
}
|
||||||
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid6') !== false) {
|
if (strpos($conf->global->SOCIETE_SHOW_FIELD_IN_TOOLTIP, 'profid6') !== false) {
|
||||||
$label .= '<br><b>'.$langs->trans('ProfId6'.$this->country_code).':</b> '.$this->idprof6;
|
$label2 .= '<br><b>'.$langs->trans('ProfId6'.$this->country_code).':</b> '.$this->idprof6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!empty($this->code_client) && ($this->client == 1 || $this->client == 3)) {
|
if (!empty($this->code_client) && ($this->client == 1 || $this->client == 3)) {
|
||||||
$label .= '<br><b>'.$langs->trans('CustomerCode').':</b> '.$this->code_client;
|
$label2 .= '<br><b>'.$langs->trans('CustomerCode').':</b> '.$this->code_client;
|
||||||
}
|
}
|
||||||
if (!empty($this->code_fournisseur) && $this->fournisseur) {
|
if (!empty($this->code_fournisseur) && $this->fournisseur) {
|
||||||
$label .= '<br><b>'.$langs->trans('SupplierCode').':</b> '.$this->code_fournisseur;
|
$label2 .= '<br><b>'.$langs->trans('SupplierCode').':</b> '.$this->code_fournisseur;
|
||||||
}
|
}
|
||||||
if (!empty($conf->accounting->enabled) && ($this->client == 1 || $this->client == 3)) {
|
if (!empty($conf->accounting->enabled) && ($this->client == 1 || $this->client == 3)) {
|
||||||
$label .= '<br><b>'.$langs->trans('CustomerAccountancyCode').':</b> '.($this->code_compta ? $this->code_compta : $this->code_compta_client);
|
$label2 .= '<br><b>'.$langs->trans('CustomerAccountancyCode').':</b> '.($this->code_compta ? $this->code_compta : $this->code_compta_client);
|
||||||
}
|
}
|
||||||
if (!empty($conf->accounting->enabled) && $this->fournisseur) {
|
if (!empty($conf->accounting->enabled) && $this->fournisseur) {
|
||||||
$label .= '<br><b>'.$langs->trans('SupplierAccountancyCode').':</b> '.$this->code_compta_fournisseur;
|
$label2 .= '<br><b>'.$langs->trans('SupplierAccountancyCode').':</b> '.$this->code_compta_fournisseur;
|
||||||
}
|
}
|
||||||
$label .= '</div>';
|
$label .= ($label2 ? '<br>'.$label2 : '').'</div>';
|
||||||
|
|
||||||
// Add type of canvas
|
// Add type of canvas
|
||||||
$linkstart .= (!empty($this->canvas) ? '&canvas='.$this->canvas : '');
|
$linkstart .= (!empty($this->canvas) ? '&canvas='.$this->canvas : '');
|
||||||
|
|||||||
@ -5246,7 +5246,7 @@ td.cal_other_month {
|
|||||||
/* ============================================================================== */
|
/* ============================================================================== */
|
||||||
|
|
||||||
/* CSS for treeview */
|
/* CSS for treeview */
|
||||||
.treeview ul { background-color: transparent !important; margin-bottom: 4px !important; margin-top: 0 !important; padding-top: 8px !important; }
|
.treeview ul { background-color: transparent !important; margin-bottom: 4px !important; margin-top: 0 !important; padding-top: 2px !important; }
|
||||||
.treeview li { background-color: transparent !important; padding: 0 0 0 16px !important; min-height: 30px; }
|
.treeview li { background-color: transparent !important; padding: 0 0 0 16px !important; min-height: 30px; }
|
||||||
.treeview .hover { color: var(--colortextlink) !important; text-decoration: underline !important; }
|
.treeview .hover { color: var(--colortextlink) !important; text-decoration: underline !important; }
|
||||||
.treeview .hitarea { margin-top: 3px; }
|
.treeview .hitarea { margin-top: 3px; }
|
||||||
@ -6266,7 +6266,7 @@ span.noborderoncategories a, li.noborderoncategories a {
|
|||||||
/* vertical-align: top; */
|
/* vertical-align: top; */
|
||||||
}
|
}
|
||||||
span.noborderoncategories {
|
span.noborderoncategories {
|
||||||
padding: 4px 5px 0px 5px;
|
padding: 3px 5px 3px 5px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.categtextwhite, .treeview .categtextwhite.hover {
|
.categtextwhite, .treeview .categtextwhite.hover {
|
||||||
|
|||||||
@ -6145,7 +6145,7 @@ span.noborderoncategories a, li.noborderoncategories a {
|
|||||||
line-height: normal;
|
line-height: normal;
|
||||||
}
|
}
|
||||||
span.noborderoncategories {
|
span.noborderoncategories {
|
||||||
padding: 3px 5px 0px 5px;
|
padding: 3px 5px 3px 5px;
|
||||||
}
|
}
|
||||||
.categtextwhite, .treeview .categtextwhite.hover {
|
.categtextwhite, .treeview .categtextwhite.hover {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
|
|||||||
@ -917,7 +917,7 @@ if ($action == 'create' || $action == 'adduserldap') {
|
|||||||
$defaultemployee = '1';
|
$defaultemployee = '1';
|
||||||
print '<tr>';
|
print '<tr>';
|
||||||
print '<td>'.$langs->trans('Employee').'</td><td>';
|
print '<td>'.$langs->trans('Employee').'</td><td>';
|
||||||
print '<input type="checkbox" name="employee" value="1"'.(GETPOST('employee') == '1' ? ' checked="checked"' : ($defaultemployee ? ' checked="checked"' : '')).'>';
|
print '<input type="checkbox" name="employee" value="1"'.(GETPOST('employee') == '1' ? ' checked="checked"' : (($defaultemployee && !GETPOSTISSET('login')) ? ' checked="checked"' : '')).'>';
|
||||||
//print $form->selectyesno("employee", (GETPOST('employee') != '' ?GETPOST('employee') : $defaultemployee), 1);
|
//print $form->selectyesno("employee", (GETPOST('employee') != '' ?GETPOST('employee') : $defaultemployee), 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user