public function __construct()
 {
     parent::__construct();
     // Set main (tested) model:
     $this->SetPdkModel('RubriqueCurrencyModel', pdk_load_class('RubriqueCurrencyModel', 'classes'));
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
 }
function balise_ECATALOGUE_COMPOSITE_QUANTITY_dyn($id_composite, $id_article)
{
    if (!($id_composite = intval($id_composite)) || !($id_article = intval($id_article))) {
        return false;
    }
    include_spip('functions/pdk_common.php');
    $cart = pdk_load_class('Alohacart', 'classes');
    // If some exceptions are thrown - return empty value
    try {
        // If user changed number of this product, we will use this value
        if (!($quantity = $cart->GetCompositeProduct($id_composite, $id_article))) {
            //var_Dump($quantity);
            $composite_article_mdl = pdk_load_class('CompositeArticleModel', 'classes');
            $row = $composite_article_mdl->select("id_composite=" . $id_composite . " AND id_article=" . $id_article);
            if (isset($row[0]) && isset($row[0]["quantity"])) {
                $quantity = $row[0]["quantity"];
            } else {
                $quantity = '';
            }
        }
    } catch (Exception $e) {
        $quantity = '';
    }
    //$product = $cart->GetProduct($id_composite);
    //if ($product)
    //  $quantity = $quantity * $product;
    return array('balise/ecatalogue_composite_quantity', 0, array('quantity' => $quantity));
}
Пример #3
0
function formulaires_ecatalogue_composite_charger_dist($id_article)
{
    $valeurs = array();
    $p_mdl = pdk_load_class('ProductModel', 'classes');
    $valeurs = $p_mdl->select_by_id($id_article);
    //$valeurs['length2'] = $valeurs['length'];
    return $valeurs;
}
/**
 *  Processing function
 */
function formulaires_ecatalogue_product_excel_download_traiter_dist()
{
    //require_once(_DIR_PLUGIN_ECATALOGUE.'classes/class.ProductExcel.php');
    $prd_ex = pdk_load_class('ProductExcel', 'classes');
    if (_request('download_rubriques')) {
        $prd_ex->DownloadRubriques = picker_selected(_request('download_rubriques'), 'rubrique');
    }
    if (_request('id_mot')) {
        $prd_ex->DownloadIdMot = _request('id_mot');
    }
    $prd_ex->OutputExcel();
}
/**
 *  Processing function
 */
function formulaires_ecatalogue_product_excel_price_update_traiter_dist()
{
    $result = array();
    try {
        $prd_ex = pdk_load_class('ProductExcel', 'classes');
        $prd_ex->UpdatePriceExcel(_request('primary_key'));
        $result['message_ok'] = _T('ecatalogue:excel_products_updated');
    } catch (Exception $e) {
        $exception_message = $e->getMessage();
        $result['message_erreur'] = $exception_message ? $exception_message : _T('ecatalogue:form_error');
    }
    return $result;
}
 public function __construct()
 {
     include_spip('functions/pdk_common');
     include_spip('formulaires/selecteur/generique_fonctions');
     $this->product_mdl = pdk_load_class('ProductModel', 'classes/');
     $this->article_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     $this->rubrique_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $this->rubrique_mdl2 = pdk_load_class('RubriqueModel', 'classes');
     $this->mot_lien_mdl = pdk_load_class('PdkMotLienModel', 'classes/models');
     require_once _DIR_PLUGIN_EXCEL . "pear/Spreadsheet/Excel/Writer.php";
     $this->UpdateStatus = lire_config('ecatalogue/excel_update_status');
     $this->DownloadRubriques = picker_selected(lire_config('ecatalogue/branches'), 'rubrique');
 }
 public function __construct()
 {
     parent::__construct();
     $this->config_model();
     include_spip('functions/pdk_common');
     $this->rub_cur_mdl = pdk_load_class('RubriqueCurrencyModel', 'classes');
     $this->rub_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $this->art_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     include_spip('classes/class.EcatalogueException');
     $this->config_currencies();
     $this->price_precision = lire_config('ecatalogue/price_pricision');
     if (!$this->price_precision) {
         $this->price_precision = 2;
     }
 }
 public function __construct()
 {
     parent::__construct();
     // Define all additional models:
     $pdk_models = array();
     $this->prod_mdl = pdk_load_class('ProductModel', 'classes');
     $pdk_models['ProductModel'] = $this->prod_mdl;
     $this->rub_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $pdk_models['PdkRubriqueModel'] = $this->rub_mdl;
     $this->art_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     $pdk_models['PdkArticleModel'] = $this->art_mdl;
     $this->mot_lien_mdl = pdk_load_class('PdkMotLienModel', 'classes/models');
     $pdk_models['PdkMotLienModel'] = $this->mot_lien_mdl;
     $this->AddPdkModels($pdk_models);
     $this->p_ex = pdk_load_class('ProductExcel', 'classes');
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
 }
 public function __construct()
 {
     parent::__construct();
     $pdk_models = array();
     $this->product_mdl = pdk_load_class('ProductModel', 'classes');
     $pdk_models['ProductModel'] = $this->product_mdl;
     $this->rub_cur_mdl = pdk_load_class('RubriqueCurrencyModel', 'classes');
     $pdk_models['RubriqueCurrencyModel'] = $this->rub_cur_mdl;
     $this->rub_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $pdk_models['PdkRubriqueModel'] = $this->rub_mdl;
     $this->currency_mdl = pdk_load_class('CurrencyModel', 'classes');
     $pdk_models['CurrencyModel'] = $this->currency_mdl;
     $this->article_mdl = pdk_load_class('PdkArticleModel', 'classes');
     $pdk_models['PdkArticleModel'] = $this->article_mdl;
     $this->AddPdkModels($pdk_models);
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
 }
 public function __construct()
 {
     parent::__construct();
     // Define all additional models:
     $pdk_models = array();
     $this->product_mdl = pdk_load_class('ProductModel', 'classes');
     $pdk_models['ProductModel'] = $this->product_mdl;
     $this->rubrique_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $pdk_models['PdkRubriqueModel'] = $this->rubrique_mdl;
     $this->article_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     $pdk_models['PdkArticleModel'] = $this->article_mdl;
     $this->AddPdkModels($pdk_models);
     $this->ecatalogue = pdk_load_class('Ecatalogue', 'classes');
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
     // Remember ecatalogue rubriques
     $this->ecatalogue_branches = lire_config('ecatalogue/branches');
 }
Пример #11
0
function formulaires_ecatalogue_maintenance_traiter_dist()
{
    $result = array();
    include_spip('functions/pdk_common');
    $ecatalogue = pdk_load_class('Ecatalogue', 'classes');
    if ($ecatalogue->PerformMaintenance($log)) {
        $result['message_ok'] = _T('ecatalogue:maintenance_ok');
    } else {
        $result['message_erreur'] = _T('ecatalogue:maintenance_error');
    }
    $log_text = '';
    if ($log) {
        foreach ($log as $log_item) {
            $log_text .= $log_item . '<br/>';
        }
    }
    set_request('ecatalogue_maintenance_log', $log_text);
    return $result;
}
Пример #12
0
function formulaires_ecatalogue_article_similar_traiter_dist($id_article)
{
    $result = array();
    $mdl = pdk_load_class('EcatArticleSimilarModel', 'classes');
    try {
        if ($selected_articles = _request('selected_articles')) {
            if (lire_config('ecatalogue/articles_select') == 'enhanced') {
                include_spip('formulaires/selecteur/generique_fonctions');
                $selected_articles = picker_selected(_request('selected_articles'), 'article');
            }
            if ($selected_articles) {
                $data = array('id_article' => $id_article);
                foreach ($selected_articles as $id_similar) {
                    if ($id_similar == $id_article) {
                        continue;
                    }
                    $data['id_similar'] = $id_similar;
                    $where = array('id_article=' . $data['id_article'], 'id_similar=' . $data['id_similar']);
                    // If such link doesn't exist yet, create it
                    if ($mdl->get_total($where) == 0) {
                        $mdl->insert($data);
                    }
                    if ($mdl->get_total($where) == 0) {
                        throw new Exception("Insert article similar fail!");
                    }
                }
            }
        }
        if ($id_similar_delete = _request('id_similar_delete')) {
            $where = array('id_article=' . $id_article, 'id_similar=' . $id_similar_delete);
            $mdl->delete($where);
            if ($mdl->get_total($where) != 0) {
                throw new Exception("Delete article similar fail!");
            }
        }
        $result['message_ok'] = _T('ecatalogue:form_saved');
    } catch (Exception $e) {
        $result['message_erreur'] = _T('ecatalogue:form_error');
    }
    set_request('id_similar_delete');
    return $result;
}
function balise_ECATALOGUE_PRODUCT_PRICE_dyn($id_article, $currency_code = false, $type = 'price', $qnty = 1)
{
    include_spip('functions/pdk_common.php');
    $product_mdl = pdk_load_class('ProductModel', 'classes/');
    $currency_mdl = pdk_load_class('CurrencyModel', 'classes/');
    if ($currency_code == 'CURRENT') {
        $currency_code = $currency_mdl->GetCurrentCurrencyCode();
    }
    // If some exceptions are thrown - return empty value
    try {
        $price = $product_mdl->GetProductPrice($id_article, $currency_code, $type);
    } catch (Exception $e) {
        $price = '';
    }
    if ($price == 0) {
        $price = '';
    }
    $price = $price * $qnty;
    return array('balise/ecatalogue_product_price', 0, array('price' => $price));
}
 public function __construct()
 {
     parent::__construct();
     // Remember curent currency ID
     @session_start();
     $this->session_current_currency_id = $_SESSION["current_currency_id"];
     // Define all additional models:
     $pdk_models = array();
     $this->rub_cur_mdl = pdk_load_class('RubriqueCurrencyModel', 'classes');
     $pdk_models['RubriqueCurrencyModel'] = $this->rub_cur_mdl;
     $this->rub_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $pdk_models['PdkRubriqueModel'] = $this->rub_mdl;
     $this->art_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     $pdk_models['PdkArticleModel'] = $this->art_mdl;
     $this->AddPdkModels($pdk_models);
     // Set main (tested) model:
     $this->SetPdkModel('CurrencyModel', pdk_load_class('CurrencyModel', 'classes'));
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
     // Задаем вручную валюту по умолчанию, по той же причине, по которой не кактит тест в функции Test_CurrentCurrency
     $this->model->SetCurrentCurrencyId(2);
 }
 public function __construct()
 {
     parent::__construct();
     // Define all additional models:
     $pdk_models = array();
     $this->rub_cur_mdl = pdk_load_class('RubriqueCurrencyModel', 'classes');
     $pdk_models['RubriqueCurrencyModel'] = $this->rub_cur_mdl;
     $this->rub_mdl = pdk_load_class('PdkRubriqueModel', 'classes/models');
     $pdk_models['PdkRubriqueModel'] = $this->rub_mdl;
     $this->art_mdl = pdk_load_class('PdkArticleModel', 'classes/models');
     $pdk_models['PdkArticleModel'] = $this->art_mdl;
     $this->currency_mdl = pdk_load_class('CurrencyModel', 'classes');
     $pdk_models['CurrencyModel'] = $this->currency_mdl;
     $this->composite_art_mdl = pdk_load_class('CompositeArticleModel', 'classes');
     $pdk_models['CompositeArticleModel'] = $this->composite_art_mdl;
     $this->AddPdkModels($pdk_models);
     // Set main (tested) model:
     $this->SetPdkModel('ProductModel', pdk_load_class('ProductModel', 'classes'));
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
     // Remember current currency ID
     $this->current_currency_id = $this->currency_mdl->GetCurrentCurrencyId();
 }
function formulaires_ecatalogue_product_traiter_dist($id_article)
{
    $_REQUEST['length'] = _request('length2');
    // Solve problem in Opera (doesn't work properly when input has id and name="length")
    $result = array();
    $p_mdl = pdk_load_class('ProductModel', 'classes');
    $comp_mdl = pdk_load_class('CompositeArticleModel', 'classes');
    try {
        $data = $p_mdl->form_data_from_array($_REQUEST);
        if (!$data['sold_in_packages']) {
            $data['sold_in_packages '] = 0;
        }
        if (!$p_mdl->update_by_id($id_article, $data, true)) {
            throw new Exception("Product save fail!");
        }
        $result['message_ok'] = _T('ecatalogue:form_saved');
    } catch (Exception $e) {
        $result['message_erreur'] = _T('ecatalogue:form_error');
    }
    set_request('id_component_delete');
    return $result;
}
 * EcataloguE
 *
 * @author     Aleksey Yaroshchuk (aleksey.yaroshchuk@gmail.com)
 * @license    GNU/GPL
 * @package    plugins
 * @subpackage ecatalogue
 * @copyright  (c) Aleksey Yaroshchuk 2011-2012
 * @link       http://www.spip-contrib.net/EcataloguE
 */
/**
 *  ArticleAccessoireModel class 
 *
 *  @author Aleksey Yaroshchuk (aleksey.yaroshchuk@gmail.com) 
 */
//include_spip('classes/pdk_model');
pdk_load_class('pdk_model', 'classes/');
class ArticleAccessoireModel extends pdk_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->config_model();
    }
    function config_model()
    {
        // Define main table:
        $this->main_table = 'spip_ecatalogue_articles_accessoires';
        // Define primary key:
        $this->primary_key = 'id_article';
        // Define main table fields:
        $this->main_fields['id_article'] = 'id_article';
Пример #18
0
function formulaires_ecatalogue_composite_traiter_dist($id_article)
{
    $result = array();
    $p_mdl = pdk_load_class('ProductModel', 'classes');
    $comp_mdl = pdk_load_class('CompositeArticleModel', 'classes');
    try {
        $data = $p_mdl->form_data_from_array($_REQUEST);
        if (!$data['is_separate']) {
            $data['is_separate'] = 0;
        } else {
            $data['is_separate'] = 1;
        }
        // This is needed for is_separate to be set in 0 when checkbox isn't checked
        if (!$data['is_composite']) {
            $data['is_composite'] = 0;
        } else {
            $data['is_composite'] = 1;
        }
        if (!$p_mdl->update_by_id($id_article, $data, true)) {
            throw new Exception("Product save fail!");
        }
        // Add components
        if ($selected_articles = _request('selected_articles')) {
            if (lire_config('ecatalogue/articles_select') == 'enhanced') {
                include_spip('formulaires/selecteur/generique_fonctions');
                $selected_articles = picker_selected(_request('selected_articles'), 'article');
            }
            if ($selected_articles) {
                $data = array('id_composite' => $id_article);
                foreach ($selected_articles as $id_component) {
                    if ($id_component == $id_article) {
                        continue;
                    }
                    $data['id_article'] = $id_component;
                    $where = array('id_composite=' . $data['id_composite'], 'id_article=' . $data['id_article']);
                    // If such link doesn't exist yet, create it
                    if ($comp_mdl->get_total($where) == 0) {
                        $comp_mdl->insert($data);
                    }
                    if ($comp_mdl->get_total($where) == 0) {
                        throw new Exception("Insert component article fail!");
                    }
                }
            }
        }
        // Delete components
        if ($id_component_delete = _request('id_component_delete')) {
            $where = array('id_composite=' . $id_article, 'id_article=' . $id_component_delete);
            $comp_mdl->delete($where);
            if ($comp_mdl->get_total($where) != 0) {
                throw new Exception("Delete component article fail!");
            }
        }
        // Update components
        if (_request('comp_arts') && is_array(_request('comp_arts'))) {
            foreach (_request('comp_arts') as $comp_art) {
                if ($comp_art['quantity'] > 0) {
                    $comp_mdl->update(array('id_composite=' . $id_article, 'id_article=' . intval($comp_art['id_article'])), array('quantity' => intval($comp_art['quantity'])));
                } else {
                    $comp_mdl->delete(array('id_composite=' . $id_article, 'id_article=' . intval($comp_art['id_article'])));
                }
            }
        }
        $result['message_ok'] = _T('ecatalogue:form_saved');
    } catch (Exception $e) {
        $result['message_erreur'] = _T('ecatalogue:form_error');
    }
    set_request('id_component_delete');
    return $result;
}
Пример #19
0
 public function __construct()
 {
     $this->product_mdl = pdk_load_class('ProductModel', 'classes');
     $this->article_mdl = pdk_load_class('PdkArticleModel', 'classes');
 }
Пример #20
0
function balise_EC_PRICE_dyn($id_article, $item_quantity = 1, $currency = 'UAH')
{
    //
    //$cart = pdk_load_class('Alohacart','classes');
    $product = pdk_load_class('ProductModel', 'classes');
    //$products = $cart->GetProducts();
    $price_article = $product->GetProductPrice($id_article, $currency);
    /*$cart_quantity = 0;
      if (is_array($products))
      foreach ($products as $value)
      {
          $cart_quantity+=$value[1];
      }
      $cart_price = $cart->CountPrice();
      
      $cart = array('quantity'=>$cart_quantity,'price'=>$cart_price);
       
     
    //Get info about user
    	 $visiteur  = isset($GLOBALS["visiteur_session"]["statut"])?($GLOBALS["visiteur_session"]["statut"]):'';
      
      
      
       $action = get_discount_action($id_article,$cart,$visiteur);
      
       //ppr($id_article);
       //ppr($action);
       
        
       if (is_array($action)&&isset($action['action']))
       {
          switch ($action['action'])
          {
              case 'get_price':
    // Getting price	    
    			$id_group = isset($action['value'])?$action['value']:0;
    			$sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article='.$id_article.' and id_group = '.$id_group ;
    			$res_s = sql_query($sql_s);
    			
    			//ppr($sql_s);
    			
    			$price_record = sql_fetch_all($res_s);
    			
    			//ppr($price_record);
    			
    			if (is_array($price_record)&&(!empty($price_record)))
    			{
    				$price_article = isset($price_record[0]['price'])?$price_record[0]['price']:0;	
    			}
              
              break;
              case 'set_discount':
    //	Set DISCOUNT
    			$id_group = 1;
    			$discount = isset($action['value'])?$action['value']:0;
    			$sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article='.$id_article.' and  id_group = '.$id_group ;
    			$res_s = sql_query($sql_s);
    			$price_record = sql_fetch_all($res_s);
    			if (is_array($price_record)&&(!empty($price_record)))
    			{
    				$price_article = isset($price_record[0]['price'])?$price_record[0]['price']:0;	
                    $price_article = $price_article - (($price_article/100)*$discount);  				
    			}
    	  
    	  
    	  
              break;
              default:
    //  echo '<h1>Default</h1>'; 
    			$id_group = 1;
    			$sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article='.$id_article.' and id_group = '.$id_group ;
    			
    			//ppr($sql_s);
    			$res_s = sql_query($sql_s);
    			$price_record = sql_fetch_all($res_s);
    			//ppr($price_record);
    			if (is_array($price_record)&&(!empty($price_record)))
    			{
    				$price_article = isset($price_record[0]['price'])?$price_record[0]['price']:0;	
    			} 
    	  
    	  
              break;
              
       
          } 
       } 
        */
    $price_article = $price_article * $item_quantity;
    return array('balise/ec_price', 0, array('price' => $price_article, 'products' => $products));
}
 public function __construct()
 {
     parent::__construct();
     $this->SetPdkModel('EcatArticleSimilarModel', pdk_load_class('EcatArticleSimilarModel', 'classes'));
     $this->dropTestTables = ECATALOGUE_TESTS_DROP_TEST_TABLES;
 }
 public function GetProductPrice($id_article, $currency = 'UAH')
 {
     $price_article = $this->_GetProductPrice($id_article);
     $cart = pdk_load_class('Alohacart', 'classes');
     if ($cart) {
         $products = $cart->GetProducts();
         $cart_quantity = 0;
         if (is_array($products)) {
             foreach ($products as $value) {
                 $cart_quantity += $value[1];
             }
         }
         $cart_price = $cart->CartRetailPrice();
         $cart = array('quantity' => $cart_quantity, 'price' => $cart_price);
     } else {
         $cart = array('quantity' => 0, 'price' => 0);
     }
     //Get info about user
     $visiteur = isset($GLOBALS["visiteur_session"]["statut"]) ? $GLOBALS["visiteur_session"]["statut"] : '';
     // Get actions
     $action = $this->get_discount_action($id_article, $cart, $visiteur);
     // Get price from action
     if (is_array($action) && isset($action['action'])) {
         switch ($action['action']) {
             case 'get_price':
                 // Getting price
                 $id_group = isset($action['value']) ? $action['value'] : 0;
                 $sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article=' . $id_article . ' and id_group = ' . $id_group;
                 //spip_log("S:".$sql_s, 'sql_log.'._LOG_ERREUR);
                 $res_s = sql_query($sql_s);
                 $price_record = sql_fetch_all($res_s);
                 if (is_array($price_record) && !empty($price_record)) {
                     $price_article = isset($price_record[0]['price']) ? $price_record[0]['price'] : 0;
                 }
                 break;
             case 'set_discount':
                 //	Set DISCOUNT
                 $id_group = 1;
                 $discount = isset($action['value']) ? $action['value'] : 0;
                 $sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article=' . $id_article . ' and  id_group = ' . $id_group;
                 $res_s = sql_query($sql_s);
                 $price_record = sql_fetch_all($res_s);
                 if (is_array($price_record) && !empty($price_record)) {
                     $price_article = isset($price_record[0]['price']) ? $price_record[0]['price'] : 0;
                     $price_article = $price_article - $price_article / 100 * $discount;
                 }
                 break;
             default:
                 //  echo '<h1>Default</h1>';
                 $id_group = 1;
                 $sql_s = 'SELECT * from spip_ecatalogue_prices p where id_article=' . $id_article . ' and id_group = ' . $id_group;
                 $res_s = sql_query($sql_s);
                 $price_record = sql_fetch_all($res_s);
                 if (is_array($price_record) && !empty($price_record)) {
                     $price_article = isset($price_record[0]['price']) ? $price_record[0]['price'] : 0;
                 }
                 break;
         }
     }
     return $price_article;
 }