src/Form/MachineTimeMatrixType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\MachinePaperSizeTimeMatrix;
  4. use App\Entity\MachineTimeMatrix;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  7. use Symfony\Component\Form\Extension\Core\Type\MoneyType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\Form\FormEvent;
  10. use Symfony\Component\Form\FormEvents;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. class MachineTimeMatrixType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options): void
  15.     {
  16.         $builder
  17.             ->add('startQty'IntegerType::class, [
  18.                 'label' => false,
  19.                 'attr' => [
  20.                     'class' => 'text-end'
  21.                 ]
  22.             ])
  23.             ->add('setupTime'IntegerType::class, [
  24.                 'label' => false,
  25.                 'attr' => [
  26.                     'class' => 'text-end'
  27.                 ]
  28.             ])
  29.             ->add('rate'MoneyType::class, [
  30.                 'currency' => 'USD',
  31.                 'scale' => 4,
  32.                 'label' => false,
  33.                 'attr' => [
  34.                     'class' => 'text-end'
  35.                 ]
  36.             ]);
  37.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
  38.             /** @var $data MachineTimeMatrix|mixed */
  39.             $data $event->getData();
  40.             $form $event->getForm();
  41.             if (is_null($data)){
  42.                 $totalCost 0;
  43.                 //$totalCostPerSheet = 0;
  44.             }else{
  45.                 $totalCost $data->getSetupTime() * $data->getRate();
  46.                 //$totalCostPerSheet = $data->getSetupTime() * $data->getRate() / $data->getStartQty();;
  47.             }
  48. /*            $form->add('costPerSheet', MoneyType::class, [
  49.                 'mapped' => false,
  50.                 'data' => $totalCostPerSheet,
  51.                 'currency' => 'USD',
  52.                 'scale' => 4,
  53.                 'label' => false,
  54.                 'attr' => [
  55.                     'class' => 'text-end',
  56.                     'disabled' => true
  57.                 ]
  58.             ]);*/
  59.             $form->add('totalCost'MoneyType::class, [
  60.                 'mapped' => false,
  61.                 'data' => $totalCost,
  62.                 'currency' => 'USD',
  63.                 'scale' => 4,
  64.                 'label' => false,
  65.                 'attr' => [
  66.                     'class' => 'text-end',
  67.                     'disabled' => true
  68.                 ]
  69.             ]);
  70.         });
  71.     }
  72.     public function configureOptions(OptionsResolver $resolver): void
  73.     {
  74.         $resolver->setDefaults([
  75.             'data_class' => MachineTimeMatrix::class,
  76.         ]);
  77.     }
  78. }