Prechádzať zdrojové kódy

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

Conflicts:
	htdocs/compta/facture/invoicetemplate_list.php
	htdocs/langs/en_US/bills.lang
Laurent Destailleur 7 rokov pred
rodič
commit
faea6861c3

+ 108 - 101
htdocs/accountancy/index.php

@@ -63,111 +63,118 @@ print load_fiche_titre($langs->trans("AccountancyArea"), '', 'title_accountancy'
 
 $step = 0;
 
-print $langs->trans("AccountancyAreaDescIntro")."<br>\n";
-print "<br>\n";print "<br>\n";
-
-print_fiche_titre('<span class="fa fa-calendar-check-o"></span> '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."<br>\n";
-print '<hr>';
-print "<br>\n";
-
-// STEPS
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("AccountingJournals").'</strong>');
-print "<br>\n";
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Pcg_version").'</strong>');
-print "<br>\n";
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Chartofaccounts").'</strong>');
-print "<br>\n";
-
-print "<br>\n";
-print $langs->trans("AccountancyAreaDescActionOnceBis");
-print "<br>\n";
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuBankAccounts").'</strong>')."\n";
-print "<br>\n";
-
-$step++;
-$textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>';
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, $textlink);
-print "<br>\n";
-if (! empty($conf->tax->enabled))
+if ($conf->accounting->enabled)
 {
-    $textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong>';
-    $step++;
-    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, $textlink);
-    print "<br>\n";
+	print $langs->trans("AccountancyAreaDescIntro")."<br>\n";
+	print "<br>\n";print "<br>\n";
+
+	print_fiche_titre('<span class="fa fa-calendar-check-o"></span> '.$langs->trans("AccountancyAreaDescActionOnce"), '', '')."<br>\n";
+	print '<hr>';
+	print "<br>\n";
+
+	// STEPS
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescJournalSetup", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("AccountingJournals").'</strong>');
+	print "<br>\n";
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChartModel", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Pcg_version").'</strong>');
+	print "<br>\n";
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescChart", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("Chartofaccounts").'</strong>');
+	print "<br>\n";
+
+	print "<br>\n";
+	print $langs->trans("AccountancyAreaDescActionOnceBis");
+	print "<br>\n";
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBank", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuBankAccounts").'</strong>')."\n";
+	print "<br>\n";
+
+	$step++;
+	$textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuVatAccounts").'</strong>';
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescVat", $step, $textlink);
+	print "<br>\n";
+	if (! empty($conf->tax->enabled))
+	{
+	    $textlink = '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup").'-'.$langs->transnoentitiesnoconv("MenuTaxAccounts").'</strong>';
+	    $step++;
+	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescContrib", $step, $textlink);
+	    print "<br>\n";
+	}
+	/*if (! empty($conf->salaries->enabled))
+	{
+	    $step++;
+	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSal", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
+	    // htdocs/admin/salaries.php
+	    print "<br>\n";
+	    print "<br>\n";
+	}*/
+	if (! empty($conf->expensereport->enabled))  // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
+	{
+	    $step++;
+	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong>');
+	    print "<br>\n";
+	}
+	/*
+	if (! empty($conf->loan->enabled))
+	{
+	    $step++;
+	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescLoan", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuSpecialExpenses").'-'.$langs->transnoentitiesnoconv("Loans").'</strong> '.$langs->transnoentitiesnoconv("or").' <strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
+	    print "<br>\n";
+	}
+	if (! empty($conf->don->enabled))
+	{
+	    $step++;
+	    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDonationAccounts").'</strong>');
+	    print "<br>\n";
+	}*/
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("ProductsBinding").'</strong>');
+	print "<br>\n";
+
+
+	print '<br>';
+
+
+	print "<br>\n";
+	print_fiche_titre('<span class="fa fa-calendar"></span> '.$langs->trans("AccountancyAreaDescActionFreq"), '', '');
+	print '<hr>';
+	print "<br>\n";
+	$step = 0;
+
+	$langs->loadLangs(array('bills', 'trips'));
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsCustomers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("CustomersVentilation").'</strong>')."\n";
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsSuppliers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("SuppliersVentilation").'</strong>')."\n";
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("ExpenseReports"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong>')."\n";
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescWriteRecords", chr(64+$step), $langs->transnoentitiesnoconv("Journalization"), $langs->transnoentitiesnoconv("WriteBookKeeping"))."\n";
+	print "<br>\n";
+
+	$step++;
+	print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescAnalyze", chr(64+$step))."<br>\n";
+	print "<br>\n";
 }
-/*if (! empty($conf->salaries->enabled))
+else
 {
-    $step++;
-    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescSal", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
-    // htdocs/admin/salaries.php
-    print "<br>\n";
-    print "<br>\n";
-}*/
-if (! empty($conf->expensereport->enabled))  // TODO Move this in the default account page because this is only one accounting account per purpose, not several.
-{
-    $step++;
-    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescExpenseReport", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuExpenseReportAccounts").'</strong>');
-    print "<br>\n";
+	print $langs->trans("Module10Desc")."<br>\n";
 }
-/*
-if (! empty($conf->loan->enabled))
-{
-    $step++;
-    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescLoan", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuSpecialExpenses").'-'.$langs->transnoentitiesnoconv("Loans").'</strong> '.$langs->transnoentitiesnoconv("or").' <strong>'.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").'</strong>');
-    print "<br>\n";
-}
-if (! empty($conf->don->enabled))
-{
-    $step++;
-    print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescDonation", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDonationAccounts").'</strong>');
-    print "<br>\n";
-}*/
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescProd", $step, '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("ProductsBinding").'</strong>');
-print "<br>\n";
-
-
-print '<br>';
-
-
-print "<br>\n";
-print_fiche_titre('<span class="fa fa-calendar"></span> '.$langs->trans("AccountancyAreaDescActionFreq"), '', '');
-print '<hr>';
-print "<br>\n";
-$step = 0;
-
-$langs->loadLangs(array('bills', 'trips'));
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsCustomers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("CustomersVentilation").'</strong>')."\n";
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("BillsSuppliers"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("SuppliersVentilation").'</strong>')."\n";
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescBind", chr(64+$step), $langs->transnoentitiesnoconv("ExpenseReports"), '<strong>'.$langs->transnoentitiesnoconv("MenuAccountancy")."-".$langs->transnoentitiesnoconv("ExpenseReportsVentilation").'</strong>')."\n";
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescWriteRecords", chr(64+$step), $langs->transnoentitiesnoconv("Journalization"), $langs->transnoentitiesnoconv("WriteBookKeeping"))."\n";
-print "<br>\n";
-
-$step++;
-print img_picto('', 'puce').' '.$langs->trans("AccountancyAreaDescAnalyze", chr(64+$step))."<br>\n";
-print "<br>\n";
 
 llxFooter();
 $db->close();

+ 55 - 44
htdocs/compta/facture/class/facture-rec.class.php

@@ -992,6 +992,7 @@ class FactureRec extends CommonInvoice
 		$sql.= " AND (date_when IS NULL OR date_when <= '".$db->idate($today)."')";
 		$sql.= ' AND (nb_gen_done < nb_gen_max OR nb_gen_max = 0)';
 		$sql.= ' AND suspended = 0';
+		$sql.= ' AND entity = '.$conf->entity;	// MUST STAY = $conf->entity here
 		$sql.= $db->order('entity', 'ASC');
 		//print $sql;exit;
 
@@ -1006,7 +1007,7 @@ class FactureRec extends CommonInvoice
 
 		    $saventity = $conf->entity;
 
-		    while ($i < $num)     // Loop on each template invoice
+		    while ($i < $num)     // Loop on each template invoice. If $num = 0, test is false at first pass.
 			{
 			    $line = $db->fetch_object($resql);
 
@@ -1015,49 +1016,59 @@ class FactureRec extends CommonInvoice
 				$facturerec = new FactureRec($db);
 				$facturerec->fetch($line->rowid);
 
-				// Set entity context
-				$conf->entity = $facturerec->entity;
-
-				dol_syslog("createRecurringInvoices Process invoice template id=".$facturerec->id.", ref=".$facturerec->ref.", entity=".$facturerec->entity);
-
-			    $error=0;
-
-			    $facture = new Facture($db);
-				$facture->fac_rec = $facturerec->id;    // We will create $facture from this recurring invoice
-				$facture->fk_fac_rec_source = $facturerec->id;    // We will create $facture from this recurring invoice
-
-			    $facture->type = self::TYPE_STANDARD;
-			    $facture->brouillon = 1;
-			    $facture->date = (empty($facturerec->date_when)?$now:$facturerec->date_when);	// We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later.
-			    $facture->socid = $facturerec->socid;
-
-			    $invoiceidgenerated = $facture->create($user);
-			    if ($invoiceidgenerated <= 0)
-			    {
-			        $this->errors = $facture->errors;
-			        $this->error = $facture->error;
-			        $error++;
-			    }
-			    if (! $error && $facturerec->auto_validate)
-			    {
-			        $result = $facture->validate($user);
-			        if ($result <= 0)
-			        {
-    			        $this->errors = $facture->errors;
-    			        $this->error = $facture->error;
-			            $error++;
-                    }
-			    }
-                if (! $error && $facturerec->generate_pdf)
-                {
-                    $result = $facture->generateDocument($facturerec->modelpdf, $langs);
-                    if ($result <= 0)
-                    {
-                        $this->errors = $facture->errors;
-                        $this->error = $facture->error;
-                        $error++;
-                    }
-                }
+				if ($facturerec->id > 0)
+				{
+					// Set entity context
+					$conf->entity = $facturerec->entity;
+
+					dol_syslog("createRecurringInvoices Process invoice template id=".$facturerec->id.", ref=".$facturerec->ref.", entity=".$facturerec->entity);
+
+				    $error=0;
+
+				    $facture = new Facture($db);
+					$facture->fac_rec = $facturerec->id;    // We will create $facture from this recurring invoice
+					$facture->fk_fac_rec_source = $facturerec->id;    // We will create $facture from this recurring invoice
+
+				    $facture->type = self::TYPE_STANDARD;
+				    $facture->brouillon = 1;
+				    $facture->date = (empty($facturerec->date_when)?$now:$facturerec->date_when);	// We could also use dol_now here but we prefer date_when so invoice has real date when we would like even if we generate later.
+				    $facture->socid = $facturerec->socid;
+
+				    $invoiceidgenerated = $facture->create($user);
+				    if ($invoiceidgenerated <= 0)
+				    {
+				        $this->errors = $facture->errors;
+				        $this->error = $facture->error;
+				        $error++;
+				    }
+				    if (! $error && $facturerec->auto_validate)
+				    {
+				        $result = $facture->validate($user);
+				        if ($result <= 0)
+				        {
+	    			        $this->errors = $facture->errors;
+	    			        $this->error = $facture->error;
+				            $error++;
+	                    }
+				    }
+	                if (! $error && $facturerec->generate_pdf)
+	                {
+	                    $result = $facture->generateDocument($facturerec->modelpdf, $langs);
+	                    if ($result <= 0)
+	                    {
+	                        $this->errors = $facture->errors;
+	                        $this->error = $facture->error;
+	                        $error++;
+	                    }
+	                }
+				}
+				else
+				{
+					$error++;
+					$this->error="Failed to load invoice template with id=".$line->rowid.", entity=".$conf->entity."\n";
+					$this->errors[]="Failed to load invoice template with id=".$line->rowid.", entity=".$conf->entity;
+					dol_syslog("createRecurringInvoices Failed to load invoice template with id=".$line->rowid.", entity=".$conf->entity);
+				}
 
 				if (! $error && $invoiceidgenerated >= 0)
 				{

+ 9 - 2
htdocs/compta/facture/fiche-rec.php

@@ -1497,7 +1497,7 @@ else
 		}
 		print '</td></tr>';
 
-		// Date when
+		// Date when (next invoice generation)
 		print '<tr><td>';
 		if ($action == 'date_when' || $object->frequency > 0)
 		{
@@ -1513,7 +1513,14 @@ else
 			print $form->editfieldval($langs->trans("NextDateToExecution"), 'date_when', $object->date_when, $object, $user->rights->facture->creer, 'day', $object->date_when, null, '', '', 0, 'strikeIfMaxNbGenReached');
 		}
 		//var_dump(dol_print_date($object->date_when+60, 'dayhour').' - '.dol_print_date($now, 'dayhour'));
-		if ($action != 'editdate_when' && $object->frequency > 0 && $object->date_when && $object->date_when < $now) print img_warning($langs->trans("Late"));
+		if (! $object->isMaxNbGenReached())
+		{
+			if ($action != 'editdate_when' && $object->frequency > 0 && $object->date_when && $object->date_when < $now) print img_warning($langs->trans("Late"));
+		}
+		else
+		{
+			print img_info($langs->trans("MaxNumberOfGenerationReached"));
+		}
 		print '</td>';
 		print '</tr>';
 

+ 19 - 8
htdocs/compta/facture/invoicetemplate_list.php

@@ -598,13 +598,20 @@ if ($resql)
 			// Date next generation
 			if (! empty($arrayfields['f.date_when']['checked']))
 			{
-			   print '<td align="center">';
-			   print '<div class="nowraponall">';
-			   print ($objp->frequency ? ($invoicerectmp->isMaxNbGenReached()?'<strike>':'').dol_print_date($db->jdate($objp->date_when),'day').($invoicerectmp->isMaxNbGenReached()?'</strike>':'') : '<span class="opacitymedium">'.$langs->trans('NA').'</span>');
-			   if ($objp->frequency > 0 && $db->jdate($objp->date_when) && $db->jdate($objp->date_when) < $now) print img_warning($langs->trans("Late"));
-			   print '</div>';
-			   print '</td>';
-			   if (! $i) $totalarray['nbfield']++;
+				print '<td align="center">';
+				print '<div class="nowraponall">';
+				print ($objp->frequency ? ($invoicerectmp->isMaxNbGenReached()?'<strike>':'').dol_print_date($db->jdate($objp->date_when),'day').($invoicerectmp->isMaxNbGenReached()?'</strike>':'') : '<span class="opacitymedium">'.$langs->trans('NA').'</span>');
+				if (! $invoicerectmp->isMaxNbGenReached())
+				{
+					if ($objp->frequency > 0 && $db->jdate($objp->date_when) && $db->jdate($objp->date_when) < $now) print img_warning($langs->trans("Late"));
+				}
+				else
+				{
+					print img_info($langs->trans("MaxNumberOfGenerationReached"));
+				}
+				print '</div>';
+				print '</td>';
+				if (! $i) $totalarray['nbfield']++;
 			}
 			if (! empty($arrayfields['f.datec']['checked']))
 			{
@@ -631,7 +638,11 @@ if ($resql)
 			print '<td align="center">';
 			if ($user->rights->facture->creer && empty($invoicerectmp->suspended))
 			{
-				if (empty($objp->frequency) || $db->jdate($objp->date_when) <= $today)
+				if ($invoicerectmp->isMaxNbGenReached())
+				{
+					print $langs->trans("MaxNumberOfGenerationReached");
+				}
+				elseif (empty($objp->frequency) || $db->jdate($objp->date_when) <= $today)
 				{
 					print '<a href="'.DOL_URL_ROOT.'/compta/facture/card.php?action=create&amp;socid='.$objp->socid.'&amp;fac_rec='.$objp->facid.'">';
 					print $langs->trans("CreateBill").'</a>';

+ 1 - 1
htdocs/cron/card.php

@@ -624,7 +624,7 @@ else
 		}
 		else
 		{
-			$mc->getInfo($obj->entity);
+			$mc->getInfo($object->entity);
 			print $mc->label;
 		}
 		print "</td></tr>";

+ 2 - 1
htdocs/cron/class/cronjob.class.php

@@ -1050,8 +1050,9 @@ class Cronjob extends CommonObject
 			{
 				dol_syslog(get_class($this)."::run_jobs START ".$this->objectname."->".$this->methodename."(".$this->params.");", LOG_DEBUG);
 
-				// Create Object for the call module
+				// Create Object for the called module
 				$object = new $this->objectname($this->db);
+				if ($this->entity > 0) $object->entity = $this->entity;		// We work on a dedicated entity
 
 				$params_arr = array_map('trim', explode(",",$this->params));
 

+ 1 - 1
htdocs/expensereport/note.php

@@ -90,7 +90,7 @@ if ($id > 0 || ! empty($ref))
 
     print '<div class="fichecenter">';
     print '<div class="underbanner clearboth"></div>';
-var_dump($value_public);
+
 	$cssclass="titlefield";
 	include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php';
 

+ 2 - 1
htdocs/fourn/commande/card.php

@@ -2208,6 +2208,7 @@ elseif (! empty($object->id))
 			// modified by hook
 			if (empty($reshook))
 			{
+				$object->fetchObjectLinked();		// Links are used to show or not button, so we load them now.
 
 				// Validate
 				if ($object->statut == 0 && $num > 0)
@@ -2336,7 +2337,7 @@ elseif (! empty($object->id))
 				// Ship
 				if (! empty($conf->stock->enabled) && ! empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_DISPATCH_ORDER))
 				{
-					if (in_array($object->statut, array(3,4))) {
+					if (in_array($object->statut, array(3,4,5))) {
 						if ($conf->fournisseur->enabled && $user->rights->fournisseur->commande->receptionner) {
 							print '<div class="inline-block divButAction"><a class="butAction" href="' . DOL_URL_ROOT . '/fourn/commande/dispatch.php?id=' . $object->id . '">' . $langs->trans('ReceiveProducts') . '</a></div>';
 						} else {

+ 1 - 0
htdocs/langs/en_US/bills.lang

@@ -532,3 +532,4 @@ AutoFillDateFrom=Set start date for service line with invoice date
 AutoFillDateFromShort=Set start date
 AutoFillDateTo=Set end date for service line with next invoice date
 AutoFillDateToShort=Set end date
+MaxNumberOfGenerationReached=Max number of gen. reached