Merge branch '8.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: .travis.yml htdocs/fourn/class/fournisseur.facture.class.php htdocs/product/fournisseurs.php htdocs/ticket/class/ticket.class.php
This commit is contained in:
commit
3ebfb23407
@ -2,7 +2,7 @@
|
|||||||
# from Dolibarr GitHub repository.
|
# from Dolibarr GitHub repository.
|
||||||
# For syntax, see http://about.travis-ci.org/docs/user/languages/php/
|
# For syntax, see http://about.travis-ci.org/docs/user/languages/php/
|
||||||
|
|
||||||
# We use dist: precise to have php 5.3 available
|
# We use dist: trusty to have php 5.4+ available
|
||||||
dist: trusty
|
dist: trusty
|
||||||
sudo: required
|
sudo: required
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# DOLIBARR ERP & CRM
|
# DOLIBARR ERP & CRM
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
|
Dolibarr ERP & CRM is a modern software package to manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
|
||||||
|
|
||||||
|
|||||||
@ -1250,8 +1250,13 @@ if ($id > 0)
|
|||||||
if (! empty($object->fk_element) && ! empty($object->elementtype))
|
if (! empty($object->fk_element) && ! empty($object->elementtype))
|
||||||
{
|
{
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
print '<tr><td>'.$langs->trans("LinkedObject").'</td>';
|
print '<tr>';
|
||||||
print '<td>'.dolGetElementUrl($object->fk_element,$object->elementtype,1).'</td></tr>';
|
print '<td>'.$langs->trans("LinkedObject").'</td>';
|
||||||
|
print '<td>'.dolGetElementUrl($object->fk_element,$object->elementtype,1);
|
||||||
|
print '<input type="hidden" name="fk_element" value="'.$object->fk_element.'">';
|
||||||
|
print '<input type="hidden" name="elementtype" value="'.$object->elementtype.'">';
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
|
|||||||
@ -1514,7 +1514,7 @@ if ($action == 'create')
|
|||||||
// Bank Account
|
// Bank Account
|
||||||
if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && ! empty($conf->banque->enabled)) {
|
if (! empty($conf->global->BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL) && ! empty($conf->banque->enabled)) {
|
||||||
print '<tr><td>' . $langs->trans('BankAccount') . '</td><td>';
|
print '<tr><td>' . $langs->trans('BankAccount') . '</td><td>';
|
||||||
$form->select_comptes($fk_account, 'fk_account', 0, '', 1);
|
$form->select_comptes($soc->fk_account, 'fk_account', 0, '', 1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -163,6 +163,7 @@ function calcul_price_total($qty, $pu, $remise_percent_ligne, $txtva, $uselocalt
|
|||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($pu === '') $pu=0;
|
||||||
// pu_devise calculation from pu
|
// pu_devise calculation from pu
|
||||||
if (empty($pu_devise) && !empty($multicurrency_tx)) {
|
if (empty($pu_devise) && !empty($multicurrency_tx)) {
|
||||||
if (is_numeric($pu) && is_numeric($multicurrency_tx)) $pu_devise = $pu * $multicurrency_tx;
|
if (is_numeric($pu) && is_numeric($multicurrency_tx)) $pu_devise = $pu * $multicurrency_tx;
|
||||||
|
|||||||
@ -2428,7 +2428,7 @@ else
|
|||||||
$discount = new DiscountAbsolute($db);
|
$discount = new DiscountAbsolute($db);
|
||||||
$result = $discount->fetch(0, 0, $object->id);
|
$result = $discount->fetch(0, 0, $object->id);
|
||||||
if ($result > 0){
|
if ($result > 0){
|
||||||
print '. '.$langs->trans("CreditNoteConvertedIntoDiscount", $object->getLibType(), $discount->getNomUrl(1, 'discount')).'<br>';
|
print '. '.$langs->trans("CreditNoteConvertedIntoDiscount", $object->getLibType(1), $discount->getNomUrl(1, 'discount')).'<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -188,6 +188,7 @@ NumberOfUnitsSupplierInvoices=Number of units on supplier invoices
|
|||||||
EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
|
EMailTextInterventionAddedContact=A new intervention %s has been assigned to you.
|
||||||
EMailTextInterventionValidated=The intervention %s has been validated.
|
EMailTextInterventionValidated=The intervention %s has been validated.
|
||||||
EMailTextInvoiceValidated=The invoice %s has been validated.
|
EMailTextInvoiceValidated=The invoice %s has been validated.
|
||||||
|
EMailTextInvoicePayed=The invoice %s has been payed.
|
||||||
EMailTextProposalValidated=The proposal %s has been validated.
|
EMailTextProposalValidated=The proposal %s has been validated.
|
||||||
EMailTextProposalClosedSigned=The proposal %s has been closed signed.
|
EMailTextProposalClosedSigned=The proposal %s has been closed signed.
|
||||||
EMailTextOrderValidated=The order %s has been validated.
|
EMailTextOrderValidated=The order %s has been validated.
|
||||||
|
|||||||
@ -189,11 +189,11 @@ TicketGoIntoContactTab=Please go into "Contacts" tab to select them
|
|||||||
TicketMessageMailIntro=Introduction
|
TicketMessageMailIntro=Introduction
|
||||||
TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved.
|
TicketMessageMailIntroHelp=This text is added only at the beginning of the email and will not be saved.
|
||||||
TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email
|
TicketMessageMailIntroLabelAdmin=Introduction to the message when sending email
|
||||||
TicketMessageMailIntroText=<p> Hello </ p> A new response was sent on a ticket that you contact. Here is the message: </ p>
|
TicketMessageMailIntroText=Hello,<br>A new response was sent on a ticket that you contact. Here is the message:<br>
|
||||||
TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket.
|
TicketMessageMailIntroHelpAdmin=This text will be inserted before the text of the response to a ticket.
|
||||||
TicketMessageMailSignature=Signature
|
TicketMessageMailSignature=Signature
|
||||||
TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved.
|
TicketMessageMailSignatureHelp=This text is added only at the end of the email and will not be saved.
|
||||||
TicketMessageMailSignatureText=<p>Cordialement,</p><p>--</p>
|
TicketMessageMailSignatureText=<p>Sincerely,</p><p>--</p>
|
||||||
TicketMessageMailSignatureLabelAdmin=Signature of response email
|
TicketMessageMailSignatureLabelAdmin=Signature of response email
|
||||||
TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message.
|
TicketMessageMailSignatureHelpAdmin=This text will be inserted after the response message.
|
||||||
TicketMessageHelp=Only this text will be saved in the message list on ticket card.
|
TicketMessageHelp=Only this text will be saved in the message list on ticket card.
|
||||||
|
|||||||
@ -35,7 +35,7 @@ AgendaAutoActionDesc= Définissez ici les événements pour lesquels Dolibarr cr
|
|||||||
AgendaSetupOtherDesc= Cette page permet de configurer quelques options permettant d'exporter une vue de votre agenda Dolibarr vers un calendrier externe (Thunderbird, Google calendar, …)
|
AgendaSetupOtherDesc= Cette page permet de configurer quelques options permettant d'exporter une vue de votre agenda Dolibarr vers un calendrier externe (Thunderbird, Google calendar, …)
|
||||||
AgendaExtSitesDesc=Cette page permet d'ajouter des sources de calendriers externes pour les visualiser au sein de l'agenda Dolibarr.
|
AgendaExtSitesDesc=Cette page permet d'ajouter des sources de calendriers externes pour les visualiser au sein de l'agenda Dolibarr.
|
||||||
ActionsEvents=Événements pour lesquels Dolibarr doit insérer un évènement dans l'agenda en automatique.
|
ActionsEvents=Événements pour lesquels Dolibarr doit insérer un évènement dans l'agenda en automatique.
|
||||||
EventRemindersByEmailNotEnabled=Les rappels d'événements par email n'ont pas été activés dans la configuration du module Agenda.
|
EventRemindersByEmailNotEnabled=Les rappels d'événements par email n'ont pas été activés dans la configuration du module %s.
|
||||||
##### Agenda event labels #####
|
##### Agenda event labels #####
|
||||||
NewCompanyToDolibarr=Tiers %s créé
|
NewCompanyToDolibarr=Tiers %s créé
|
||||||
ContractValidatedInDolibarr=Contrat %s validé
|
ContractValidatedInDolibarr=Contrat %s validé
|
||||||
|
|||||||
@ -188,6 +188,7 @@ NumberOfUnitsSupplierInvoices=Quantités présentes dans les factures fournisseu
|
|||||||
EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée
|
EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée
|
||||||
EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée.
|
EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée.
|
||||||
EMailTextInvoiceValidated=La facture %s vous concernant a été validée.
|
EMailTextInvoiceValidated=La facture %s vous concernant a été validée.
|
||||||
|
EMailTextInvoicePayed=La facture %s a été payée.
|
||||||
EMailTextProposalValidated=La proposition commerciale %s vous concernant a été validée.
|
EMailTextProposalValidated=La proposition commerciale %s vous concernant a été validée.
|
||||||
EMailTextProposalClosedSigned=La proposition %s a été clôturée signée.
|
EMailTextProposalClosedSigned=La proposition %s a été clôturée signée.
|
||||||
EMailTextOrderValidated=La commande %s vous concernant a été validée.
|
EMailTextOrderValidated=La commande %s vous concernant a été validée.
|
||||||
|
|||||||
@ -71,6 +71,8 @@ function opensurvey_prepare_head(Opensurveysondage $object)
|
|||||||
*/
|
*/
|
||||||
function llxHeaderSurvey($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='')
|
function llxHeaderSurvey($title, $head="", $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='')
|
||||||
{
|
{
|
||||||
|
global $conf, $mysoc;
|
||||||
|
|
||||||
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
|
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
|
||||||
print '<body id="mainbody" class="publicnewmemberform" style="margin-top: 10px;">';
|
print '<body id="mainbody" class="publicnewmemberform" style="margin-top: 10px;">';
|
||||||
|
|
||||||
|
|||||||
@ -249,14 +249,20 @@ if (empty($reshook))
|
|||||||
if (isset($_POST['ref_fourn_price_id']))
|
if (isset($_POST['ref_fourn_price_id']))
|
||||||
$object->fetch_product_fournisseur_price($_POST['ref_fourn_price_id']);
|
$object->fetch_product_fournisseur_price($_POST['ref_fourn_price_id']);
|
||||||
|
|
||||||
if ($conf->multicurrency->enabled) {
|
$newprice = price2num(GETPOST("price","alpha"));
|
||||||
$ret = $object->update_buyprice($quantity, $_POST["price"], $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $_POST["multicurrency_price"], $_POST["multicurrency_price_base_type"], $_POST["multicurrency_tx"], $_POST["multicurrency_code"], $supplier_description);
|
|
||||||
|
if ($conf->multicurrency->enabled)
|
||||||
|
{
|
||||||
|
$multicurrency_tx = price2num(GETPOST("multicurrency_tx",'alpha'));
|
||||||
|
$multicurrency_price = price2num(GETPOST("multicurrency_price",'alpha'));
|
||||||
|
$multicurrency_code = GETPOST("multicurrency_code",'alpha');
|
||||||
|
|
||||||
|
$ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', $multicurrency_price, $_POST["multicurrency_price_base_type"], $multicurrency_tx, $multicurrency_code, $supplier_description);
|
||||||
} else {
|
} else {
|
||||||
$ret = $object->update_buyprice($quantity, $_POST["price"], $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', 0, 'HT', 1, '', $supplier_description);
|
$ret = $object->update_buyprice($quantity, $newprice, $user, $_POST["price_base_type"], $supplier, $_POST["oselDispo"], $ref_fourn, $tva_tx, $_POST["charges"], $remise_percent, 0, $npr, $delivery_time_days, $supplier_reputation, array(), '', 0, 'HT', 1, '', $supplier_description);
|
||||||
}
|
}
|
||||||
if ($ret < 0)
|
if ($ret < 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
$error++;
|
$error++;
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
@ -566,7 +572,7 @@ if ($id > 0 || $ref)
|
|||||||
// Currency price qty min
|
// Currency price qty min
|
||||||
print '<tr><td class="fieldrequired">'.$langs->trans("PriceQtyMinCurrency").'</td>';
|
print '<tr><td class="fieldrequired">'.$langs->trans("PriceQtyMinCurrency").'</td>';
|
||||||
$pricesupplierincurrencytouse=(GETPOST('multicurrency_price')?GETPOST('multicurrency_price'):(isset($object->fourn_multicurrency_price)?$object->fourn_multicurrency_price:''));
|
$pricesupplierincurrencytouse=(GETPOST('multicurrency_price')?GETPOST('multicurrency_price'):(isset($object->fourn_multicurrency_price)?$object->fourn_multicurrency_price:''));
|
||||||
print '<td><input class="flat" name="multicurrency_price" size="8" value="'.$pricesupplierincurrencytouse.'">';
|
print '<td><input class="flat" name="multicurrency_price" size="8" value="'.price($pricesupplierincurrencytouse).'">';
|
||||||
print ' ';
|
print ' ';
|
||||||
print $form->selectPriceBaseType((GETPOST('multicurrency_price_base_type')?GETPOST('multicurrency_price_base_type'):'HT'), "multicurrency_price_base_type"); // We keep 'HT' here, multicurrency_price_base_type is not yet supported for supplier prices
|
print $form->selectPriceBaseType((GETPOST('multicurrency_price_base_type')?GETPOST('multicurrency_price_base_type'):'HT'), "multicurrency_price_base_type"); // We keep 'HT' here, multicurrency_price_base_type is not yet supported for supplier prices
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class Ticket extends CommonObject
|
|||||||
/**
|
/**
|
||||||
* @var int Does ticketcore support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
* @var int Does ticketcore support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
*/
|
*/
|
||||||
public $ismultientitymanaged = 0;
|
public $ismultientitymanaged = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int Does ticketcore support extrafields ? 0=No, 1=Yes
|
* @var int Does ticketcore support extrafields ? 0=No, 1=Yes
|
||||||
|
|||||||
@ -88,9 +88,9 @@ if ($id > 0 || ! empty($ref))
|
|||||||
{
|
{
|
||||||
$result = $object->fetch($id, $ref, '', 1);
|
$result = $object->fetch($id, $ref, '', 1);
|
||||||
$object->getrights();
|
$object->getrights();
|
||||||
$entitytouseforuserdir = $object->entity;
|
//$upload_dir = $conf->user->multidir_output[$object->entity] . "/" . $object->id ;
|
||||||
if (empty($entitytouseforuserdir)) $entitytouseforuserdir=1;
|
// For users, the upload_dir is always $conf->user->entity for the moment
|
||||||
$upload_dir = $conf->user->multidir_output[$entitytouseforuserdir] . "/" . $object->id ;
|
$upload_dir = $conf->user->dir_output. "/" . $object->id ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
|
||||||
|
|||||||
@ -228,7 +228,7 @@ if (preg_match('/\.\./',$fullpath_original_file) || preg_match('/[<>|]/',$fullpa
|
|||||||
if ($modulepart == 'barcode')
|
if ($modulepart == 'barcode')
|
||||||
{
|
{
|
||||||
$generator=GETPOST("generator","alpha");
|
$generator=GETPOST("generator","alpha");
|
||||||
$code=GETPOST("code",'alpha');
|
$code=GETPOST("code",'none'); // This can be rich content (qrcode, datamatrix, ...)
|
||||||
$encoding=GETPOST("encoding","alpha");
|
$encoding=GETPOST("encoding","alpha");
|
||||||
$readable=GETPOST("readable",'alpha')?GETPOST("readable","alpha"):"Y";
|
$readable=GETPOST("readable",'alpha')?GETPOST("readable","alpha"):"Y";
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user