Files
2025-03-12 17:06:23 +01:00

98 lines
3.0 KiB
PHP

<?php
class stGiftCardBackendActions extends autoStGiftCardBackendActions
{
public function validateConfig()
{
if ($this->getRequest()->getMethod() == sfRequest::POST)
{
$config = $this->getRequest()->getParameter('config');
$i18n = $this->getContext()->getI18N();
if (!$config['code_format'])
{
$this->getRequest()->setError('config{code_format}', $i18n->__('Podaj format kodu'));
}
elseif (strpos($config['code_format'], '@') === false)
{
$this->getRequest()->setError('config{code_format}', $i18n->__('Parametr "@" jest wymagany'));
}
}
return !$this->getRequest()->hasErrors();
}
public function validateEdit()
{
$request = $this->getRequest();
$i18n = $this->getContext()->getI18N();
if ($request->getMethod() != sfRequest::POST && $request->getParameter('id'))
{
$giftCard = GiftCardPeer::retrieveByPk($request->getParameter('id'));
if (!$giftCard->getAllowAllProducts() && !$giftCard->countGiftCardHasProducts() && !$giftCard->countGiftCardHasCategorys() && !$giftCard->countGiftCardHasProducers())
{
$request->setError('{giftcard_assign_products}', $i18n->__('Musisz dodać przynajmniej jeden produkt lub kategorie lub producenta lub zaznaczyć opcję <b>Dla Wszystkich produktów</b>', null, 'stDiscountBackend'));
}
}
return !$request->hasErrors();
}
protected function saveGiftCard($gift_card)
{
$isNew = $gift_card->isNew();
parent::saveGiftCard($gift_card);
$categories = stJQueryToolsHelper::parseTokensFromRequest($this->getRequestParameter('categories'));
if (!$isNew)
{
$c = new Criteria();
$c->add(GiftCardHasCategoryPeer::GIFT_CARD_ID, $gift_card->getId());
GiftCardHasCategoryPeer::doDelete($c);
}
foreach ($categories as $token)
{
$ghc = new GiftCardHasCategory();
$ghc->setGiftCard($gift_card);
$ghc->setCategoryId($token['id']);
$ghc->save();
}
$producers = stJQueryToolsHelper::parseTokensFromRequest($this->getRequestParameter('producers'));
if (!$isNew)
{
$c = new Criteria();
$c->add(GiftCardHasProducerPeer::GIFT_CARD_ID, $gift_card->getId());
GiftCardHasProducerPeer::doDelete($c);
}
foreach ($producers as $token)
{
$ghp = new GiftCardHasProducer();
$ghp->setGiftCard($gift_card);
$ghp->setProducerId($token['id']);
$ghp->save();
}
}
protected function getLabels()
{
$labels = parent::getLabels();
$labels['{giftcard_assign_products}'] = $this->getContext()->getI18N()->__('Przypisz produkty', null, 'stDiscountBackend');
return $labels;
}
}