More comment and add a unit test to check that {t} tag is correctly
supported.
This commit is contained in:
parent
dc0d12eccd
commit
a886136e67
@ -628,8 +628,8 @@ function get_next_value($db,$mask,$table,$field,$where='',$objsoc='',$date='',$m
|
||||
if (preg_match('/\{(t+)\}/i',$mask,$regType))
|
||||
{
|
||||
$masktype=$regType[1];
|
||||
$masktype_value=substr(preg_replace('/^TE_/','',$objsoc->typent_code),0,dol_strlen($regType[1]));//get n first characters of client code where n is length in mask
|
||||
$masktype_value=str_pad($masktype_value,dol_strlen($regType[1]),"#",STR_PAD_RIGHT);
|
||||
$masktype_value=substr(preg_replace('/^TE_/','',$objsoc->typent_code),0,dol_strlen($regType[1]));// get n first characters of thirdpaty typent_code (where n is length in mask)
|
||||
$masktype_value=str_pad($masktype_value,dol_strlen($regType[1]),"#",STR_PAD_RIGHT); // we fill on right with # to have same number of char than into mask
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -500,7 +500,7 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
|
||||
$conf->global->SOCIETE_FISCAL_MONTH_START=6;
|
||||
$conf->global->FACTURE_MERCURE_MASK_CREDIT='{yyyy}{mm}-{0000@99}';
|
||||
$conf->global->FACTURE_MERCURE_MASK_INVOICE='{yyyy}{mm}-{0000@99}';
|
||||
|
||||
|
||||
$localobject=new Facture($this->savdb);
|
||||
$localobject->initAsSpecimen();
|
||||
$localobject->date=dol_mktime(12, 0, 0, 1, 1, 1980); // we use year 1980 to be sure to not have existing invoice for this year
|
||||
@ -510,7 +510,7 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
|
||||
$result3=$localobject->validate($user, $result);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals('198001-0001', $result); // counter must start to 1
|
||||
|
||||
|
||||
$localobject=new Facture($this->savdb);
|
||||
$localobject->initAsSpecimen();
|
||||
$localobject->date=dol_mktime(12, 0, 0, 1, 1, 1980); // we use year 1980 to be sure to not have existing invoice for this year
|
||||
@ -520,7 +520,7 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
|
||||
$result3=$localobject->validate($user, $result);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals('198001-0002', $result); // counter must start to 2
|
||||
|
||||
|
||||
$localobject=new Facture($this->savdb);
|
||||
$localobject->initAsSpecimen();
|
||||
$localobject->date=dol_mktime(12, 0, 0, 2, 1, 1980); // we use year 1980 to be sure to not have existing invoice for this year
|
||||
@ -530,7 +530,7 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
|
||||
$result3=$localobject->validate($user, $result);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals('198002-0001', $result); // counter must start to 1
|
||||
|
||||
|
||||
$localobject=new Facture($this->savdb);
|
||||
$localobject->initAsSpecimen();
|
||||
$localobject->date=dol_mktime(12, 0, 0, 1, 1, 1981); // we use year 1981 to be sure to not have existing invoice for this year
|
||||
@ -540,7 +540,28 @@ class NumberingModulesTest extends PHPUnit_Framework_TestCase
|
||||
$result3=$localobject->validate($user, $result);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals('198101-0001', $result); // counter must start to 1
|
||||
|
||||
|
||||
// Test with {t} tag
|
||||
$conf->global->SOCIETE_FISCAL_MONTH_START=1;
|
||||
$conf->global->FACTURE_MERCURE_MASK_CREDIT='{t}{yyyy}{mm}-{0000}';
|
||||
$conf->global->FACTURE_MERCURE_MASK_INVOICE='{t}{yyyy}{mm}-{0000}';
|
||||
|
||||
$tmpthirdparty=new Societe($this->savdb);
|
||||
$tmpthirdparty->initAsSpecimen();
|
||||
$tmpthirdparty->typent_code = 'TE_ABC';
|
||||
|
||||
$localobject=new Facture($this->savdb);
|
||||
$localobject->initAsSpecimen();
|
||||
$localobject->date=dol_mktime(12, 0, 0, 1, 1, 1982); // we use year 1980 to be sure to not have existing invoice for this year
|
||||
$numbering=new mod_facture_mercure();
|
||||
$result=$numbering->getNextValue($tmpthirdparty, $localobject);
|
||||
$result2=$localobject->create($user,1);
|
||||
$result3=$localobject->validate($user, $result);
|
||||
print __METHOD__." result=".$result."\n";
|
||||
$this->assertEquals('A198201-0001', $result); // counter must start to 1
|
||||
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user