Ejemplo n.º 1
0
 /**
  * @return void
  */
 public function testGetDefaultSettingsMergedWithCustomSettings()
 {
     $customSettings = new SequenceNumberSettingsTransfer();
     $customSettings->setIncrementMinimum(2);
     $customSettings->setOffset(null);
     $config = $this->generateConfig();
     $sequenceNumberSettings = $config->getDefaultSettings($customSettings);
     $this->assertSame(2, $sequenceNumberSettings->getIncrementMinimum());
     $this->assertSame(0, $sequenceNumberSettings->getOffset());
 }
Ejemplo n.º 2
0
 /**
  * Defines the prefix for the sequence number which is the public id of an order.
  *
  * @return \Generated\Shared\Transfer\SequenceNumberSettingsTransfer
  */
 public function getOrderReferenceDefaults()
 {
     $sequenceNumberSettingsTransfer = new SequenceNumberSettingsTransfer();
     $sequenceNumberSettingsTransfer->setName(SalesConstants::NAME_ORDER_REFERENCE);
     $sequenceNumberPrefixParts = [];
     $sequenceNumberPrefixParts[] = Store::getInstance()->getStoreName();
     $sequenceNumberPrefixParts[] = $this->get(SalesConstants::ENVIRONMENT_PREFIX);
     $prefix = implode($this->getUniqueIdentifierSeparator(), $sequenceNumberPrefixParts) . $this->getUniqueIdentifierSeparator();
     $sequenceNumberSettingsTransfer->setPrefix($prefix);
     return $sequenceNumberSettingsTransfer;
 }
Ejemplo n.º 3
0
 /**
  * @return \Orm\Zed\SequenceNumber\Persistence\SpySequenceNumber
  */
 protected function getSequence()
 {
     $sequence = SpySequenceNumberQuery::create()->findOneByName($this->sequenceNumberSettings->getName());
     $offset = $this->sequenceNumberSettings->getOffset();
     if ($sequence === null) {
         $sequence = new SpySequenceNumber();
         $sequence->setName($this->sequenceNumberSettings->getName());
         $sequence->setCurrentId($offset);
         return $sequence;
     }
     $expectedCurrentValue = $offset - 1;
     $current = $sequence->getCurrentId();
     if ($current < $expectedCurrentValue) {
         $sequence->setCurrentId($expectedCurrentValue);
     }
     return $sequence;
 }
Ejemplo n.º 4
0
 /**
  * @return \Generated\Shared\Transfer\SequenceNumberSettingsTransfer
  */
 public function getSequenceNumberSettings()
 {
     $sequenceNumberSettings = new SequenceNumberSettingsTransfer();
     $prefix = $this->getPrefix();
     $sequenceNumberSettings->setIncrementMaximum(1);
     $sequenceNumberSettings->setIncrementMinimum(1);
     $sequenceNumberSettings->setPadding(10);
     $sequenceNumberSettings->setPrefix($prefix);
     $sequenceNumberSettings->setName(InvoiceConstants::TYPE_INVOICE);
     return $sequenceNumberSettings;
 }
 /**
  * @param \Generated\Shared\Transfer\SequenceNumberSettingsTransfer|null $settings
  *
  * @return \Generated\Shared\Transfer\SequenceNumberSettingsTransfer
  */
 public function getDefaultSettings(SequenceNumberSettingsTransfer $settings = null)
 {
     $defaultSettings = new SequenceNumberSettingsTransfer();
     $defaultSettings->setName($this->getSequenceName());
     $defaultSettings->setIncrementMinimum($this->getNumberIncrementMin());
     $defaultSettings->setIncrementMaximum($this->getNumberIncrementMax());
     $defaultSettings->setOffset($this->getOffset());
     if ($settings === null) {
         return $defaultSettings;
     }
     $settingsArray = $this->mergeSettings($defaultSettings->toArray(), $settings->toArray());
     $settings->fromArray($settingsArray);
     return $settings;
 }