/**
  * {@inheritDoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     /** @var Order $order */
     $order = $options['data'];
     $this->orderCurrencyHandler->setOrderCurrency($order);
     $builder->add('poNumber', 'text', ['required' => false, 'label' => 'orob2b.order.po_number.label'])->add('shipUntil', OroDateType::NAME, ['required' => false, 'label' => 'orob2b.order.ship_until.label'])->add('customerNotes', 'textarea', ['required' => false, 'label' => 'orob2b.order.customer_notes.frontend.label'])->add('lineItems', OrderLineItemsCollectionType::NAME, ['type' => FrontendOrderLineItemType::NAME, 'add_label' => 'orob2b.order.orderlineitem.add_label', 'cascade_validation' => true, 'options' => ['currency' => $order->getCurrency()]]);
     if ($this->orderAddressSecurityProvider->isAddressGranted($order, AddressType::TYPE_BILLING)) {
         $builder->add('billingAddress', OrderAddressType::NAME, ['label' => 'orob2b.order.billing_address.label', 'order' => $options['data'], 'required' => false, 'addressType' => AddressType::TYPE_BILLING]);
     }
     if ($this->orderAddressSecurityProvider->isAddressGranted($order, AddressType::TYPE_SHIPPING)) {
         $builder->add('shippingAddress', OrderAddressType::NAME, ['label' => 'orob2b.order.shipping_address.label', 'order' => $options['data'], 'required' => false, 'addressType' => AddressType::TYPE_SHIPPING]);
     }
     $builder->addEventListener(FormEvents::SUBMIT, [$this, 'updateLineItemPrices']);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritDoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     /** @var Order $order */
     $order = $options['data'];
     $this->orderCurrencyHandler->setOrderCurrency($order);
     $builder->add('account', AccountSelectType::NAME, ['label' => 'orob2b.order.account.label', 'required' => true])->add('accountUser', AccountUserSelectType::NAME, ['label' => 'orob2b.order.account_user.label', 'required' => false])->add('poNumber', 'text', ['required' => false, 'label' => 'orob2b.order.po_number.label'])->add('shipUntil', OroDateType::NAME, ['required' => false, 'label' => 'orob2b.order.ship_until.label'])->add('customerNotes', 'textarea', ['required' => false, 'label' => 'orob2b.order.customer_notes.label'])->add('priceList', PriceListSelectType::NAME, ['required' => false, 'label' => 'orob2b.order.price_list.label'])->add('currency', 'hidden')->add('lineItems', OrderLineItemsCollectionType::NAME, ['add_label' => 'orob2b.order.orderlineitem.add_label', 'cascade_validation' => true, 'options' => ['currency' => $order->getCurrency()]]);
     if ($this->orderAddressSecurityProvider->isAddressGranted($order, AddressType::TYPE_BILLING)) {
         $builder->add('billingAddress', OrderAddressType::NAME, ['label' => 'orob2b.order.billing_address.label', 'order' => $options['data'], 'required' => false, 'addressType' => AddressType::TYPE_BILLING]);
     }
     if ($this->orderAddressSecurityProvider->isAddressGranted($order, AddressType::TYPE_SHIPPING)) {
         $builder->add('shippingAddress', OrderAddressType::NAME, ['label' => 'orob2b.order.shipping_address.label', 'order' => $options['data'], 'required' => false, 'addressType' => AddressType::TYPE_SHIPPING]);
     }
     if ($this->isOverridePaymentTermGranted()) {
         $builder->add('paymentTerm', PaymentTermSelectType::NAME, ['label' => 'orob2b.order.payment_term.label', 'required' => false, 'attr' => ['data-account-payment-term' => $this->getAccountPaymentTermId($order), 'data-account-group-payment-term' => $this->getAccountGroupPaymentTermId($order)]]);
     }
 }
 /**
  * @dataProvider permissionsDataProvider
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  *
  * @param string $userClass
  * @param string $addressType
  * @param array|null $isGranted
  * @param bool $hasAccountAddresses
  * @param bool $hasAccountUserAddresses
  * @param bool $hasEntity
  * @param bool $isAddressGranted
  * @param bool $isAccountAddressGranted
  * @param bool $isAccountUserAddressGranted
  */
 public function testIsAddressGranted($userClass, $addressType, $isGranted, $hasAccountAddresses, $hasAccountUserAddresses, $hasEntity, $isAddressGranted, $isAccountAddressGranted, $isAccountUserAddressGranted)
 {
     $this->orderAddressProvider->expects($this->any())->method('getAccountAddresses')->willReturn($hasAccountAddresses);
     $this->orderAddressProvider->expects($this->any())->method('getAccountUserAddresses')->willReturn($hasAccountUserAddresses);
     $this->securityFacade->expects($this->any())->method('getLoggedUser')->willReturn(new $userClass());
     $this->securityFacade->expects($this->any())->method('isGranted')->with($this->isType('string'))->will($this->returnValueMap((array) $isGranted));
     $order = null;
     $account = null;
     $accountUser = null;
     if ($hasEntity) {
         $account = new Account();
         $accountUser = new AccountUser();
     }
     $order = (new Order())->setAccount($account)->setAccountUser($accountUser);
     $this->assertEquals($isAddressGranted, $this->provider->isAddressGranted($order, $addressType));
     $this->assertEquals($isAccountAddressGranted, $this->provider->isAccountAddressGranted($addressType, $account));
     $this->assertEquals($isAccountUserAddressGranted, $this->provider->isAccountUserAddressGranted($addressType, $accountUser));
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function finishView(FormView $view, FormInterface $form, array $options)
 {
     $isManualEditGranted = $this->orderAddressSecurityProvider->isManualEditGranted($options['addressType']);
     foreach ($view->children as $child) {
         $child->vars['disabled'] = !$isManualEditGranted;
         $child->vars['required'] = false;
         unset($child->vars['attr']['data-validation'], $child->vars['attr']['data-required'], $child->vars['label_attr']['data-required']);
     }
     if ($view->offsetExists('accountAddress')) {
         $view->offsetGet('accountAddress')->vars['disabled'] = false;
     }
 }
 public function testFinishView()
 {
     $view = new FormView();
     $view->children = ['country' => new FormView(), 'city' => new FormView(), 'accountAddress' => new FormView()];
     $this->orderAddressManager->expects($this->once())->method('getGroupedAddresses')->willReturn([]);
     $this->orderAddressSecurityProvider->expects($this->atLeastOnce())->method('isManualEditGranted')->willReturn(false);
     $form = $this->factory->create($this->formType, new OrderAddress(), ['addressType' => AddressTypeEntity::TYPE_SHIPPING, 'order' => new Order()]);
     $this->formType->finishView($view, $form, ['addressType' => AddressTypeEntity::TYPE_SHIPPING]);
     foreach (['country', 'city'] as $childName) {
         $this->assertTrue($view->offsetGet($childName)->vars['disabled']);
         $this->assertFalse($view->offsetGet($childName)->vars['required']);
         $this->assertArrayNotHasKey('data-validation', $view->offsetGet($childName)->vars['attr']);
         $this->assertArrayNotHasKey('data-required', $view->offsetGet($childName)->vars['attr']);
         $this->assertArrayNotHasKey('label_attr', $view->offsetGet($childName)->vars);
     }
     $this->assertFalse($view->offsetGet('accountAddress')->vars['disabled']);
     $this->assertFalse($view->offsetGet('accountAddress')->vars['required']);
 }