Skip to content

Commit

Permalink
Merge pull request #10 from mdevaud/fix/sub-order-validation
Browse files Browse the repository at this point in the history
fix: validation on SubOrderFormCreate.php
  • Loading branch information
mdevaud authored Apr 26, 2024
2 parents 783a879 + 99b1796 commit 0cfe65b
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 20 deletions.
20 changes: 18 additions & 2 deletions Form/SubOrderFormCreate.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@

use SubOrderGenerator\SubOrderGenerator;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Validator\Constraints\Callback;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
use Thelia\Core\Translation\Translator;
use Thelia\Form\BaseForm;
use Thelia\Model\Module;
use Thelia\Model\Base\OrderQuery;
use Thelia\Model\ModuleQuery;
use Thelia\Model\Order;

class SubOrderFormCreate extends BaseForm
{
Expand All @@ -26,9 +30,21 @@ protected function buildForm()
$modules[$module->getTitle()] = $module->getCode();
}
$this->formBuilder
->add("amountAlreadyPaid", TextType::class,
->add("amountAlreadyPaid", NumberType::class,
[
'label' => Translator::getInstance()->trans('amount already paid', [], SubOrderGenerator::DOMAIN_NAME),
'constraints' => [
new Callback(function($value, ExecutionContextInterface $context){
$parentOrderId = $context->getRoot()->getData()['parentOrderId'];
/** @var Order $parent */
$parent = OrderQuery::create()->findOneById($parentOrderId);
if ($value > $parent->getTotalAmount()) {
$context->addViolation(
Translator::getInstance()->trans('amount already paid can\'t be greater than total amount of parent order', [], SubOrderGenerator::DOMAIN_NAME)
);
}
})
]
]
)
->add("parentOrderId", TextType::class)
Expand Down
2 changes: 1 addition & 1 deletion I18n/en_US.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
*/

return [
// 'an english string' => 'The displayed english string',
'an order need a payment from you' => 'an order need a payment from you',
];
2 changes: 1 addition & 1 deletion I18n/fr_FR.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
*/

return [
// 'an english string' => 'La traduction française de la chaine',
'an order need a payment from you' => 'Une commande nécéssite un paiement de votre part',
];
37 changes: 21 additions & 16 deletions SubOrderGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ class SubOrderGenerator extends BaseModule
'subject' => 'subOrder subject',
'title' => 'subOrder title'
],
'1.0.10' =>[
'name' => self::SUBORDER_LINK_MESSAGE_NAME,
'subject' => 'an order need a payment from you',
'title' => 'an order need a payment from you'
]
];

public static function generateEmailMessage()
Expand All @@ -39,33 +44,33 @@ public static function generateEmailMessage()

public static function createMessageIfNotExist($messageName, $subject, $title)
{
if (null === MessageQuery::create()->findOneByName($messageName)) {
if (null === $message = MessageQuery::create()->findOneByName($messageName)) {
$message = new Message();
$message
->setName($messageName)
->setHtmlTemplateFileName($messageName.'.html')
->setHtmlTemplateFileName($messageName . '.html')
->setHtmlLayoutFileName('')
->setTextTemplateFileName($messageName.'.txt')
->setTextTemplateFileName($messageName . '.txt')
->setTextLayoutFileName('')
->setSecured(0);
}

$languages = LangQuery::create()->find();
$languages = LangQuery::create()->find();

foreach ($languages as $language) {
$locale = $language->getLocale();
foreach ($languages as $language) {
$locale = $language->getLocale();

$message->setLocale($locale);
$message->setLocale($locale);

$message->setSubject(
Translator::getInstance()->trans($subject, [], $locale)
);
$message->setTitle(
Translator::getInstance()->trans($title, [], $locale)
);
}

$message->save();
$message->setSubject(
Translator::getInstance()->trans($subject, [], SubOrderGenerator::DOMAIN_NAME, $locale)
);
$message->setTitle(
Translator::getInstance()->trans($title, [], SubOrderGenerator::DOMAIN_NAME, $locale)
);
}

$message->save();
}

public function postActivation(ConnectionInterface $con = null): void
Expand Down

0 comments on commit 0cfe65b

Please sign in to comment.