forked from Wavyzz/dolibarr
Fix: Function to find last invoice must look only into number
This commit is contained in:
@@ -3,13 +3,16 @@ CHARSET=UTF-8
|
|||||||
Bill=Invoice
|
Bill=Invoice
|
||||||
Bills=Invoices
|
Bills=Invoices
|
||||||
BillsCustomers=Customer's invoices
|
BillsCustomers=Customer's invoices
|
||||||
|
BillsCustomer=Customer's invoice
|
||||||
BillsSuppliers=Supplier's invoices
|
BillsSuppliers=Supplier's invoices
|
||||||
BillsCustomersUnpaid=Unpaid customer's invoices
|
BillsCustomersUnpaid=Unpaid customer's invoices
|
||||||
BillsCustomersUnpaidForCompany=Unpaid customer's invoices for %s
|
BillsCustomersUnpaidForCompany=Unpaid customer's invoices for %s
|
||||||
BillsSuppliersUnpaid=Unpaid supplier's invoices
|
BillsSuppliersUnpaid=Unpaid supplier's invoices
|
||||||
BillsUnpaid=Unpaid
|
BillsUnpaid=Unpaid
|
||||||
|
BillsLate=Late payments
|
||||||
BillsStatistics=Customer's invoices statistics
|
BillsStatistics=Customer's invoices statistics
|
||||||
BillsStatisticsSuppliers=Supplier's invoices statistics
|
BillsStatisticsSuppliers=Supplier's invoices statistics
|
||||||
|
DisabledBecauseNotErasable=Disabled because can not be erased
|
||||||
InvoiceStandard=Standard invoice
|
InvoiceStandard=Standard invoice
|
||||||
InvoiceStandardAsk=Standard invoice
|
InvoiceStandardAsk=Standard invoice
|
||||||
InvoiceStandardDesc=This kind of invoice is the common invoice.
|
InvoiceStandardDesc=This kind of invoice is the common invoice.
|
||||||
|
|||||||
@@ -350,9 +350,10 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
|
|||||||
* @param $where To add a filter on selection (for exemple to filter on invoice types)
|
* @param $where To add a filter on selection (for exemple to filter on invoice types)
|
||||||
* @param $objsoc The company that own the object we need a counter for
|
* @param $objsoc The company that own the object we need a counter for
|
||||||
* @param $date Date to use for the {y},{m},{d} tags.
|
* @param $date Date to use for the {y},{m},{d} tags.
|
||||||
|
* @param $mode 'next' for next value or 'last' for last value
|
||||||
* @return string New value
|
* @return string New value
|
||||||
*/
|
*/
|
||||||
function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='')
|
function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$mode='next')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
@@ -490,6 +491,44 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='')
|
|||||||
}
|
}
|
||||||
else dol_print_error($db);
|
else dol_print_error($db);
|
||||||
if (empty($counter) || preg_match('/[^0-9]/i',$counter)) $counter=$maskoffset;
|
if (empty($counter) || preg_match('/[^0-9]/i',$counter)) $counter=$maskoffset;
|
||||||
|
|
||||||
|
if ($mode == 'last')
|
||||||
|
{
|
||||||
|
$counterpadded=str_pad($counter,dol_strlen($maskcounter),"0",STR_PAD_LEFT);
|
||||||
|
|
||||||
|
// Define $maskLike
|
||||||
|
$maskLike = dol_string_nospecial($mask);
|
||||||
|
$maskLike = str_replace("%","_",$maskLike);
|
||||||
|
// Replace protected special codes with matching number of _ as wild card caracter
|
||||||
|
$maskLike = preg_replace('/\{yyyy\}/i','____',$maskLike);
|
||||||
|
$maskLike = preg_replace('/\{yy\}/i','__',$maskLike);
|
||||||
|
$maskLike = preg_replace('/\{y\}/i','_',$maskLike);
|
||||||
|
$maskLike = preg_replace('/\{mm\}/i','__',$maskLike);
|
||||||
|
$maskLike = preg_replace('/\{dd\}/i','__',$maskLike);
|
||||||
|
$maskLike = str_replace(dol_string_nospecial('{'.$masktri.'}'),$counterpadded,$maskLike);
|
||||||
|
if ($maskrefclient) $maskLike = str_replace(dol_string_nospecial('{'.$maskrefclient.'}'),str_pad("",dol_strlen($maskrefclient),"_"),$maskLike);
|
||||||
|
//if ($masktype) $maskLike = str_replace(dol_string_nospecial('{'.$masktype.'}'),str_pad("",dol_strlen($masktype),"_"),$maskLike);
|
||||||
|
if ($masktype) $maskLike = str_replace(dol_string_nospecial('{'.$masktype.'}'),$masktype_value,$maskLike);
|
||||||
|
|
||||||
|
$ref='';
|
||||||
|
$sql = "SELECT facnumber as ref";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."facture";
|
||||||
|
$sql.= " WHERE facnumber LIKE '".$maskLike."'";
|
||||||
|
$sql.= " AND entity = ".$conf->entity;
|
||||||
|
|
||||||
|
dol_syslog("mod_facture_terre::getNextValue sql=".$sql);
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
if ($obj) $ref = $obj->ref;
|
||||||
|
}
|
||||||
|
else dol_print_error($db);
|
||||||
|
|
||||||
|
$numFinal=$ref;
|
||||||
|
}
|
||||||
|
else if ($mode == 'next')
|
||||||
|
{
|
||||||
$counter++;
|
$counter++;
|
||||||
|
|
||||||
if ($maskrefclient_maskcounter)
|
if ($maskrefclient_maskcounter)
|
||||||
@@ -569,6 +608,7 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='')
|
|||||||
$masktype_maskafter=$masktype_value;
|
$masktype_maskafter=$masktype_value;
|
||||||
$numFinal = str_replace($masktype_maskbefore,$masktype_maskafter,$numFinal);
|
$numFinal = str_replace($masktype_maskbefore,$masktype_maskafter,$numFinal);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dol_syslog("functions2::get_next_value return ".$numFinal,LOG_DEBUG);
|
dol_syslog("functions2::get_next_value return ".$numFinal,LOG_DEBUG);
|
||||||
return $numFinal;
|
return $numFinal;
|
||||||
|
|||||||
Reference in New Issue
Block a user