/** * VenueChargeForm constructor. * @param string $name * @param array $data */ public function __construct($data = [], $chargeData = []) { parent::__construct(); $this->setName('venue-charge')->setAttribute('method', 'post')->setAttribute('class', 'form-horizontal'); $this->add(['name' => 'id', 'type' => 'Zend\\Form\\Element\\Number', 'attributes' => ['type' => 'hidden']]); $this->add(['name' => 'venue_id', 'type' => 'Zend\\Form\\Element\\Number', 'attributes' => ['type' => 'hidden']]); $this->add(['name' => 'status_id', 'type' => 'Zend\\Form\\Element\\Select', 'attributes' => ['id' => 'status_id', 'class' => 'form-control', 'data-placeholder' => 'Select Status', 'data-id' => empty($chargeData) ? '' : $chargeData->getStatus()], 'options' => ['label' => 'Payment', 'value_options' => VenueCharges::getChargeStatuses()]]); $this->add(['name' => 'order_status_id', 'type' => 'Zend\\Form\\Element\\Select', 'attributes' => ['id' => 'order_status_id', 'class' => 'form-control', 'data-placeholder' => 'Select Order Status', 'data-id' => empty($chargeData) ? '' : $chargeData->getOrderStatus()], 'options' => ['label' => 'Order', 'value_options' => VenueCharges::getChargeOrderStatuses()]]); $this->add(['name' => 'description', 'type' => 'Zend\\Form\\Element\\Textarea', 'attributes' => ['id' => 'description', 'class' => 'form-control', 'rows' => 8, 'maxlength' => 5000, 'value' => empty($chargeData) ? '' : $chargeData->getDescription()], 'options' => ['label' => 'Description']]); $this->add(['name' => 'amount', 'type' => 'Zend\\Form\\Element\\Number', 'attributes' => ['id' => 'amount', 'class' => 'form-control', 'step' => '0.01', 'value' => empty($chargeData) ? '' : $chargeData->getAmount()], 'options' => ['label' => 'Amount']]); $this->add(['name' => 'is_archived', 'type' => 'Zend\\Form\\Element\\Checkbox', 'attributes' => ['id' => 'is_archived', 'value' => empty($chargeData) ? '' : $chargeData->getIsArchived(), 'class' => 'hidden'], 'options' => ['label' => 'Archived']]); $usersList = []; if (isset($data['users_list']) && !empty($data['users_list'])) { foreach ($data['users_list'] as $user) { $usersList[$user['id']] = $user['firstname'] . ' ' . $user['lastname']; } } $this->add(['name' => 'charged_user_id', 'type' => 'Zend\\Form\\Element\\Select', 'attributes' => ['id' => 'charged_user_id', 'class' => 'form-control', 'data-placeholder' => 'Select a User', 'data-id' => empty($chargeData) ? '' : $chargeData->getChargedUserId()], 'options' => ['label' => 'Charged User', 'disable_inarray_validator' => true, 'value_options' => $usersList]]); }
private function prepareVenueCharges($venueId = 0) { /** * @var \Library\Authentication\BackofficeAuthenticationService $auth * @var \DDD\Dao\Venue\Charges $venueChargesService */ $auth = $this->getServiceLocator()->get('library_backoffice_auth'); $venueChargesService = $this->getServiceLocator()->get('dao_venue_charges'); $venueCharges = $venueChargesService->getChargesByVenueId($venueId, false); $isVenueManager = $auth->hasRole(Roles::ROLE_VENUE_MANAGER); $isChargeManager = $auth->hasRole(Roles::ROLE_VENUE_CHARGE_MANAGER); $chargesData = []; foreach ($venueCharges as $charge) { /** * @var \DDD\Domain\Venue\Charges $charge * @var \DDD\Dao\User\UserManager $userDao */ $userDao = $this->getServiceLocator()->get('dao_user_user_manager'); $creatorData = $userDao->getUserById($charge->getCreatorId(), true, ['firstname', 'lastname']); $chargedUserData = $userDao->getUserById($charge->getChargedUserId(), true, ['firstname', 'lastname']); switch ($charge->getStatus()) { case VenueCharges::CHARGE_STATUS_NEW: $status = '<span class="label label-success">' . VenueCharges::getChargeStatuses()[$charge->getStatus()] . '</span>'; break; case VenueCharges::CHARGE_STATUS_TRANSFERRED: $status = '<span class="label label-primary">' . VenueCharges::getChargeStatuses()[$charge->getStatus()] . '</span>'; break; default: $status = '<span class="label label-default">' . VenueCharges::getChargeStatuses()[$charge->getStatus()] . '</span>'; } switch ($charge->getOrderStatus()) { case VenueCharges::ORDER_STATUS_NEW: $orderStatus = '<span class="label label-success">' . VenueCharges::getChargeOrderStatuses()[$charge->getOrderStatus()] . '</span>'; break; case VenueCharges::ORDER_STATUS_PROCESSING: $orderStatus = '<span class="label label-dark-green">' . VenueCharges::getChargeOrderStatuses()[$charge->getOrderStatus()] . '</span>'; break; case VenueCharges::ORDER_STATUS_DONE: $orderStatus = '<span class="label label-info">' . VenueCharges::getChargeOrderStatuses()[$charge->getOrderStatus()] . '</span>'; break; case VenueCharges::ORDER_STATUS_VERIFIED: $orderStatus = '<span class="label label-primary">' . VenueCharges::getChargeOrderStatuses()[$charge->getOrderStatus()] . '</span>'; break; default: $orderStatus = '<span class="label label-default">' . VenueCharges::getChargeOrderStatuses()[$charge->getOrderStatus()] . '</span>'; } $editButton = $isVenueManager || $isChargeManager ? '<a href="' . $this->url()->fromRoute('venue-charges', ['action' => 'edit', 'id' => $charge->getId()]) . '" class="btn btn-xs btn-primary" target="_blank">Edit</a>' : ''; array_push($chargesData, [$status, $orderStatus, $creatorData->getFirstName() . ' ' . $creatorData->getLastName(), $chargedUserData->getFirstName() . ' ' . $chargedUserData->getLastName(), Helper::truncateNotBreakingHtmlTags($charge->getDescription(), 200), $charge->getAmount(), $editButton]); } return $chargesData; }