Skip to content
Code-Schnipsel Gruppen Projekte
Checkout.php 3,29 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * This file contains QUI\ERP\Order\Controls\Checkout
     */
    
    namespace QUI\ERP\Order\Controls;
    
    use QUI;
    use QUI\ERP\Order\Handler;
    
    /**
     * Class Address
     * - Tab / Panel for the address
     *
     * @package QUI\ERP\Order\Controls
     */
    class Checkout extends AbstractOrderingStep
    {
    
        /**
         * @var QUI\ERP\Order\Basket\Basket
         */
        protected $Basket;
    
        /**
         * Basket constructor.
         *
         * @param array $attributes
         */
        public function __construct($attributes = array())
        {
            parent::__construct($attributes);
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            $this->addCSSFile(dirname(__FILE__).'/Checkout.css');
    
        /**
         * @return string
         */
        public function getBody()
        {
            $Engine = QUI::getTemplateManager()->getEngine();
            $Orders = Handler::getInstance();
            $Order  = $Orders->getOrderInProcess($this->getAttribute('orderId'));
    
    
            $Articles = $Order->getArticles()->toUniqueList();
            $Articles->hideHeader();
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            if ($Order->getDataEntry('orderedWithCosts') == 1) {
                $Payment = $Order->getPayment();
                $payment = $Order->getDataEntry('orderedWithCostsPayment');
    
                if ($payment == $Payment->getId() && $Payment->getPaymentType()->isGateway()) {
    
                    $Engine->assign('Gateway', $Payment->getPaymentType());
                    $Engine->assign('gatewayDisplay', $Payment->getPaymentType()->getGatewayDisplay($Order));
    
                'User'            => $Order->getCustomer(),
                'InvoiceAddress'  => $Order->getInvoiceAddress(),
                'DeliveryAddress' => $Order->getDeliveryAddress(),
                'Payment'         => $Order->getPayment(),
                'Articles'        => $Articles
    
    Henning Leutz's avatar
    Henning Leutz committed
            return $Engine->fetch(dirname(__FILE__).'/Checkout.html');
    
    Henning Leutz's avatar
    Henning Leutz committed
         * @param null|QUI\Locale $Locale
    
    Henning Leutz's avatar
    Henning Leutz committed
        public function getName($Locale = null)
    
    Henning Leutz's avatar
    Henning Leutz committed
            return 'Checkout';
    
        /**
         * @return string
         */
        public function getIcon()
        {
            return 'fa-shopping-cart';
        }
    
    
        /**
         * @throws QUI\ERP\Order\Exception
         */
    
            $Orders  = Handler::getInstance();
            $Order   = $Orders->getOrderInProcess($this->getAttribute('orderId'));
            $Payment = $Order->getPayment();
    
            if (!$Payment) {
                throw new QUI\ERP\Order\Exception(array(
                    'quiqqer/order',
                    'exception.order.payment.missing'
                ));
            }
    
    Henning Leutz's avatar
    Henning Leutz committed
        /**
         * Order was ordered with costs
    
         *
         * @return void
    
    Henning Leutz's avatar
    Henning Leutz committed
         */
    
            if (!isset($_REQUEST['current']) || $_REQUEST['current'] !== 'checkout') {
    
            if (!isset($_REQUEST['payableToOrder'])) {
    
            $this->forceSave();
        }
    
        /**
         * Save order as start order payment
         */
        public function forceSave()
        {
            $Orders  = Handler::getInstance();
            $Order   = $Orders->getOrderInProcess($this->getAttribute('orderId'));
            $Payment = $Order->getPayment();
    
            if (!$Payment) {
    
    Henning Leutz's avatar
    Henning Leutz committed
            $Order->setData('orderedWithCosts', 1);
            $Order->setData('orderedWithCostsPayment', $Payment->getId());
            $Order->save();