invoice number pattern for customer-name and number (#2640)
This commit is contained in:
@@ -183,6 +183,14 @@ final class ConfigurableNumberGenerator implements NumberGeneratorInterface
|
|||||||
$partialResult = $this->repository->getCounterForDay($invoiceDate) + $increaseBy;
|
$partialResult = $this->repository->getCounterForDay($invoiceDate) + $increaseBy;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'cname':
|
||||||
|
$partialResult = $this->model->getCustomer()->getName();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'cnumber':
|
||||||
|
$partialResult = $this->model->getCustomer()->getNumber();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$partialResult = $originalFormat;
|
$partialResult = $originalFormat;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ class ConfigurableNumberGeneratorTest extends TestCase
|
|||||||
['{ccy}', '2', $invoiceDate],
|
['{ccy}', '2', $invoiceDate],
|
||||||
['{ccm}', '2', $invoiceDate],
|
['{ccm}', '2', $invoiceDate],
|
||||||
['{ccd}', '2', $invoiceDate],
|
['{ccd}', '2', $invoiceDate],
|
||||||
|
['{cname}', 'Acme company', $invoiceDate],
|
||||||
|
['{cnumber}', '0815', $invoiceDate],
|
||||||
// number formatting (not testing the lower case versions, as the tests might break depending on the date)
|
// number formatting (not testing the lower case versions, as the tests might break depending on the date)
|
||||||
['{date,10}', '0000' . $invoiceDate->format('ymd'), $invoiceDate],
|
['{date,10}', '0000' . $invoiceDate->format('ymd'), $invoiceDate],
|
||||||
['{Y,6}', '00' . $invoiceDate->format('Y'), $invoiceDate],
|
['{Y,6}', '00' . $invoiceDate->format('Y'), $invoiceDate],
|
||||||
@@ -131,10 +133,14 @@ class ConfigurableNumberGeneratorTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function testGetInvoiceNumber(string $format, string $expectedInvoiceNumber, \DateTime $invoiceDate, int $counter = 1)
|
public function testGetInvoiceNumber(string $format, string $expectedInvoiceNumber, \DateTime $invoiceDate, int $counter = 1)
|
||||||
{
|
{
|
||||||
|
$customer = new Customer();
|
||||||
|
$customer->setName('Acme company');
|
||||||
|
$customer->setNumber('0815');
|
||||||
|
|
||||||
$sut = $this->getSut($format, $counter);
|
$sut = $this->getSut($format, $counter);
|
||||||
$model = new InvoiceModel(new DebugFormatter());
|
$model = new InvoiceModel(new DebugFormatter());
|
||||||
$model->setInvoiceDate($invoiceDate);
|
$model->setInvoiceDate($invoiceDate);
|
||||||
$model->setCustomer(new Customer());
|
$model->setCustomer($customer);
|
||||||
$sut->setModel($model);
|
$sut->setModel($model);
|
||||||
|
|
||||||
$this->assertEquals($expectedInvoiceNumber, $sut->getInvoiceNumber());
|
$this->assertEquals($expectedInvoiceNumber, $sut->getInvoiceNumber());
|
||||||
|
|||||||
Reference in New Issue
Block a user