@@ -0,0 +1,57 @@ | |||
<?php | |||
namespace Lc\ShopBundle\Form\Backend\ReductionCart; | |||
use Doctrine\ORM\EntityManagerInterface; | |||
use Lc\ShopBundle\Context\PointSaleInterface; | |||
use Lc\ShopBundle\Context\ReductionCatalogInterface; | |||
use Lc\ShopBundle\Context\UserInterface; | |||
use Lc\ShopBundle\Model\ReductionCart; | |||
use Lc\ShopBundle\Repository\GroupUserRepository; | |||
use Symfony\Bridge\Doctrine\Form\Type\EntityType; | |||
use Symfony\Component\Form\AbstractType; | |||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType; | |||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; | |||
use Symfony\Component\Form\FormBuilderInterface; | |||
use Symfony\Component\Form\FormEvent; | |||
use Symfony\Component\Form\FormEvents; | |||
use Symfony\Component\OptionsResolver\OptionsResolver; | |||
class AppliedToType extends AbstractType | |||
{ | |||
protected $em; | |||
public function __construct(EntityManagerInterface $entityManager) | |||
{ | |||
$this->em = $entityManager; | |||
} | |||
public function buildForm(FormBuilderInterface $builder, array $options) | |||
{ | |||
$class = $this->em->getClassMetadata(PointSaleInterface::class); | |||
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($class) { | |||
$builder = $event->getForm()->getParent(); | |||
$builder->add('appliedTo', ChoiceType::class, array( | |||
'label' => 'field.Reduction.pointSalesActive', | |||
'choices' => array( | |||
'field.ReductionCart.appliedToOptions.' . ReductionCart::APPLIED_TO_ORDER_PRODUCTS => ReductionCart::APPLIED_TO_ORDER_PRODUCTS, | |||
//'field.ReductionCart.appliedToOptions.' . ReductionCart::APPLIED_TO_DELIVERY => ReductionCart::APPLIED_TO_DELIVERY | |||
), | |||
'translation_domain' => 'lcshop', | |||
'multiple' => false, | |||
'expanded' => false | |||
)); | |||
}); | |||
} | |||
public function configureOptions(OptionsResolver $resolver) | |||
{ | |||
$resolver->setDefaults([ | |||
// 'translation_domain' => 'lcshop', | |||
]); | |||
} | |||
} |
@@ -21,13 +21,15 @@ class UnitType extends AbstractType | |||
{ | |||
public function buildForm(FormBuilderInterface $builder, array $options) | |||
{ | |||
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { | |||
dump($options); | |||
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event, $options) { | |||
$builder = $event->getForm()->getParent(); | |||
$builder->add('unit', ChoiceType::class, [ | |||
'required' => true, | |||
'translation_domain'=>'lcshop', | |||
'expanded'=>true, | |||
'data'=> $options['data'], | |||
'choices' => [ | |||
'field.default.percent' => 'percent', | |||
'field.default.amount' => 'amount' |
@@ -36,9 +36,11 @@ abstract class ReductionCredit extends AbstractEntity implements ReductionInterf | |||
protected $merchant; | |||
public function __construct() | |||
{ | |||
$this->users = new ArrayCollection(); | |||
$this->unit = 'amount'; | |||
} | |||
public function __toString() |
@@ -242,8 +242,8 @@ field: | |||
appliedTo: Appliquer aux | |||
freeShipping: Frais de livraisons offert | |||
appliedToOptions: | |||
order: Montant de la commandes | |||
shipping: Frais de livraisons | |||
order-products: Montant de la commande | |||
delivery: Frais de livraisons | |||
unit: Unité | |||
Address: | |||
city: Commune |
@@ -8,7 +8,7 @@ | |||
<div class="col-12"> | |||
{{ form_row(form.appliedTo, {"attr" :{"v-model" : 'reductionAppliedTo'}}) }} | |||
</div> | |||
<div class="col-12" v-show="reductionAppliedTo != 'shipping'"> | |||
<div class="col-12" v-show="reductionAppliedTo != 'delivery'"> | |||
{{ form_row(form.freeShipping) }} | |||
</div> | |||
{{ macros.fieldReductionUnit(form) }} |
@@ -119,6 +119,7 @@ class OrderShopPriceUtils implements OrderShopPriceUtilsInterface | |||
{ | |||
$amount =0; | |||
if($orderReductionCart->getAppliedTo() === ReductionCart::APPLIED_TO_ORDER_PRODUCTS) { | |||
if ($orderReductionCart->getUnit() == 'percent') { | |||
$amount = $this->amountReductionByPercentValue( | |||
$this->getTotalOrderProducts($order), |