improved invoices with new renderer (#306)
* added docx renderer and demo template * added csv renderer and demo template * added xlsx renderer and demo template * added ods renderer and demo template * added user calculator * added invoice documentation
This commit is contained in:
@@ -39,16 +39,17 @@ class InvoiceCalculatorType extends AbstractType
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$renderer = [];
|
||||
foreach ($this->service->getCalculator() as $name => $class) {
|
||||
$renderer[$name] = $name;
|
||||
foreach ($this->service->getCalculator() as $calculator) {
|
||||
$renderer[$calculator->getId()] = $calculator->getId();
|
||||
}
|
||||
|
||||
$resolver->setDefaults([
|
||||
'label' => 'label.invoice_calculator',
|
||||
'choices' => $renderer,
|
||||
'choice_label' => function ($renderer) {
|
||||
return 'invoice_calculator.' . $renderer;
|
||||
}
|
||||
return $renderer;
|
||||
},
|
||||
'translation_domain' => 'invoice-calculator',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,16 +39,17 @@ class InvoiceNumberGeneratorType extends AbstractType
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$renderer = [];
|
||||
foreach ($this->service->getNumberGenerator() as $name => $class) {
|
||||
$renderer[$name] = $name;
|
||||
foreach ($this->service->getNumberGenerator() as $generator) {
|
||||
$renderer[$generator->getId()] = $generator->getId();
|
||||
}
|
||||
|
||||
$resolver->setDefaults([
|
||||
'label' => 'label.invoice_number_generator',
|
||||
'choices' => $renderer,
|
||||
'choice_label' => function ($renderer) {
|
||||
return 'invoice_number_generator.' . $renderer;
|
||||
}
|
||||
return $renderer;
|
||||
},
|
||||
'translation_domain' => 'invoice-numbergenerator',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,20 +38,46 @@ class InvoiceRendererType extends AbstractType
|
||||
*/
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$renderer = [];
|
||||
foreach ($this->service->getRenderer() as $name => $action) {
|
||||
$renderer[$name] = $name;
|
||||
$documents = [];
|
||||
foreach ($this->service->getDocuments() as $document) {
|
||||
foreach ($this->service->getRenderer() as $renderer) {
|
||||
if ($renderer->supports($document)) {
|
||||
$documents[$document->getId()] = $document->getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$resolver->setDefaults([
|
||||
'label' => 'label.invoice_renderer',
|
||||
'choices' => $renderer,
|
||||
'choice_label' => function ($renderer) {
|
||||
return 'invoice_renderer.' . $renderer;
|
||||
}
|
||||
'choices' => array_flip($documents),
|
||||
'group_by' => [$this, 'getGroupBy'],
|
||||
'choice_label' => function ($choiceValue, $key, $value) {
|
||||
return $choiceValue;
|
||||
},
|
||||
'translation_domain' => 'invoice-renderer',
|
||||
'docu_chapter' => 'invoices',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $value
|
||||
* @param string $label
|
||||
* @param string $index
|
||||
* @return string
|
||||
*/
|
||||
public function getGroupBy($value, $label, $index)
|
||||
{
|
||||
$renderer = $label;
|
||||
|
||||
return ucfirst(
|
||||
substr(
|
||||
$renderer,
|
||||
1 + strrpos($renderer, '.'),
|
||||
strrpos($renderer, '.')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user