Hi,
i try to generate file and update a field directly from a controllerfile for getting a automated invoicenumbering.
The file is perfect generated but the increment and updating is not correct.
//Invoice Number generation and save
$invoiceNrFile = 'content/validation-registration/invoice-number/invoicenr.en.txt';
if(!file_exists($invoiceNrFile)){
$invoiceNrContent = array('title' => 'Aktuelle Rechnungsnummer', 'invoicenumber' => '0000');
$invoiceNr = $invoiceNrContent['invoicenumber'];
$newInvoicePage = page('validation-registration')->children()->create('invoice-number', 'invoicenr', $invoiceNrContent);
}
else {
$invoiceNr = page('validation-registration/invoice-number')->increment('invoicenumber', 1);
$newInvoiceNr = page('validation-registration/invoice-number')->update(array('invoicenumber' => $invoiceNr), 'en');
}
With this I get a value validation-registration/invoice-number
as new invoicenumber. What do I 'm wrong?
Cheers
I’ve never used increment()
by myself, but I think you don’t need to update the page afterwards. Have you tried to simply use
page('validation-registration/invoice-number')->increment('invoicenumber', 1);
If you need the new invoicennumber
afterwards, you should get it as usual …
$newInvoiceNr = page('validation-registration/invoice-number')->invoicenumber();
[untested].
What is your default language? If English is the non-default language, your increment()
function will only work in the default language, see this post for a solution: $page->increment($field) in multilang environment
Hi,
english is my default language. But your method works fine but not with left-hand zeros.
0000
will increment to 1
and not to 0001
.
Exist for this also a method solution?
Cheers.
No, but why do you need this? You can add leading zeros in your template. This is just a formatting thing, I don’t think it is required to actually save those numbers in the file.
I use this number for invoices. But yes I can add the zeros later.