Änderungen

henbug created page: dev/NumberRanges erstellt von Henning Leutz's avatar Henning Leutz
......@@ -18,3 +18,76 @@ Um eine eigene Nummernkreis API bereitzustellen benötigst du eine NumberRange K
### NumberRange Klasse erstellen
Eine NumberRange Klasse muss das Interface `QUI\ERP\Api\NumberRangeInterface` implementieren. Dieses gibt an das folgende drei Methoden implementiert werden müssen: getTtitle, setRange und getRange
```php
<?php
/**
* This file contains QUI\ERP\Accounting\Invoice\NumberRanges\Invoice
*/
namespace QUI\ERP\Accounting\Invoice\NumberRanges;
use QUI;
use QUI\ERP\Api\NumberRangeInterface;
/**
* Your NumberRange Class
*/
class YouNumberRange implements NumberRangeInterface
{
/**
* @param null|QUI\Locale $Locale
*
* @return string
*/
public function getTitle($Locale = null)
{
if ($Locale === null) {
$Locale = QUI::getLocale();
}
return $Locale->get('quiqqer/invoice', 'invoice.numberrange.title');
}
/**
* Return the current start range value
*
* @return int
*/
public function getRange()
{
}
/**
* @param int $range
*/
public function setRange($range)
{
}
}
```
Über diese Methoden kannst du nun bestimmen wie und was genau beim ändern des Nummernkreises passieren soll.
Ein gutes Beispiel findest du im Rechnungs-Moduls `quiqqer/invoice` unter https://dev.quiqqer.com/quiqqer/invoice/blob/dev/src/QUI/ERP/Accounting/Invoice/NumberRanges/Invoice.php
### NumberRange Klasse zur Verfügung stellen
Damit deine Nummernkreis API auch verwendet wird, musst du diese über den ErpProvider zur Verfügung stellen. Die ErpProvider API besitzt eine Methode `getNumberRanges`. Wie die [ERP Provider API funktioniert kannst du im Abschnitt ERP Provider registrieren nachlesen.](dev/ERPProvider)
Eine eigene NumberRange zur Verfügung stellen ist recht schnell gemacht. Dein ERP Provider einfach um eine Methode `getNumberRanges` und deine NumberRange als array zurückgeben.
**Beispiel:**
```php
/**
* @return array
*/
public static function getNumberRanges()
{
return array(
new NumberRanges\Invoice(),
new NumberRanges\TemporaryInvoice()
);
}
```
Ein erweitertes Beispiel findest du im `quiqqer/invoice` Modul: https://dev.quiqqer.com/quiqqer/invoice/blob/dev/src/QUI/ERP/Accounting/Invoice/ErpProvider.php
\ No newline at end of file