Example #1
0
 /**
  * Get all attributes for selected product.
  *
  * Each attribute has a new price.
  *
  * @param
  *        	integer idproduct
  * @param
  *        	integer idclient (0 by default)
  * @return array with attributes' product informations
  * @throws on error FrontendException object will be returned
  * @access public
  */
 public function getAttributesForProductById($id)
 {
     $clientGroupId = Session::getActiveClientGroupid();
     if (!empty($clientGroupId)) {
         $sql = "SELECT\n\t\t\t\t\t\tP.idproduct as id,\n\t\t\t\t\t\tPAS.stock,\n\t\t\t\t\t\tPAS.idproductattributeset,\n\t\t\t\t\t\tPAS.`value`,\n\t\t\t\t\t\tPAS.symbol,\n\t\t\t\t\t\tAT.name as availablity,\n\t\t\t\t\t\tPAS.photoid as photoid,\n\t\t\t\t\t\tPAS.symbol,\n\t\t\t\t\t\tIF(PAS.weight IS NULL, P.weight, PAS.weight) AS weight,\n\t\t\t\t\t\tPAVS.idproductattributevalueset,\n\t\t\t\t\t\tPAVS.productattributesetid AS attributesgroup,\n\t\t\t\t\t\tAPV.name AS attributename,\n\t\t\t\t\t\tAPV.idattributeproductvalue AS attributeid,\n\t\t\t\t\t\tAP.name AS attributegroupname,\n\t\t\t\t\t\tAP.idattributeproduct AS attributegroupid,\n\t\t\t\t\t\tIF(PGP.promotion = 1 AND IF(PGP.promotionstart IS NOT NULL, PGP.promotionstart <= CURDATE(), 1) AND IF(PGP.promotionend IS NOT NULL, PGP.promotionend >= CURDATE(), 1),\n\t\t\t\t\t\t\tCASE PAS.suffixtypeid\n                            \tWHEN 1 THEN PGP.discountprice * (PAS.value / 100)\n                                WHEN 2 THEN PGP.discountprice + PAS.value\n                                WHEN 3 THEN PGP.discountprice - PAS.value\n                            \tWHEN 4 THEN PAS.`value`\n                            END,\n\t\t\t\t\t\t\tIF(PGP.groupprice IS NULL AND P.promotion = 1 AND IF(P.promotionstart IS NOT NULL, P.promotionstart <= CURDATE(), 1) AND IF(P.promotionend IS NOT NULL, P.promotionend >= CURDATE(), 1),\n\t\t\t\t\t\t\t\tPAS.discountprice,\n\t\t\t\t\t\t\t\tIF(PGP.sellprice IS NOT NULL,\n\t\t\t\t\t\t\t\t\tCASE PAS.suffixtypeid\n\t\t                            \tWHEN 1 THEN PGP.sellprice * (PAS.value / 100)\n\t\t                                WHEN 2 THEN PGP.sellprice + PAS.value\n\t\t                                WHEN 3 THEN PGP.sellprice - PAS.value\n\t\t                            \tWHEN 4 THEN PAS.`value`\n\t                            \tEND,\n\t\t\t\t\t\t\t\t\tPAS.attributeprice\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) * CR.exchangerate AS attributeprice,\n\t\t\t\t\t\t(PAS.attributeprice * CR.exchangerate) AS attributepricenettobeforepromotion,\n\t\t\t\t\t\t(PAS.attributeprice * (1 + (V.value / 100)) * CR.exchangerate) AS attributepricegrossbeforepromotion,\n\t\t\t\t\t\tIF(PGP.promotion = 1 AND IF(PGP.promotionstart IS NOT NULL, PGP.promotionstart <= CURDATE(), 1) AND IF(PGP.promotionend IS NOT NULL, PGP.promotionend >= CURDATE(), 1),\n\t\t\t\t\t\t\tCASE PAS.suffixtypeid\n                            \tWHEN 1 THEN PGP.discountprice * (PAS.value / 100)\n                                WHEN 2 THEN PGP.discountprice + PAS.value\n                                WHEN 3 THEN PGP.discountprice - PAS.value\n                            \tWHEN 4 THEN PAS.`value`\n                            END,\n\t\t\t\t\t\t\tIF(PGP.groupprice IS NULL AND P.promotion = 1 AND IF(P.promotionstart IS NOT NULL, P.promotionstart <= CURDATE(), 1) AND IF(P.promotionend IS NOT NULL, P.promotionend >= CURDATE(), 1),\n\t\t\t\t\t\t\t\tPAS.discountprice,\n\t\t\t\t\t\t\t\tIF(PGP.sellprice IS NOT NULL,\n\t\t\t\t\t\t\t\t\tCASE PAS.suffixtypeid\n\t\t                            \tWHEN 1 THEN PGP.sellprice * (PAS.value / 100)\n\t\t                                WHEN 2 THEN PGP.sellprice + PAS.value\n\t\t                                WHEN 3 THEN PGP.sellprice - PAS.value\n\t\t                            \tWHEN 4 THEN PAS.`value`\n\t                            \tEND,\n\t\t\t\t\t\t\t\t\tPAS.attributeprice\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) * (1 + (V.value / 100)) * CR.exchangerate AS price\n\t                FROM productattributeset AS PAS\n\t\t\t\t    LEFT JOIN productattributevalueset PAVS ON PAVS.productattributesetid = PAS.idproductattributeset\n\t\t\t\t    LEFT JOIN attributeproductvalue APV ON PAVS.attributeproductvalueid = APV.idattributeproductvalue\n\t\t\t\t    LEFT JOIN attributeproduct AS AP ON APV.attributeproductid = AP.idattributeproduct\n\t\t\t\t    LEFT JOIN availablitytranslation AT ON PAS.availablityid = AT.availablityid AND AT.languageid = :languageid\n\t\t\t\t    LEFT JOIN product AS P ON PAS.productid = P.idproduct\n\t\t\t\t    LEFT JOIN productgroupprice PGP ON PGP.productid = P.idproduct AND PGP.clientgroupid = :clientgroupid\n\t\t\t\t    LEFT JOIN `vat` V ON P.vatid = V.idvat\n\t\t\t\t    LEFT JOIN currencyrates CR ON CR.currencyfrom = P.sellcurrencyid AND CR.currencyto = :currencyto\n\t\t\t\t    WHERE PAS.productid = :id AND PAS.status = 1";
     } else {
         $sql = "SELECT\n\t\t\t\t\t\tP.idproduct as id,\n\t\t\t\t\t\tPAS.stock,\n\t\t\t\t\t\tPAS.idproductattributeset,\n\t\t\t\t\t\tPAS.`value`,\n\t\t\t\t\t\tPAS.symbol,\n\t\t\t\t\t\tAT.name as availablity,\n\t\t\t\t\t\tPAS.photoid as photoid,\n\t\t\t\t\t\tIF(PAS.weight IS NULL, P.weight, PAS.weight) AS weight,\n\t\t\t\t\t\tPAVS.idproductattributevalueset,\n\t\t\t\t\t\tPAVS.productattributesetid AS attributesgroup,\n\t\t\t\t\t\tAPV.name AS attributename,\n\t\t\t\t\t\tAPV.idattributeproductvalue AS attributeid,\n\t\t\t\t\t\tAP.name AS attributegroupname,\n\t\t\t\t\t\tAP.idattributeproduct AS attributegroupid,\n\t\t\t\t\t\tIF(P.promotion = 1 AND IF(P.promotionstart IS NOT NULL, P.promotionstart <= CURDATE(), 1) AND IF(P.promotionend IS NOT NULL, P.promotionend >= CURDATE(), 1), PAS.discountprice, PAS.attributeprice) * CR.exchangerate AS attributeprice,\n\t\t\t\t\t\tIF(P.promotion = 1 AND IF(P.promotionstart IS NOT NULL, P.promotionstart <= CURDATE(), 1) AND IF(P.promotionend IS NOT NULL, P.promotionend >= CURDATE(), 1), PAS.discountprice, PAS.attributeprice) * (1 + (V.value / 100)) * CR.exchangerate AS price,\n\t\t\t\t\t\t(PAS.attributeprice * CR.exchangerate) AS attributepricenettobeforepromotion,\n\t\t\t\t\t\t(PAS.attributeprice * (1 + (V.value / 100)) * CR.exchangerate) AS attributepricegrossbeforepromotion\n\t                FROM productattributeset AS PAS\n\t\t\t\t    LEFT JOIN productattributevalueset PAVS ON PAVS.productattributesetid = PAS.idproductattributeset\n\t\t\t\t    LEFT JOIN attributeproductvalue APV ON PAVS.attributeproductvalueid = APV.idattributeproductvalue\n\t\t\t\t    LEFT JOIN attributeproduct AS AP ON APV.attributeproductid = AP.idattributeproduct\n\t\t\t\t\tLEFT JOIN availablitytranslation AT ON PAS.availablityid = AT.availablityid AND AT.languageid = :languageid\n\t\t\t\t    LEFT JOIN product AS P ON PAS.productid = P.idproduct\n\t\t\t\t    LEFT JOIN `vat` V ON P.vatid = V.idvat\n\t\t\t\t    LEFT JOIN currencyrates CR ON CR.currencyfrom = P.sellcurrencyid AND CR.currencyto = :currencyto\n\t\t\t\t    WHERE PAS.productid = :id AND PAS.status = 1";
     }
     $stmt = Db::getInstance()->prepare($sql);
     $stmt->bindValue('id', $id);
     $stmt->bindValue('languageid', Helper::getLanguageId());
     $stmt->bindValue('currencyto', Session::getActiveCurrencyId());
     if (!empty($clientGroupId)) {
         $stmt->bindValue('clientgroupid', $clientGroupId);
     }
     $Data = array();
     try {
         $stmt->execute();
         while ($rs = $stmt->fetch()) {
             $price = 0;
             $priceWithoutVat = 0;
             $attrId = $rs['idproductattributeset'];
             $Data[] = array('id' => $rs['id'], 'stock' => $rs['stock'], 'symbol' => $rs['symbol'], 'weight' => $rs['weight'], 'availablity' => $rs['availablity'], 'photoid' => $rs['photoid'], 'idproductattributeset' => $rs['idproductattributeset'], 'idproductattributevalueset' => $rs['idproductattributevalueset'], 'attributesgroup' => $rs['attributesgroup'], 'attributename' => $rs['attributename'], 'attributeid' => $rs['attributeid'], 'attributegroupname' => $rs['attributegroupname'], 'attributegroupid' => $rs['attributegroupid'], 'attributeprice' => $rs['attributeprice'], 'value' => $rs['value'], 'price' => $rs['price'], 'attributepricenettobeforepromotion' => $rs['attributepricenettobeforepromotion'], 'attributepricegrossbeforepromotion' => $rs['attributepricegrossbeforepromotion'], 'photos' => array('small' => (int) $rs['photoid'] > 0 ? App::getModel('gallery')->getImagePath(App::getModel('gallery')->getSmallImageById($rs['photoid'])) : '', 'normal' => (int) $rs['photoid'] > 0 ? App::getModel('gallery')->getImagePath(App::getModel('gallery')->getNormalImageById($rs['photoid'])) : '', 'large' => (int) $rs['photoid'] > 0 ? App::getModel('gallery')->getImagePath(App::getModel('gallery')->getLargeImageById($rs['photoid'])) : '', 'orginal' => (int) $rs['photoid'] > 0 ? App::getModel('gallery')->getImagePath(App::getModel('gallery')->getOrginalImageById($rs['photoid'])) : ''));
         }
     } catch (Exception $e) {
         throw new FrontendException($e->getMessage());
     }
     return $Data;
 }
Example #2
0
    public function getMinimumOrderValue()
    {
        $sql = 'SELECT
					ROUND((V.minimumordervalue * CR.exchangerate) - :globalprice, 2) AS required
				FROM view V
				LEFT JOIN currencyrates CR ON CR.currencyfrom = V.currencyid AND CR.currencyto = :currencyto
				WHERE V.idview = :viewid';
        $stmt = Db::getInstance()->prepare($sql);
        $stmt->bindValue('globalprice', $this->getGlobalPrice());
        $stmt->bindValue('currencyto', Session::getActiveCurrencyId());
        $stmt->bindValue('viewid', Helper::getViewId());
        $stmt->execute();
        $rs = $stmt->fetch();
        if ($rs) {
            return $rs['required'];
        }
        return 0;
    }
Example #3
0
 public function getDispatchmethodPriceForProduct($globalprice, $globalweight)
 {
     $Data = array();
     $sql = "SELECT \n\t\t\t\t\tDP.dispatchmethodid,\n\t\t\t\t\tDP.`from`, \n\t\t\t\t\tDP.`to`, \n\t\t\t\t\tV.value, \n\t\t\t\t\tDP.iddispatchmethodprice,\n\t\t\t\t\tIF(DP.vat IS NOT NULL, ROUND(DP.dispatchmethodcost + (DP.dispatchmethodcost * (V.`value`/100)), 4), DP.dispatchmethodcost) * CR.exchangerate as dispatchmethodcost,\n\t\t\t\t\tCASE\n  \t\t\t\t\t\tWHEN (`from` <> 0 AND `from` < :globalprice AND `to`= 0 AND DP.dispatchmethodcost = 0) THEN DMT.name\n \t\t\t\t\t \tWHEN (:globalprice BETWEEN `from` AND `to`) THEN DMT.name\n  \t\t\t\t\t\tWHEN (`to` = 0 AND `from` < :globalprice AND DP.dispatchmethodcost <> 0) THEN DMT.name\n  \t\t\t\t\t\tWHEN (`from` = 0 AND `to`=0 AND DP.dispatchmethodcost =0) THEN DMT.name\n\t\t\t\t\tEND as name\n\t\t\t\tFROM dispatchmethodprice DP\n\t\t\t\tLEFT JOIN dispatchmethod D ON D.iddispatchmethod = dispatchmethodid\n        LEFT JOIN dispatchmethodtranslation DMT ON DMT.dispatchmethodid = D.iddispatchmethod AND DMT.languageid = :languageid\n\t\t\t\tLEFT JOIN vat V ON V.idvat = DP.vat\n\t\t\t\tLEFT JOIN dispatchmethodview DV ON DV.dispatchmethodid = D.iddispatchmethod\n\t\t\t\tLEFT JOIN currencyrates CR ON CR.currencyfrom = D.currencyid AND CR.currencyto = :currencyto\n\t\t\t\tWHERE DV.viewid= :viewid AND IF(D.maximumweight IS NOT NULL, D.maximumweight >= :globalweight, 1) AND D.type = 1\n\t\t\t\tORDER BY D.hierarchy ASC";
     $stmt = Db::getInstance()->prepare($sql);
     $stmt->bindValue('languageid', Helper::getLanguageId());
     $stmt->bindValue('globalprice', $globalprice);
     $stmt->bindValue('globalweight', $globalweight);
     $stmt->bindValue('viewid', Helper::getViewId());
     $stmt->bindValue('currencyto', Session::getActiveCurrencyId());
     $stmt->execute();
     while ($rs = $stmt->fetch()) {
         $dispatchmethodid = $rs['dispatchmethodid'];
         if ($rs['name'] != NULL) {
             $dispatchmethodcost = $rs['dispatchmethodcost'];
             $Data[] = array('dispatchmethodid' => $dispatchmethodid, 'name' => _($rs['name']), 'from' => $rs['from'], 'to' => $rs['to'], 'vatvalue' => $rs['value'], 'dispatchmethodcost' => $this->priceFormatParser($dispatchmethodcost));
         }
     }
     $sql = "SELECT\n\t\t\t\t\tDW.dispatchmethodid, \n\t\t\t\t\tDW.`from`, \n\t\t\t\t\tDW.`to`, \n\t\t\t\t\tV.value, \n\t\t\t\t\tDW.iddispatchmethodweight,\n\t\t\t\t\tIF(DW.vat IS NOT NULL, ROUND(DW.cost+(DW.cost*(V.`value`/100)),4), DW.cost) * CR.exchangerate as dispatchmethodcost, \n\t\t\t\t\tD.freedelivery,\n\t\t\t\t\tCASE\n  \t\t\t\t\t\tWHEN (`from`<>0 AND `from`<:globalweight AND `to`=0 AND DW.cost =0) THEN DMT.name\n \t\t\t\t\t \tWHEN (:globalweight BETWEEN `from` AND `to`) THEN DMT.name\n  \t\t\t\t\t\tWHEN (`to` = 0 AND `from`<:globalweight AND DW.cost <> 0) THEN DMT.name\n  \t\t\t\t\t\tWHEN (`from`=0 AND `to`=0 AND DW.cost = 0) THEN DMT.name\n\t\t\t\t\tEND as name\n\t\t\t\tFROM dispatchmethodweight DW\n\t\t\t\tLEFT JOIN vat V ON V.idvat = DW.vat\n\t\t\t\tLEFT JOIN dispatchmethod D ON D.iddispatchmethod = DW.dispatchmethodid\n        LEFT JOIN dispatchmethodtranslation DMT ON DMT.dispatchmethodid = D.iddispatchmethod AND DMT.languageid = :languageid\n\t\t\t\tLEFT JOIN dispatchmethodview DV ON DV.dispatchmethodid = D.iddispatchmethod\n\t\t\t\tLEFT JOIN currencyrates CR ON CR.currencyfrom = D.currencyid AND CR.currencyto = :currencyto\n\t\t\t\tWHERE DV.viewid= :viewid AND D.type = 2\n\t\t\t\tORDER BY D.hierarchy ASC";
     $stmt = Db::getInstance()->prepare($sql);
     $stmt->bindValue('languageid', Helper::getLanguageId());
     $stmt->bindValue('globalprice', $globalprice);
     $stmt->bindValue('globalweight', $globalweight);
     $stmt->bindValue('viewid', Helper::getViewId());
     $stmt->bindValue('currencyto', Session::getActiveCurrencyId());
     $stmt->execute();
     while ($rs = $stmt->fetch()) {
         $dispatchmethodid = $rs['dispatchmethodid'];
         if ($rs['name'] != NULL) {
             if ($rs['freedelivery'] > 0 && $rs['freedelivery'] <= $globalprice) {
                 $dispatchmethodcost = 0.0;
             } else {
                 $dispatchmethodcost = $rs['dispatchmethodcost'];
             }
             $Data[] = array('dispatchmethodid' => $dispatchmethodid, 'name' => _($rs['name']), 'from' => $rs['from'], 'to' => $rs['to'], 'vatvalue' => $rs['value'], 'dispatchmethodcost' => $this->priceFormatParser($dispatchmethodcost));
         }
     }
     return $Data;
 }
Example #4
0
 public function edit()
 {
     Event::dispatch($this, 'admin.order.checkPaymentStatus', array('id' => (int) $this->registry->core->getParam()));
     $rawOrderData = $this->model->getOrderById($this->registry->core->getParam());
     if (isset($rawOrderData['currencyid']) && !empty($rawOrderData['currencyid'])) {
         $currencyid = $rawOrderData['currencyid'];
     } else {
         $currencyid = Session::getActiveShopCurrencyId();
     }
     try {
         $order = $this->model->getOrderById((int) $this->registry->core->getParam());
         $order['id'] = (int) $this->registry->core->getParam();
         $orderNotes = $this->model->getOrderNotes($order['id']);
         $clientOrderHistory = $this->model->getclientOrderHistory($order['clientid']);
     } catch (Exception $e) {
         throw new CoreException($e->getMessage());
     }
     $addNotes = new FormEngine\Elements\Form(array('name' => 'add_notes', 'class' => 'statusChange', 'action' => '', 'method' => 'post'));
     $addNotes->AddChild(new FormEngine\Elements\Textarea(array('name' => 'contents', 'label' => _('TXT_CONTENT'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_CONTENT'))))));
     $addNotes->AddChild(new FormEngine\Elements\Submit(array('name' => 'add', 'label' => _('TXT_ADD'), 'icon' => '_images_panel/icons/buttons/add.png')));
     $form = new FormEngine\Elements\Form(array('name' => 'order', 'action' => '', 'class' => 'editOrder', 'method' => 'post'));
     $productsData = $form->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'products_data', 'label' => _('TXT_EDIT_ORDER_ORDERED_PRODUCTS'))));
     $products = $productsData->AddChild(new FormEngine\Elements\OrderEditor(array('name' => 'products', 'label' => _('TXT_EDIT_ORDER_ORDERED_PRODUCTS'), 'advanced_editor' => true, 'repeat_min' => 1, 'repeat_max' => FormEngine\FE::INFINITE, 'clientgroupid' => (int) $rawOrderData['clientgroupid'], 'currencyid' => (int) $rawOrderData['currencyid'], 'viewid' => $rawOrderData['viewid'], 'on_change' => 'OnProductListChanged')));
     $addressData = $form->AddChild(new FormEngine\Elements\Columns(array('name' => 'address_data')));
     $billingData = $addressData->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'billing_data', 'label' => _('TXT_EDIT_ORDER_BILLING_DATA'))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'firstname', 'label' => _('TXT_FIRSTNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_FIRSTNAME'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'surname', 'label' => _('TXT_SURNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_SURNAME'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'street', 'label' => _('TXT_STREET'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_STREET'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'streetno', 'label' => _('TXT_STREETNO'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_STREETNO'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'placeno', 'label' => _('TXT_PLACENO'))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'place', 'label' => _('TXT_PLACE'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_PLACE'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'postcode', 'label' => _('TXT_POSTCODE'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_POSTCODE'))))));
     $billingData->AddChild(new FormEngine\Elements\Select(array('name' => 'countryid', 'label' => _('TXT_NAME_OF_COUNTRY'), 'options' => FormEngine\Option::Make(App::getModel('countrieslist')->getCountryForSelect()), 'default' => 0, 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_NAME_OF_COUNTRY'))))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'companyname', 'label' => _('TXT_COMPANYNAME'))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'nip', 'label' => _('TXT_NIP'))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'phone', 'label' => _('TXT_PHONE'), 'rules' => array(new FormEngine\Rules\Format(_('ERR_WRONG_FORMAT'), '/^[0-9 -+]+$/')))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'phone2', 'label' => _('TXT_ADDITIONAL_PHONE'), 'rules' => array(new FormEngine\Rules\Format(_('ERR_WRONG_FORMAT'), '/^[0-9 -+]+$/')))));
     $billingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'email', 'label' => _('TXT_EMAIL'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_EMAIL'))))));
     $shippingData = $addressData->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'shipping_data', 'label' => _('TXT_EDIT_ORDER_SHIPPING_DATA'))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'firstname', 'label' => _('TXT_FIRSTNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_FIRSTNAME'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'surname', 'label' => _('TXT_SURNAME'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_SURNAME'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'street', 'label' => _('TXT_STREET'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_STREET'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'streetno', 'label' => _('TXT_STREETNO'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_STREETNO'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'placeno', 'label' => _('TXT_PLACENO'))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'place', 'label' => _('TXT_PLACE'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_PLACE'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'postcode', 'label' => _('TXT_POSTCODE'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_POSTCODE'))))));
     $shippingData->AddChild(new FormEngine\Elements\Select(array('name' => 'countryid', 'label' => _('TXT_NAME_OF_COUNTRY'), 'options' => FormEngine\Option::Make(App::getModel('countrieslist')->getCountryForSelect()), 'default' => 0, 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_NAME_OF_COUNTRY'))))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'companyname', 'label' => _('TXT_COMPANYNAME'))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'nip', 'label' => _('TXT_NIP'))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'phone', 'label' => _('TXT_PHONE'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_PHONE')), new FormEngine\Rules\Format(_('ERR_WRONG_FORMAT'), '/^[0-9 -+]+$/')))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'phone2', 'label' => _('TXT_ADDITIONAL_PHONE'), 'rules' => array(new FormEngine\Rules\Format(_('ERR_WRONG_FORMAT'), '/^[0-9 -+]+$/')))));
     $shippingData->AddChild(new FormEngine\Elements\TextField(array('name' => 'email', 'label' => _('TXT_EMAIL'), 'rules' => array(new FormEngine\Rules\Required(_('ERR_EMPTY_EMAIL'))))));
     $additionalData = $form->AddChild(new FormEngine\Elements\Columns(array('name' => 'additional_data')));
     $paymentData = $additionalData->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'payment_data', 'label' => _('TXT_EDIT_ORDER_PAYMENT_METHOD'))));
     $paymentData->AddChild(new FormEngine\Elements\Select(array('name' => 'payment_method', 'label' => _('TXT_EDIT_ORDER_PAYMENT_METHOD'), 'options' => FormEngine\Option::Make($this->registry->core->getDefaultValueToSelect() + $this->model->getPaymentmethodAllToSelect($this->registry->core->getParam())))));
     $weight = 0;
     foreach ($order['products'] as $product) {
         $weight += $product['weight'];
     }
     $paymentData->AddChild(new FormEngine\Elements\Select(array('name' => 'delivery_method', 'label' => _('TXT_EDIT_ORDER_DELIVERY_METHOD'), 'options' => FormEngine\Option::Make($this->model->getDispatchmethodAllToSelect($order['total'], $this->registry->core->getParam(), $weight)))));
     $paymentData->AddChild(new FormEngine\Elements\Select(array('name' => 'rules_cart', 'label' => _('TXT_RULES_CART'), 'options' => FormEngine\Option::Make($this->model->getAllRulesForOrder($this->registry->core->getParam())))));
     $paymentData->AddChild(new FormEngine\Elements\Constant(array('name' => 'currency', 'label' => _('TXT_KIND_OF_CURRENCY'))));
     $summaryData = $additionalData->AddChild(new FormEngine\Elements\Fieldset(array('name' => 'summary_data', 'label' => _('TXT_VIEW_ORDER_SUMMARY'))));
     $summaryData->AddChild(new FormEngine\Elements\Constant(array('name' => 'total_net_total', 'label' => _('TXT_NETTO_AMOUNT'))));
     $summaryData->AddChild(new FormEngine\Elements\Constant(array('name' => 'total_vat_value', 'label' => _('TXT_VIEW_ORDER_TAX'))));
     $summaryData->AddChild(new FormEngine\Elements\Constant(array('name' => 'total_delivery', 'label' => _('TXT_DELIVERERPRICE'))));
     $summaryData->AddChild(new FormEngine\Elements\Constant(array('name' => 'total_total', 'label' => _('TXT_VIEW_ORDER_TOTAL'))));
     $form->AddFilter(new FormEngine\Filters\NoCode());
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\Secure());
     $orderData = array('address_data' => array('billing_data' => array('firstname' => $rawOrderData['billing_address']['firstname'], 'surname' => $rawOrderData['billing_address']['surname'], 'street' => $rawOrderData['billing_address']['street'], 'streetno' => $rawOrderData['billing_address']['streetno'], 'placeno' => $rawOrderData['billing_address']['placeno'], 'place' => $rawOrderData['billing_address']['city'], 'postcode' => $rawOrderData['billing_address']['postcode'], 'countryid' => $rawOrderData['billing_address']['countryid'], 'companyname' => $rawOrderData['billing_address']['companyname'], 'nip' => $rawOrderData['billing_address']['nip'], 'phone' => $rawOrderData['billing_address']['phone'], 'phone2' => $rawOrderData['billing_address']['phone2'], 'email' => $rawOrderData['billing_address']['email']), 'shipping_data' => array('firstname' => $rawOrderData['delivery_address']['firstname'], 'surname' => $rawOrderData['delivery_address']['surname'], 'street' => $rawOrderData['delivery_address']['street'], 'streetno' => $rawOrderData['delivery_address']['streetno'], 'placeno' => $rawOrderData['delivery_address']['placeno'], 'place' => $rawOrderData['delivery_address']['city'], 'postcode' => $rawOrderData['delivery_address']['postcode'], 'countryid' => $rawOrderData['delivery_address']['countryid'], 'companyname' => $rawOrderData['delivery_address']['companyname'], 'nip' => $rawOrderData['delivery_address']['nip'], 'phone' => $rawOrderData['delivery_address']['phone'], 'phone2' => $rawOrderData['billing_address']['phone2'], 'email' => $rawOrderData['delivery_address']['email'])), 'additional_data' => array('payment_data' => array('delivery_method' => $rawOrderData['delivery_method']['dispatchmethodid'], 'payment_method' => $rawOrderData['payment_method']['paymentmethodid'], 'rules_cart' => $rawOrderData['rulescartid'], 'currency' => $rawOrderData['currencysymbol']), 'summary_data' => array('total_net_total' => 132)), 'products_data' => array('products' => $this->model->getProductsDataGrid((int) $this->registry->core->getParam())));
     $form->Populate($orderData);
     $statusChange = new FormEngine\Elements\Form(array('name' => 'add_status_change', 'class' => 'statusChange', 'action' => '', 'method' => 'post'));
     $idstatus = $statusChange->AddChild(new FormEngine\Elements\Select(array('name' => 'status', 'label' => _('TXT_VIEW_ORDER_CHANGE_STATUS'), 'options' => FormEngine\Option::Make(App::getModel('orderstatus')->getOrderStatusToSelect()))));
     $statusChange->AddChild(new FormEngine\Elements\Textarea(array('name' => 'comment', 'label' => _('TXT_VIEW_ORDER_CHANGE_COMMENT'), 'dependencies' => array(new FormEngine\Dependency(FormEngine\Dependency::SUGGEST, $idstatus, array(App::getModel('orderstatus'), 'getDefaultComment'))))));
     $statusChange->AddChild(new FormEngine\Elements\Checkbox(array('name' => 'inform', 'label' => _('TXT_VIEW_ORDER_CHANGE_INFORM_CLIENT'))));
     $statusChange->AddChild(new FormEngine\Elements\Submit(array('name' => 'update', 'label' => _('TXT_VIEW_ORDER_CHANGE_UPDATE'), 'icon' => '_images_panel/icons/buttons/flag-green.png')));
     $statusChange->Populate(array('status' => $order['current_status_id']));
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\Secure());
     $form->AddFilter(new FormEngine\Filters\Trim());
     $form->AddFilter(new FormEngine\Filters\Secure());
     if ($addNotes->Validate(FormEngine\FE::SubmittedData())) {
         try {
             $notes = $addNotes->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT);
             $this->model->addOrderNotes($addNotes->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT), $order['id']);
             Session::setVolatileMessage("Dodano notatkę do zamówienia {$this->id}");
             App::redirect(__ADMINPANE__ . '/order/edit/' . (int) $this->registry->core->getParam());
         } catch (Exception $e) {
             $this->registry->template->assign('error', $e->getMessage());
         }
     }
     if ($statusChange->Validate(FormEngine\FE::SubmittedData())) {
         $this->model->addOrderHistory($statusChange->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT), $this->registry->core->getParam());
         try {
             $email = $statusChange->getSubmitValues(FormEngine\Elements\Form::FORMAT_FLAT);
             if ($email['inform'] == 1) {
                 $this->model->notifyUser($order, $email['status']);
             }
             Session::setVolatileMessage("Zaktualizowano status zamówienia {$this->id}");
             $this->model->updateOrderStatus($_POST, $this->registry->core->getParam());
             App::redirect(__ADMINPANE__ . '/order/edit/' . (int) $this->registry->core->getParam());
         } catch (Exception $e) {
             $this->registry->template->assign('error', $e->getMessage());
         }
     }
     if ($form->Validate(FormEngine\FE::SubmittedData())) {
         try {
             $this->model->updateOrderById($_POST, $this->registry->core->getParam());
             App::redirect(__ADMINPANE__ . '/order/');
         } catch (Exception $e) {
             $this->registry->template->assign('error', $e->getMessage());
         }
     }
     $this->registry->template->assign('viewid', Helper::getViewId());
     $this->registry->xajaxInterface->registerFunction(array('CalculateDeliveryCost', $this->model, 'calculateDeliveryCostEdit'));
     $this->registry->xajaxInterface->registerFunction(array('GetDispatchMethodForPrice', $this->model, 'getDispatchMethodForPriceForAjaxEdit'));
     $this->registry->template->assign('xajax', $this->registry->xajax->getJavascript());
     $this->registry->xajax->processRequest();
     $this->registry->template->assign('statusChange', $statusChange->Render());
     $this->registry->template->assign('addNotes', $addNotes->Render());
     $this->registry->template->assign('orderNotes', $orderNotes);
     $this->registry->template->assign('clientOrderHistory', $clientOrderHistory);
     $this->registry->template->assign('order', $order);
     $this->registry->template->assign('currencyid', Session::getActiveCurrencyId());
     $this->registry->template->assign('currencysymbol', Session::getActiveCurrencySymbol());
     $this->registry->template->assign('form', $form->Render());
     $this->registry->template->display($this->loadTemplate('edit.tpl'));
 }
Example #5
0
 public function getAllCurrenciesForView()
 {
     $shopCurrencyId = Session::getActiveCurrencyId();
     if (($Data = $this->registry->cache->load('currencies')) === FALSE) {
         $sql = "SELECT \n\t\t\t\t\t\tC.idcurrency, \n\t\t\t\t\t\tC.currencysymbol, \n\t\t\t\t\t\tC.currencyname\n\t\t\t\t\tFROM currency C\n\t\t\t\t\tLEFT JOIN currencyview CV ON CV.currencyid = C.idcurrency\n\t\t\t\t\tWHERE CV.viewid= :viewid";
         $stmt = Db::getInstance()->prepare($sql);
         $stmt->bindValue('viewid', Helper::getViewId());
         $stmt->execute();
         while ($rs = $stmt->fetch()) {
             $id = $rs['idcurrency'];
             $Data[$id] = array('id' => $id, 'name' => $rs['currencysymbol'], 'selected' => 0);
         }
         $this->registry->cache->save('currencies', $Data);
     }
     $Data[$shopCurrencyId]['selected'] = 1;
     return $Data;
 }
Example #6
0
 public function getProductListIntegration()
 {
     $sql = "SELECT\n\t\t\t\t  \tPC.categoryid AS id,\n\t\t\t\t  \tP.idproduct,\n\t\t\t\t  \tP.stock,\n\t\t\t\t  \tP.weight,\n\t\t\t\t  \tPT.name,\n\t\t\t\t  \t(P.sellprice * (1 + (V.value / 100)) * CR.exchangerate) AS sellprice,\n\t\t\t\t  \tIF(P.promotion = 1 AND IF(P.promotionstart IS NOT NULL, P.promotionstart <= CURDATE(), 1) AND IF(P.promotionend IS NOT NULL, P.promotionend >= CURDATE(), 1), P.discountprice * (1 + (V.value / 100)) * CR.exchangerate, NULL) AS discountprice,\n\t\t\t\t \tPT.shortdescription,\n\t\t\t\t  \tPhoto.photoid,\n\t\t\t\t  \tNC.name as domodioriginal,\n\t\t\t\t  \tCN.categoryid,\n\t\t\t\t  \tNC.iddomodi,\n\t\t\t\t  \tCN.domodiid,\n\t\t\t\t  \tPT.seo,\n\t\t\t\t\tPRT.name AS producername,\n\t\t\t\t\tP.ean\n\t\t\t\tFROM product P\n\t\t\t\tLEFT JOIN vat V ON P.vatid= V.idvat\n\t\t\t\tLEFT JOIN producttranslation PT ON PT.productid = P.idproduct AND PT.languageid=:languageid\n\t\t\t\tLEFT JOIN productcategory PC ON PC.productid = P.idproduct\n\t\t\t\tINNER JOIN viewcategory VC ON VC.categoryid = PC.categoryid AND VC.viewid = :viewid\n\t\t\t\tLEFT JOIN currencyrates CR ON CR.currencyfrom = P.sellcurrencyid AND CR.currencyto = :currencyto\n\t\t\t\tINNER JOIN productphoto Photo ON Photo.productid = P.idproduct AND Photo.mainphoto=1\n\t\t\t\tINNER JOIN categorydomodi CN ON CN.categoryid = PC.categoryid\n\t\t\t\tINNER JOIN domodi NC ON NC.idorginal = CN.domodiid\n\t\t\t\tLEFT JOIN producertranslation PRT ON PRT.producerid = P.producerid AND PRT.languageid = :languageid\n\t\t\t\tWHERE P.enable = 1\n\t            GROUP BY P.idproduct";
     $stmt = Db::getInstance()->prepare($sql);
     $stmt->bindValue('viewid', Helper::getViewId());
     $stmt->bindValue('languageid', Helper::getLanguageId());
     $stmt->bindValue('currencyto', Session::getActiveCurrencyId());
     $rs = $stmt->execute();
     $Data = array();
     while ($rs = $stmt->fetch()) {
         $Data[] = array('categoryid' => $rs['id'], 'producername' => $rs['producername'], 'ean' => $rs['ean'], 'productid' => $rs['idproduct'], 'stock' => $rs['stock'], 'avail' => $rs['stock'] > 0 ? 1 : 7, 'weight' => $rs['weight'], 'seo' => $rs['seo'], 'name' => $rs['name'], 'shortdescription' => $rs['shortdescription'], 'sellprice' => number_format(!is_null($rs['discountprice']) ? $rs['discountprice'] : $rs['sellprice'], 2, '.', ''), 'photoid' => $rs['photoid'], 'idproduct' => $rs['idproduct'], 'domodi' => $this->generateDomodiTreeByCategoryId($rs['categoryid']));
     }
     foreach ($Data as $key => $Product) {
         $Image = App::getModel('gallery')->getOrginalImageById($Product['photoid']);
         $Data[$key]['photo'] = App::getModel('gallery')->getImagePath($Image, App::getURLAdress());
     }
     return $Data;
 }
Example #7
0
 /**
  * Chcek cart rules.
  * If there is any rule, reduce global price. Otherwise return 0.
  *
  * @param
  *        	array client order
  * @return array discount (rulescartid, suffixtypeid, symbol, discount) or 0
  * @access public
  */
 public function getRulesCart($clientOrder)
 {
     $clientGroupId = Session::getActiveClientGroupid();
     $Data = array();
     $discount = array();
     $check = true;
     $allRules = $this->getAllCartRules();
     if (is_array($allRules) && !empty($allRules)) {
         foreach ($allRules as $rule) {
             $ruleid = $rule['idrulescart'];
             $ruleName = $rule['name'];
             $ruleDescription = $rule['description'];
             if ($clientGroupId > 0) {
                 $sql = "SELECT \n\t\t\t\t\t\t\t\tRCCG.rulescartid, \n\t\t\t\t\t\t\t\tRCR.ruleid, \n\t\t\t\t\t\t\t\tRCR.pkid, \n\t\t\t\t\t\t\t\tRCR.pricefrom, \n\t\t\t\t\t\t\t\tRCR.priceto,\n\t\t\t\t\t\t\t\tRCCG.suffixtypeid, \n\t\t\t\t\t\t\t\tRCCG.discount, \n\t\t\t\t\t\t\t\tRCCG.freeshipping, \n\t\t\t\t\t\t\t\tS.symbol,\n\t\t\t\t\t\t\t\tRCCG.clientgroupid\n\t\t\t\t\t\t\tFROM rulescartclientgroup RCCG\n\t\t\t\t\t\t\tLEFT JOIN rulescart RC ON RCCG.rulescartid = RC.idrulescart\n\t\t\t\t\t\t\tLEFT JOIN rulescartrule RCR ON RCR.rulescartid = RC.idrulescart\n\t\t\t\t\t\t\tLEFT JOIN rulescartview RCV ON RCV.rulescartid = RC.idrulescart\n\t\t\t\t\t\t\tLEFT JOIN suffixtype S ON RCCG.suffixtypeid = S.idsuffixtype\n\t\t\t\t\t\t\tWHERE RCR.rulescartid = :ruleid\n\t\t\t\t\t\t    AND RCV.viewid= :viewid\n\t\t\t\t\t\t\tAND RCCG.clientgroupid= :clientgroupid\n\t\t\t\t\t\t\tAND IF(RC.datefrom is not null, (cast(RC.datefrom as date) <= curdate()), 1)\n\t\t\t\t\t\t\tAND IF(RC.dateto is not null, (cast(RC.dateto as date)>= curdate()),1)";
                 $stmt = Db::getInstance()->prepare($sql);
                 $stmt->bindValue('clientgroupid', $clientGroupId);
                 $stmt->bindValue('viewid', Helper::getViewId());
                 $stmt->bindValue('ruleid', $ruleid);
             } else {
                 $sql = "SELECT \n\t\t\t\t\t\t\t\tRCR.rulescartid, \n\t\t\t\t\t\t\t\tRCR.ruleid, \n\t\t\t\t\t\t\t\tRCR.pkid, \n\t\t\t\t\t\t\t\tRCR.pricefrom, \n\t\t\t\t\t\t\t\tRCR.priceto,\n\t\t\t\t\t\t\t\tRC.suffixtypeid, \n\t\t\t\t\t\t\t\tRC.freeshipping, \n\t\t\t\t\t\t\t\tRC.discount, \n\t\t\t\t\t\t\t\tS.symbol,\n\t\t\t\t\t\t\t\t'clientgroupid' = NULL as clientgroupid\n\t\t\t\t\t\t\tFROM  rulescart RC\n\t\t\t\t\t\t\tLEFT JOIN rulescartrule RCR ON RCR.rulescartid = RC.idrulescart\n\t\t\t\t\t\t\tLEFT JOIN rulescartview RCV ON RCV.rulescartid = RC.idrulescart\n\t\t\t\t\t\t\tLEFT JOIN suffixtype S ON RC.suffixtypeid = S.idsuffixtype\n\t\t      \t\t\t\tWHERE RCR.rulescartid = :ruleid\n\t\t                 \tAND RC.discountforall =1\n\t\t          \t\t\tAND RCV.viewid= :viewid\n\t\t          \t\t\tAND IF(RC.datefrom is not null, (cast(RC.datefrom as date) <= curdate()), 1)\n\t\t\t\t\t\t\tAND IF(RC.dateto is not null, (cast(RC.dateto as date)>= curdate()),1)";
                 $stmt = Db::getInstance()->prepare($sql);
                 $stmt->bindValue('viewid', Helper::getViewId());
                 $stmt->bindValue('ruleid', $ruleid);
             }
             try {
                 $stmt->execute();
                 while ($rs = $stmt->fetch()) {
                     $ruleid = $rs['ruleid'];
                     $rulescartid = $rs['rulescartid'];
                     switch ($ruleid) {
                         case 9:
                             // delivery (dispatchmethod)
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if (isset($clientOrder['dispatchmethod']['dispatchmethodid']) && $clientOrder['dispatchmethod']['dispatchmethodid'] == $rs['pkid']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                         case 10:
                             // paymentmethod
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if (isset($clientOrder['payment']['idpaymentmethod']) && $clientOrder['payment']['idpaymentmethod'] == $rs['pkid']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                         case 11:
                             // final cart price
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if (isset($clientOrder['globalPrice']) && $clientOrder['globalPrice'] >= $rs['pricefrom']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                         case 12:
                             // final cart price
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if (isset($clientOrder['globalPrice']) && $clientOrder['globalPrice'] <= $rs['priceto']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                         case 13:
                             // final cart price with dispatch method
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if (isset($clientOrder['priceWithDispatchMethod']) && $clientOrder['priceWithDispatchMethod'] >= $rs['pricefrom']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                         case 14:
                             // final cart price with dispatch method
                             if (isset($Data[$rulescartid][$ruleid]) && $Data[$rulescartid][$ruleid] == 0 || !isset($Data[$rulescartid][$ruleid])) {
                                 if ($clientOrder['priceWithDispatchMethod'] <= $rs['priceto']) {
                                     $Data[$rulescartid][$ruleid] = 1;
                                 } else {
                                     $Data[$rulescartid][$ruleid] = 0;
                                 }
                             }
                             break;
                     }
                     $discountValue = $rs['discount'];
                     $discountSymbol = $rs['symbol'];
                     if ($discountSymbol !== '%' && $discountValue > 0) {
                         $shopCurrency = Session::getActiveShopCurrencyId();
                         $currentCurrency = Session::getActiveCurrencyId();
                         if ($shopCurrency != $currentCurrency) {
                             $rate = Session::getActiveCurrencyRate();
                             if (!empty($rate) && $rate > 0) {
                                 $discountValue = $rate * $discountValue;
                             }
                         }
                     }
                     $discount[$rs['rulescartid']]['rulescartid'] = $rs['rulescartid'];
                     $discount[$rs['rulescartid']]['name'] = $ruleName;
                     $discount[$rs['rulescartid']]['description'] = $ruleDescription;
                     $discount[$rs['rulescartid']]['suffixtypeid'] = $rs['suffixtypeid'];
                     $discount[$rs['rulescartid']]['discount'] = $discountValue;
                     $discount[$rs['rulescartid']]['symbol'] = $discountSymbol;
                     $discount[$rs['rulescartid']]['freeshipping'] = $rs['freeshipping'];
                 }
             } catch (Exception $e) {
                 throw new FrontendException(_('ERR_RULES_CART'));
             }
         }
         // end foreach
     }
     // end if is_array rulesAll
     if (count($Data) > 0) {
         foreach ($Data as $rulescart => $rules) {
             foreach ($rules as $rule) {
                 if ($rule == 0) {
                     unset($Data[$rulescart]);
                 }
             }
         }
     }
     foreach ($Data as $rulescart => $rules) {
         return $discount[$rulescart];
     }
 }