Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into develop

Conflicts:
	htdocs/compta/facture/card.php
	htdocs/core/actions_sendmails.inc.php
	htdocs/core/class/commonobject.class.php
	htdocs/fourn/class/fournisseur.facture.class.php
	htdocs/fourn/facture/card.php
This commit is contained in:
Laurent Destailleur 2020-10-25 21:33:13 +01:00
commit 2638d4596a
5 changed files with 83 additions and 72 deletions

View File

@ -971,6 +971,7 @@ if (empty($reshook))
elseif ($action == 'add' && $usercancreate) elseif ($action == 'add' && $usercancreate)
{ {
if ($socid > 0) $object->socid = GETPOST('socid', 'int'); if ($socid > 0) $object->socid = GETPOST('socid', 'int');
$selectedLines = GETPOST('toselect', 'array');
$db->begin(); $db->begin();
@ -1571,8 +1572,11 @@ if (empty($reshook))
$fk_parent_line = 0; $fk_parent_line = 0;
$num = count($lines); $num = count($lines);
for ($i = 0; $i < $num; $i++) for ($i = 0; $i < $num; $i++)
{ {
if (!in_array($lines[$i]->id, $selectedLines)) continue; // Skip unselected lines
// Don't add lines with qty 0 when coming from a shipment including all order lines // Don't add lines with qty 0 when coming from a shipment including all order lines
if ($srcobject->element == 'shipping' && $conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS && $lines[$i]->qty == 0) continue; if ($srcobject->element == 'shipping' && $conf->global->SHIPMENT_GETS_ALL_ORDER_PRODUCTS && $lines[$i]->qty == 0) continue;
// Don't add closed lines when coming from a contract (Set constant to '0,5' to exclude also inactive lines) // Don't add closed lines when coming from a contract (Set constant to '0,5' to exclude also inactive lines)
@ -3623,8 +3627,6 @@ if ($action == 'create')
print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">'; print '<input type="button" class="button" value="'.$langs->trans("Cancel").'" onClick="javascript:history.go(-1)">';
print '</div>'; print '</div>';
print "</form>\n";
// Show origin lines // Show origin lines
if (!empty($origin) && !empty($originid) && is_object($objectsrc)) { if (!empty($origin) && !empty($originid) && is_object($objectsrc)) {
print '<br>'; print '<br>';
@ -3634,12 +3636,12 @@ if ($action == 'create')
print '<table class="noborder centpercent">'; print '<table class="noborder centpercent">';
$objectsrc->printOriginLinesList(); $objectsrc->printOriginLinesList('', $selectedLines);
print '</table>'; print '</table>';
} }
print '<br>'; print '</form>';
} elseif ($id > 0 || !empty($ref)) } elseif ($id > 0 || !empty($ref))
{ {
/* /*

View File

@ -473,12 +473,16 @@ if (($action == 'send' || $action == 'relance') && !$_POST['addfile'] && !$_POST
} else { } else {
$langs->load("other"); $langs->load("other");
$mesg = '<div class="error">'; $mesg = '<div class="error">';
if ($mailfile->error) if ($mailfile->error) {
{
$mesg .= $langs->transnoentities('ErrorFailedToSendMail', dol_escape_htmltag($from), dol_escape_htmltag($sendto)); $mesg .= $langs->transnoentities('ErrorFailedToSendMail', dol_escape_htmltag($from), dol_escape_htmltag($sendto));
$mesg .= '<br>'.$mailfile->error; $mesg .= '<br>'.$mailfile->error;
} else { } else {
$mesg .= 'No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS'; $mesg .= $langs->transnoentities('ErrorFailedToSendMail', dol_escape_htmltag($from), dol_escape_htmltag($sendto));;
if (!empty($conf->global->MAIN_DISABLE_ALL_MAILS)) {
$mesg .= '<br>Feature is disabled by option MAIN_DISABLE_ALL_MAILS';
} else {
$mesg .= '<br>Unkown Error, please refers to your administrator';
}
} }
$mesg .= '</div>'; $mesg .= '</div>';

View File

@ -2787,7 +2787,7 @@ abstract class CommonObject
{ {
// phpcs:enable // phpcs:enable
$positionfield = 'rang'; $positionfield = 'rang';
if ($this->table_element == 'bom') $positionfield = 'position'; if ($this->table_element == 'bom_bom') $positionfield = 'position';
// Search the last rang with fk_parent_line // Search the last rang with fk_parent_line
if ($fk_parent_line) if ($fk_parent_line)

View File

@ -2406,7 +2406,7 @@ class FactureFournisseur extends CommonInvoice
return $numref; return $numref;
} else { } else {
$this->error = $obj->error; $this->error = $obj->error;
return false; return -1;
} }
} }

View File

@ -57,7 +57,7 @@ if (!empty($conf->variants->enabled)) {
if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; if (!empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
$langs->loadLangs(array('bills', 'compta', 'suppliers', 'companies', 'products', 'banks')); $langs->loadLangs(array('bills', 'compta', 'suppliers', 'companies', 'products', 'banks', 'admin'));
if (!empty($conf->incoterm->enabled)) $langs->load('incoterm'); if (!empty($conf->incoterm->enabled)) $langs->load('incoterm');
$id = (GETPOST('facid', 'int') ? GETPOST('facid', 'int') : GETPOST('id', 'int')); $id = (GETPOST('facid', 'int') ? GETPOST('facid', 'int') : GETPOST('id', 'int'));
@ -2303,16 +2303,21 @@ if ($action == 'create')
// Confirmation de la validation // Confirmation de la validation
if ($action == 'valid') if ($action == 'valid')
{ {
// on verifie si l'objet est en numerotation provisoire // We check if number is temporary number
$objectref = substr($object->ref, 1, 4); if (preg_match('/^[\(]?PROV/i', $object->ref) || empty($object->ref)) // empty should not happened, but when it occurs, the test save life
if ($objectref == 'PROV')
{ {
$savdate = $object->date;
$numref = $object->getNextNumRef($societe); $numref = $object->getNextNumRef($societe);
} else { } else {
$numref = $object->ref; $numref = $object->ref;
} }
if ($numref < 0)
{
setEventMessages($object->error, $object->errors, 'errors');
$action = '';
}
else
{
$text = $langs->trans('ConfirmValidateBill', $numref); $text = $langs->trans('ConfirmValidateBill', $numref);
/*if (! empty($conf->notification->enabled)) /*if (! empty($conf->notification->enabled))
{ {
@ -2324,8 +2329,7 @@ if ($action == 'create')
$formquestion = array(); $formquestion = array();
$qualified_for_stock_change = 0; $qualified_for_stock_change = 0;
if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) {
{
$qualified_for_stock_change = $object->hasProductsOrServices(2); $qualified_for_stock_change = $object->hasProductsOrServices(2);
} else { } else {
$qualified_for_stock_change = $object->hasProductsOrServices(1); $qualified_for_stock_change = $object->hasProductsOrServices(1);
@ -2352,6 +2356,7 @@ if ($action == 'create')
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateBill'), $text, 'confirm_valid', $formquestion, 1, 1); $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ValidateBill'), $text, 'confirm_valid', $formquestion, 1, 1);
} }
}
// Confirmation edit (back to draft) // Confirmation edit (back to draft)
if ($action == 'edit') if ($action == 'edit')