コード例 #1
0
 public static function insertDefaultData()
 {
     $defaultLanguage = intval(Configuration::get('PS_LANG_DEFAULT'));
     $default = new LoyaltyStateModule(LoyaltyStateModule::getDefaultId());
     $default->name[$defaultLanguage] = 'Validation';
     $default->save();
     $validation = new LoyaltyStateModule(LoyaltyStateModule::getValidationId());
     $validation->id_order_state = _PS_OS_DELIVERED_;
     $validation->name[$defaultLanguage] = 'Available';
     $validation->save();
     $cancel = new LoyaltyStateModule(LoyaltyStateModule::getCancelId());
     $cancel->id_order_state = _PS_OS_CANCELED_;
     $cancel->name[$defaultLanguage] = 'Canceled';
     $cancel->save();
     $convert = new LoyaltyStateModule(LoyaltyStateModule::getConvertId());
     $convert->name[$defaultLanguage] = 'Converted';
     $convert->save();
     $noneAward = new LoyaltyStateModule(LoyaltyStateModule::getNoneAwardId());
     $noneAward->name[$defaultLanguage] = 'Unavailable on discounts';
     $noneAward->save();
     return true;
 }
コード例 #2
0
 public static function insertDefaultData()
 {
     $loyaltyModule = new Loyalty();
     $languages = Language::getLanguages();
     $defaultTranslations = array('default' => array('id_loyalty_state' => (int) LoyaltyStateModule::getDefaultId(), 'default' => $loyaltyModule->getL('Awaiting validation'), 'en' => 'Awaiting validation', 'fr' => 'En attente de validation'));
     $defaultTranslations['validated'] = array('id_loyalty_state' => (int) LoyaltyStateModule::getValidationId(), 'id_order_state' => Configuration::get('PS_OS_DELIVERED'), 'default' => $loyaltyModule->getL('Available'), 'en' => 'Available', 'fr' => 'Disponible');
     $defaultTranslations['cancelled'] = array('id_loyalty_state' => (int) LoyaltyStateModule::getCancelId(), 'id_order_state' => Configuration::get('PS_OS_CANCELED'), 'default' => $loyaltyModule->getL('Cancelled'), 'en' => 'Cancelled', 'fr' => 'Annulés');
     $defaultTranslations['converted'] = array('id_loyalty_state' => (int) LoyaltyStateModule::getConvertId(), 'default' => $loyaltyModule->getL('Already converted'), 'en' => 'Already converted', 'fr' => 'Déjà convertis');
     $defaultTranslations['none_award'] = array('id_loyalty_state' => (int) LoyaltyStateModule::getNoneAwardId(), 'default' => $loyaltyModule->getL('Unavailable on discounts'), 'en' => 'Unavailable on discounts', 'fr' => 'Non disponbile sur produits remisés');
     foreach ($defaultTranslations as $loyaltyState) {
         $state = new LoyaltyStateModule((int) $loyaltyState['id_loyalty_state']);
         if (isset($loyaltyState['id_order_state'])) {
             $state->id_order_state = (int) $loyaltyState['id_order_state'];
         }
         $state->name[(int) Configuration::get('PS_LANG_DEFAULT')] = $loyaltyState['default'];
         foreach ($languages as $language) {
             if (isset($loyaltyState[$language['iso_code']])) {
                 $state->name[(int) $language['id_lang']] = $loyaltyState[$language['iso_code']];
             }
         }
         $state->save();
     }
     return true;
 }
コード例 #3
0
ファイル: default.php プロジェクト: Benichou34/loyalty
 /**
  * Assign summary template
  */
 public function assignSummaryExecution()
 {
     $customer_points = (int) LoyaltyModule::getPointsByCustomer((int) $this->context->customer->id);
     $orders = LoyaltyModule::getAllByIdCustomer((int) $this->context->customer->id, (int) $this->context->language->id);
     $displayorders = LoyaltyModule::getAllByIdCustomer((int) $this->context->customer->id, (int) $this->context->language->id, false, true, (int) Tools::getValue('n') > 0 ? (int) Tools::getValue('n') : 10, (int) Tools::getValue('p') > 0 ? (int) Tools::getValue('p') : 1);
     $this->context->smarty->assign(array('orders' => $orders, 'displayorders' => $displayorders, 'totalPoints' => (int) $customer_points, 'voucher' => LoyaltyModule::getVoucherValue($customer_points, (int) $this->context->currency->id), 'validation_id' => LoyaltyStateModule::getValidationId(), 'transformation_allowed' => $customer_points > 0, 'page' => (int) Tools::getValue('p') > 0 ? (int) Tools::getValue('p') : 1, 'nbpagination' => (int) Tools::getValue('n') > 0 ? (int) Tools::getValue('n') : 10, 'nArray' => array(10, 20, 50), 'max_page' => floor(count($orders) / ((int) Tools::getValue('n') > 0 ? (int) Tools::getValue('n') : 10)), 'pagination_link' => $this->getSummaryPaginationLink(array(), $this->context->smarty)));
     /* Discounts */
     $nb_discounts = 0;
     $discounts = array();
     if ($ids_discount = LoyaltyModule::getDiscountByIdCustomer((int) $this->context->customer->id)) {
         $nb_discounts = count($ids_discount);
         foreach ($ids_discount as $key => $discount) {
             $discounts[$key] = new CartRule((int) $discount['id_cart_rule'], (int) $this->context->cookie->id_lang);
             $discounts[$key]->orders = LoyaltyModule::getOrdersByIdDiscount((int) $discount['id_cart_rule']);
         }
     }
     $all_categories = Category::getSimpleCategories((int) $this->context->cookie->id_lang);
     $voucher_categories = Configuration::get('PS_LOYALTY_VOUCHER_CATEGORY');
     if ($voucher_categories != '' && $voucher_categories != 0) {
         $voucher_categories = explode(',', Configuration::get('PS_LOYALTY_VOUCHER_CATEGORY'));
     } else {
         die(Tools::displayError());
     }
     if (count($voucher_categories) == count($all_categories)) {
         $categories_names = null;
     } else {
         $categories_names = array();
         foreach ($all_categories as $k => $all_category) {
             if (in_array($all_category['id_category'], $voucher_categories)) {
                 $categories_names[$all_category['id_category']] = trim($all_category['name']);
             }
         }
         if (!empty($categories_names)) {
             $categories_names = Tools::truncate(implode(', ', $categories_names), 100) . '.';
         } else {
             $categories_names = null;
         }
     }
     $this->context->smarty->assign(array('nbDiscounts' => (int) $nb_discounts, 'discounts' => $discounts, 'minimalLoyalty' => (double) Configuration::get('PS_LOYALTY_MINIMAL'), 'categories' => $categories_names));
     $this->setTemplate('loyalty.tpl');
 }
コード例 #4
0
ファイル: loyalty.php プロジェクト: Bruno-2M/prestashop
 public function hookUpdateOrderStatus($params)
 {
     if (!Validate::isLoadedObject($params['newOrderStatus'])) {
         die(Tools::displayError('Some parameters are missing.'));
     }
     $newOrder = $params['newOrderStatus'];
     $order = new Order(intval($params['id_order']));
     if ($order and !Validate::isLoadedObject($order)) {
         die(Tools::displayError('Incorrect object Order.'));
     }
     $this->instanceDefaultStates();
     if ($newOrder->id == $this->loyaltyStateValidation->id_order_state or $newOrder->id == $this->loyaltyStateCancel->id_order_state) {
         if (!Validate::isLoadedObject($loyalty = new LoyaltyModule(LoyaltyModule::getByOrderId($order->id)))) {
             return false;
         }
         if (intval(Configuration::get('PS_LOYALTY_NONE_AWARD')) and $loyalty->id_loyalty_state == LoyaltyStateModule::getNoneAwardId()) {
             return true;
         }
         if ($newOrder->id == $this->loyaltyStateValidation->id_order_state) {
             $loyalty->id_loyalty_state = LoyaltyStateModule::getValidationId();
             if (intval($loyalty->points) < 0) {
                 $loyalty->points = abs(intval($loyalty->points));
             }
         } else {
             if ($newOrder->id == $this->loyaltyStateCancel->id_order_state) {
                 $loyalty->id_loyalty_state = LoyaltyStateModule::getCancelId();
                 $loyalty->points = 0;
                 //-abs(intval($loyalty->points));
             }
         }
         return $loyalty->save();
     }
     return true;
 }
コード例 #5
0
ファイル: loyalty.php プロジェクト: rongandat/vatfairfoot
 public function hookUpdateOrderStatus($params)
 {
     include_once dirname(__FILE__) . '/LoyaltyStateModule.php';
     include_once dirname(__FILE__) . '/LoyaltyModule.php';
     if (!Validate::isLoadedObject($params['newOrderStatus'])) {
         die($this->l('Missing parameters'));
     }
     $new_order = $params['newOrderStatus'];
     $order = new Order((int) $params['id_order']);
     if ($order && !Validate::isLoadedObject($order)) {
         die($this->l('Incorrect Order object.'));
     }
     $this->instanceDefaultStates();
     if ($new_order->id == $this->loyaltyStateValidation->id_order_state || $new_order->id == $this->loyaltyStateCancel->id_order_state) {
         if (!Validate::isLoadedObject($loyalty = new LoyaltyModule(LoyaltyModule::getByOrderId($order->id)))) {
             return false;
         }
         if ((int) Configuration::get('PS_LOYALTY_NONE_AWARD') && $loyalty->id_loyalty_state == LoyaltyStateModule::getNoneAwardId()) {
             return true;
         }
         if ($new_order->id == $this->loyaltyStateValidation->id_order_state) {
             $loyalty->id_loyalty_state = LoyaltyStateModule::getValidationId();
             if ((int) $loyalty->points < 0) {
                 $loyalty->points = abs((int) $loyalty->points);
             }
         } elseif ($new_order->id == $this->loyaltyStateCancel->id_order_state) {
             $loyalty->id_loyalty_state = LoyaltyStateModule::getCancelId();
             $loyalty->points = 0;
         }
         return $loyalty->save();
     }
     return true;
 }
コード例 #6
0
    }
    if (is_array($categories) and sizeof($categories)) {
        $cartRule->add(true, false, $categories);
    } else {
        $cartRule->add();
    }
    /* Register order(s) which contributed to create this voucher */
    if (!LoyaltyModule::registerDiscount($cartRule)) {
        $cartRule->delete();
    }
    Tools::redirect('modules/loyalty/loyalty-program.php');
}
include dirname(__FILE__) . '/../../header.php';
$orders = LoyaltyModule::getAllByIdCustomer((int) $cookie->id_customer, (int) $cookie->id_lang);
$displayorders = LoyaltyModule::getAllByIdCustomer((int) $cookie->id_customer, (int) $cookie->id_lang, false, true, (int) Tools::getValue('n') > 0 ? (int) Tools::getValue('n') : 10, (int) Tools::getValue('p') > 0 ? (int) Tools::getValue('p') : 1);
$smarty->assign(array('orders' => $orders, 'displayorders' => $displayorders, 'pagination_link' => __PS_BASE_URI__ . 'modules/loyalty/loyalty-program.php', 'totalPoints' => (int) $customerPoints, 'voucher' => LoyaltyModule::getVoucherValue($customerPoints, (int) $context->currency->id), 'validation_id' => LoyaltyStateModule::getValidationId(), 'transformation_allowed' => $customerPoints > 0, 'page' => (int) Tools::getValue('p') > 0 ? (int) Tools::getValue('p') : 1, 'nbpagination' => (int) (Tools::getValue('n') > 0) ? (int) Tools::getValue('n') : 10, 'nArray' => array(10, 20, 50), 'max_page' => floor(sizeof($orders) / ((int) (Tools::getValue('n') > 0) ? (int) Tools::getValue('n') : 10))));
/* Discounts */
$nbDiscounts = 0;
$discounts = array();
if ($ids_discount = LoyaltyModule::getDiscountByIdCustomer((int) $cookie->id_customer)) {
    $nbDiscounts = count($ids_discount);
    foreach ($ids_discount as $key => $discount) {
        $discounts[$key] = new Discount((int) $discount['id_cart_rule'], (int) $cookie->id_lang);
        $discounts[$key]->orders = LoyaltyModule::getOrdersByIdDiscount((int) $discount['id_cart_rule']);
    }
}
$allCategories = Category::getSimpleCategories((int) $cookie->id_lang);
$voucherCategories = Configuration::get('PS_LOYALTY_VOUCHER_CATEGORY');
if ($voucherCategories != '' and $voucherCategories != 0) {
    $voucherCategories = explode(',', Configuration::get('PS_LOYALTY_VOUCHER_CATEGORY'));
} else {
コード例 #7
0
    public static function getAllByIdCustomer($id_customer, $id_lang, $onlyValidate = false, $pagination = false, $nb = 10, $page = 1)
    {
        $query = '
		SELECT f.id_order AS id, f.date_add AS date, (o.total_paid - o.total_shipping) total_without_shipping, f.points, f.id_loyalty, f.id_loyalty_state, fsl.name state
		FROM `' . _DB_PREFIX_ . 'loyalty` f
		LEFT JOIN `' . _DB_PREFIX_ . 'orders` o ON (f.id_order = o.id_order)
		LEFT JOIN `' . _DB_PREFIX_ . 'loyalty_state_lang` fsl ON (f.id_loyalty_state = fsl.id_loyalty_state AND fsl.id_lang = ' . (int) $id_lang . ')
		WHERE f.id_customer = ' . (int) $id_customer;
        if ($onlyValidate === true) {
            $query .= ' AND f.id_loyalty_state = ' . (int) LoyaltyStateModule::getValidationId();
        }
        $query .= ' GROUP BY f.id_loyalty ' . ($pagination ? 'LIMIT ' . ((int) $page - 1) * (int) $nb . ', ' . (int) $nb : '');
        return Db::getInstance()->executeS($query);
    }
コード例 #8
0
ファイル: LoyaltyModule.php プロジェクト: redb/prestashop
    public static function getAllByIdCustomer($id_customer, $id_lang, $onlyValidate = false)
    {
        $query = '
			SELECT f.id_order AS id, fh.date_add AS date, (o.total_paid - o.total_shipping) AS total_without_shipping, fh.points AS points, fh.id_loyalty AS id_loyalty, fh.id_loyalty_state AS id_loyalty_state, fsl.name AS state
			FROM `' . _DB_PREFIX_ . 'loyalty_history` fh
			LEFT JOIN `' . _DB_PREFIX_ . 'loyalty` f ON (f.id_loyalty = fh.id_loyalty)
			LEFT JOIN `' . _DB_PREFIX_ . 'orders` o ON (f.id_order = o.id_order)
			LEFT JOIN `' . _DB_PREFIX_ . 'loyalty_state_lang` fsl ON (fh.id_loyalty_state = fsl.id_loyalty_state AND fsl.id_lang = ' . intval($id_lang) . ')
			WHERE f.id_customer = ' . intval($id_customer);
        if ($onlyValidate === true) {
            $query .= ' AND f.id_loyalty_state = ' . intval(LoyaltyStateModule::getValidationId()) . ' GROUP BY f.id_loyalty';
        }
        return Db::getInstance()->ExecuteS($query);
    }
コード例 #9
0
    // + 1 year
    $voucher->minimal = 0;
    $voucher->active = 1;
    $languages = Language::getLanguages(true);
    $default_text = Configuration::get('PS_LOYALTY_VOUCHER_DETAILS', intval(Configuration::get('PS_LANG_DEFAULT')));
    foreach ($languages as $language) {
        $text = Configuration::get('PS_LOYALTY_VOUCHER_DETAILS', intval($language['id_lang']));
        $voucher->description[intval($language['id_lang'])] = $text ? strval($text) : strval($default_text);
    }
    $voucher->save();
    /* register order(s) which contribute to create this voucher */
    LoyaltyModule::registerDiscount($voucher);
    Tools::redirect('modules/loyalty/loyalty-program.php');
}
include dirname(__FILE__) . '/../../header.php';
$orders = LoyaltyModule::getAllByIdCustomer(intval($cookie->id_customer), intval($cookie->id_lang));
$smarty->assign(array('orders' => $orders, 'totalPoints' => $customerPoints, 'voucher' => LoyaltyModule::getVoucherValue($customerPoints, intval($cookie->id_currency)), 'validation_id' => LoyaltyStateModule::getValidationId(), 'transformation_allowed' => $customerPoints > 0));
/* Discounts */
$nbDiscounts = 0;
$discounts = array();
if ($ids_discount = LoyaltyModule::getDiscountByIdCustomer(intval($cookie->id_customer))) {
    $nbDiscounts = count($ids_discount);
    foreach ($ids_discount as $key => $discount) {
        $discounts[$key] = new Discount($discount['id_discount'], intval($cookie->id_lang));
        $discounts[$key]->date_add = $discount['date_add'];
        $discounts[$key]->orders = LoyaltyModule::getOrdersByIdDiscount($discount['id_discount']);
    }
}
$smarty->assign(array('nbDiscounts' => $nbDiscounts, 'discounts' => $discounts));
echo Module::display(dirname(__FILE__) . '/loyalty.php', 'loyalty.tpl');
include dirname(__FILE__) . '/../../footer.php';
コード例 #10
0
ファイル: loyalty.php プロジェクト: Evil1991/PrestaShop-1.4
 public function hookUpdateOrderStatus($params)
 {
     include_once dirname(__FILE__) . '/LoyaltyStateModule.php';
     include_once dirname(__FILE__) . '/LoyaltyModule.php';
     if (!Validate::isLoadedObject($params['newOrderStatus'])) {
         die(Tools::displayError('Missing parameters'));
     }
     $newOrder = $params['newOrderStatus'];
     $order = new Order((int) $params['id_order']);
     if ($order and !Validate::isLoadedObject($order)) {
         die(Tools::displayError('Incorrect object Order.'));
     }
     $this->instanceDefaultStates();
     $return = false;
     if ($newOrder->id == $this->loyaltyStateValidation->id_order_state or $newOrder->id == $this->loyaltyStateCancel->id_order_state) {
         if (!Validate::isLoadedObject($loyalty = new LoyaltyModule(LoyaltyModule::getByOrderId($order->id)))) {
             return false;
         }
         if ((int) Configuration::get('PS_LOYALTY_NONE_AWARD') and $loyalty->id_loyalty_state == LoyaltyStateModule::getNoneAwardId()) {
             return true;
         }
         if ($newOrder->id == $this->loyaltyStateValidation->id_order_state) {
             $loyalty->id_loyalty_state = LoyaltyStateModule::getValidationId();
             if ((int) $loyalty->points < 0) {
                 $loyalty->points = abs((int) $loyalty->points);
             }
             $return &= $loyalty->save();
         } elseif ($newOrder->id == $this->loyaltyStateCancel->id_order_state) {
             $loyalties = LoyaltyModule::getAllByOrderId($order->id);
             if (is_array($loyalties)) {
                 foreach ($loyalties as $entity) {
                     $loyalty = new LoyaltyModule($entity['id_loyalty']);
                     $loyalty->id_loyalty_state = LoyaltyStateModule::getCancelId();
                     $loyalty->points = 0;
                     $return &= $loyalty->save();
                 }
             }
         }
         return $loyalty->save();
     }
     return $return;
 }