Пример #1
0
 private function addToolBar()
 {
     switch ($this->getLayout()) {
         case 'edit':
             JToolbarHelper::title(JText::_('COM_JEPROSHOP_PRODUCT_EDIT_PRODUCT_TITLE'), 'product-jeproshop');
             JToolbarHelper::apply('update', JText::_('COM_JEPROSHOP_UPDATE_LABEL'));
             /*JToolbarHelper::custom('association', 'association.png', 'association.png', JText::_('COM_JEPROSHOP_SAVE_ASSOCIATION_LABEL'), true);
               JToolbarHelper::custom('price', 'price.png', 'price.png', JText::_('COM_JEPROSHOP_SAVE_PRICE_LABEL'), true);
               JToolbarHelper::custom('declination', 'declination.png', 'declination.png', JText::_('COM_JEPROSHOP_SAVE_DECLINATION_LABEL'), true);
               JToolbarHelper::custom('quantities', 'quantities.png', 'quantities.png', JText::_('COM_JEPROSHOP_SAVE_QUANTITIES_LABEL'), true);
               JToolbarHelper::custom('images', '.png', 'images.png', JText::_('COM_JEPROSHOP_SAVE_IMAGES_LABEL'), true);
               JToolbarHelper::custom('feature', 'features.png', 'features.png', JText::_('COM_JEPROSHOP_SAVE_FEATURES_LABEL'), true);
               JToolbarHelper::custom('customization', 'customization.png', 'customization.png', JText::_('COM_JEPROSHOP_SAVE_CUSTOMIZATION_LABEL'), true);
               JToolbarHelper::custom('attachment', 'attachment.png', 'attachment.png', JText::_('COM_JEPROSHOP_SAVE_ATTACHMENT_LABEL'), true);
               JToolbarHelper::custom('shipping', 'shipping.png', 'shipping.png', JText::_('COM_JEPROSHOP_SAVE_SHIPPING_LABEL'), true);
               JToolbarHelper::custom('supplier', 'supplier.png', 'supplier.png', JText::_('COM_JEPROSHOP_SAVE_SUPPLIER_LABEL'), true);
               JToolbarHelper::custom('developer', 'product_developer.png', 'preview_product_1.png', JText::_('COM_JEPROSHOP_SAVE_DEVELOPER_LABEL'), true);
               JToolbarHelper::custom('preview', 'preview_product.png', 'preview_product_1.png', JText::_('COM_JEPROSHOP_PREVIEW_LABEL'), true); */
             JToolbarHelper::custom('sales', 'sales.png', 'sales.png', JText::_('COM_JEPROSHOP_SALES_LABEL'), true);
             JToolbarHelper::deleteList('delete');
             JToolbarHelper::cancel('cancel');
             break;
         case 'add':
             JToolbarHelper::title(JText::_('COM_JEPROSHOP_PRODUCT_ADD_PRODUCT_TITLE'), 'jeproshop-product');
             JToolbarHelper::apply('save');
             JToolbarHelper::save('save_close');
             JToolbarHelper::save2new('add2new');
             JToolbarHelper::cancel('cancel');
             break;
         default:
             JToolbarHelper::title(JText::_('COM_JEPROSHOP_PRODUCTS_LIST_TITLE'), 'product-jeproshop');
             JToolbarHelper::addNew('add');
             JToolbarHelper::editList('edit');
             JToolbarHelper::publish('publish');
             JToolbarHelper::unpublish('unpublish');
             JToolbarHelper::trash('delete');
             JToolbarHelper::preferences('com_jeproshop');
             JToolbarHelper::help('COM_JEPROSHOP_PRODUCT_MANAGER');
             $filter_product_type_options = '<option value="1" >' . JText::_('COM_JEPROSHOP_PRODUCT_SIMPLE_PRODUCT_LABEL') . '</option>';
             $filter_product_type_options .= '<option value="2" >' . JText::_('COM_JEPROSHOP_PRODUCT_PACKAGE_LABEL') . '</option>';
             $filter_product_type_options .= '<option value="3" >' . JText::_('COM_JEPROSHOP_PRODUCT_VIRTUAL_LABEL') . '</option>';
             JHtmlSidebar::addFilter(JText::_('COM_JEPROSHOP_SELECT_PRODUCT_TYPE_LABEL'), 'jform[filter_product_type]', $filter_product_type_options, FALSE);
             $filter_state_options = '<option value="1" >' . JText::_('COM_JEPROSHOP_FILTER_LABEL') . '</option>';
             JHtmlSidebar::addFilter(JText::_('COM_JEPROSHOP_SELECT_STATUS_LABEL'), 'jform[filter_state]', $filter_state_options, FALSE);
             $categories = JeproshopCategoryModelCategory::getCategories();
             $filter_category_options = '';
             foreach ($categories as $category) {
                 $filter_category_options .= '<option value="' . $category->category_id . '" >' . ucfirst($category->name) . '</option>';
             }
             JHtmlSidebar::addFilter(JText::_('COM_JEPROSHOP_SELECT_CATEGORY_LABEL'), 'jform[filter_category]', $filter_category_options, FALSE);
             $manufacturers = JeproshopManufacturerModelManufacturer::getManufacturers();
             $filter_manufacturers_options = '';
             foreach ($manufacturers as $manufacturer) {
                 $filter_manufacturers_options .= '<option value="' . (int) $manufacturer->manufacturer_id . '" >' . ucfirst($manufacturer->name) . '</option>';
             }
             JHtmlSidebar::addFilter(JText::_('COM_JEPROSHOP_SELECT_MANUFACTURER_LABEL'), 'jform[filter_manufacturer]', $filter_manufacturers_options, FALSE);
             $suppliers = JeproshopSupplierModelSupplier::getSuppliers();
             $filter_suppliers_options = '';
             foreach ($suppliers as $supplier) {
                 $filter_suppliers_options .= '<option value="' . (int) $supplier->supplier_id . '" >' . ucfirst($supplier->name) . '</option>';
             }
             JHtmlSidebar::addFilter(JText::_('COM_JEPROSHOP_SELECT_SUPPLIER_LABEL'), 'jform[filter_supplier]', $filter_suppliers_options, FALSE);
             break;
     }
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_DASHBOARD_LABEL'), 'index.php?option=com_jeproshop');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_CATALOG_LABEL'), 'index.php?option=com_jeproshop&task=catalog', true);
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_ORDERS_LABEL'), 'index.php?option=com_jeproshop&task=orders');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_CUSTOMERS_LABEL'), 'index.php?option=com_jeproshop&task=customers');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_PRICE_RULES_LABEL'), 'index.php?option=com_jeproshop&task=price_rules');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_SHIPPING_LABEL'), 'index.php?option=com_jeproshop&task=shipping');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_LOCALIZATION_LABEL'), 'index.php?option=com_jeproshop&task=localization');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_SETTINGS_LABEL'), 'index.php?option=com_jeproshop&task=settings');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_ADMINISTRATION_LABEL'), 'index.php?option=com_jeproshop&task=administration');
     JHtmlSidebar::addEntry(JText::_('COM_JEPROSHOP_STATS_LABEL'), 'index.php?option=com_jeproshop&task=stats');
 }
Пример #2
0
 /**
  * Post treatment for suppliers
  */
 public function processSuppliers()
 {
     $app = JFactory::getApplication();
     $db = JFactory::getDBO();
     $product = new JeproshopProductModelProduct((int) $app->input->get('product_id'));
     if (JeproshopTools::isLoadedObject($product, 'product_id')) {
         // Get all id_product_attribute
         $attributes = $product->getAttributesResume($this->context->language->lang_id);
         if (empty($attributes)) {
             $attribute = new JObject();
             $attribute->set('product_attribute_id', 0);
             $attribute->set('attribute_designation', '');
             $attributes[] = $attribute;
         }
         // Get all available suppliers
         $suppliers = JeproshopSupplierModelSupplier::getSuppliers();
         // Get already associated suppliers
         $associated_suppliers = JeproshopProductSupplierModelProductSupplier::getSupplierCollection($product->product_id);
         $input = JRequest::get('post');
         $product_data = $input['supplier'];
         $suppliers_to_associate = array();
         $new_default_supplier = 0;
         if (isset($product_data['default_supplier'])) {
             $new_default_supplier = (int) $product_data['default_supplier'];
         }
         // Get new associations
         foreach ($suppliers as $supplier) {
             if (isset($product_data['check_supplier_' . $supplier->supplier_id])) {
                 $suppliers_to_associate[] = $supplier->supplier_id;
             }
         }
         // Delete already associated suppliers if needed
         foreach ($associated_suppliers as $key => $associated_supplier) {
             if (!in_array($associated_supplier->supplier_id, $suppliers_to_associate)) {
                 $associated_supplier->delete();
                 unset($associated_suppliers[$key]);
             }
         }
         // Associate suppliers
         foreach ($suppliers_to_associate as $supplier_id) {
             $to_add = true;
             foreach ($associated_suppliers as $as) {
                 if ($supplier_id == $as->supplier_id) {
                     $to_add = false;
                 }
             }
             if ($to_add) {
                 $product_supplier = new JeproshopProductSupplierModelProductSupplier();
                 $product_supplier->product_id = $product->product_id;
                 $product_supplier->product_attribute_id = 0;
                 $product_supplier->supplier_id = $supplier_id;
                 if ($this->context->currency->currency_id) {
                     $product_supplier->currency_id = (int) $this->context->currency->currency_id;
                 } else {
                     $product_supplier->currency_id = (int) JeproshopSettingModelSetting::getValue('default_currency');
                 }
                 $product_supplier->save();
                 $associated_suppliers[] = $product_supplier;
             }
         }
         // Manage references and prices
         foreach ($attributes as $attribute) {
             foreach ($associated_suppliers as $supplier) {
                 if ($product_data['supplier_reference_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id] || $product_data['product_price_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id] && $product_data['product_price_currency_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id]) {
                     $reference = JFactory::getDBO()->quote($app->input->get('supplier_reference_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id, ''));
                     $price = (double) str_replace(array(' ', ','), array('', '.'), $app->input->get('product_price_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id, 0));
                     $price = JeproshopTools::roundPrice($price, 6);
                     $currency_id = (int) $app->input->get('product_price_currency_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id, 0);
                     if ($currency_id <= 0 || (!($result = JeproshopCurrencyModelCurrency::getCurrency($currency_id)) || empty($result))) {
                         $this->context->controller->has_errors = JText::_('The selected currency is not valid' . __FILE__ . 'on line ' . __LINE__);
                     }
                     // Save product-supplier data
                     $product_supplier_id = (int) JeproshopProductSupplierModelProductSupplier::getIdByProductAndSupplier($product->product_id, $attribute->product_attribute_id, $supplier->supplier_id);
                     if (!$product_supplier_id) {
                         $product->addSupplierReference($supplier->supplier_id, (int) $attribute->product_attribute_id, $reference, (double) $price, (int) $currency_id);
                         if ($product->supplier_id == $supplier->supplier_id) {
                             if ((int) $attribute->product_attribute_id > 0) {
                                 $data = new JObject();
                                 $data->set('supplier_reference', $db->quote($reference));
                                 $data->set('wholesale_price', (double) JeproshopTools::convertPrice($price, $currency_id));
                                 $where = " combination.product_id = " . (int) $product->product_id . " AND combination.product_attribute_id = " . (int) $attribute->product_attribute_id;
                                 JeproshopCombinationModelCombination::updateMultishopTable($data, $where);
                             } else {
                                 $product->wholesale_price = (double) Tools::convertPrice($price, $currency_id);
                                 //converted in the default currency
                                 $product->supplier_reference = $db->quote($reference);
                                 $product->update();
                             }
                         }
                     } else {
                         $product_supplier = new JeproshopProductSupplierModelProductSupplier($product_supplier_id);
                         $product_supplier->currency_id = (int) $currency_id;
                         $product_supplier->product_supplier_price_te = (double) $price;
                         $product_supplier->product_supplier_reference = $db->quote($reference);
                         $product_supplier->update();
                     }
                 } elseif ($app->input->get('supplier_reference_' . $product->product_id . '_' . $attribute->product_attribute_id . '_' . $supplier->supplier_id)) {
                     //int attribute with default values if possible
                     if ((int) $attribute->product_attribute_id > 0) {
                         $product_supplier = new JeproshopProductSupplierModelProductSupplier();
                         $product_supplier->product_id = $product->product_id;
                         $product_supplier->product_attribute_id = (int) $attribute->product_attribute_id;
                         $product_supplier->supplier_id = $supplier->supplier_id;
                         $product_supplier->save();
                     }
                 }
             }
         }
         /*
         			// Manage default supplier for product
         			if ($new_default_supplier != $product->supplier_id)	{
         				$product->supplier_id = $new_default_supplier;
         				$query = "UPDATE " . $db->quoteName('#__jeproshop_product') . " SET " . $db->quoteName('supplier_id') . " = " . (int)$new_default_supplier;
         				$query .= " WHERE " . $db->quoteName('product_id') . " = " . (int)$product->product_id;
         		
         				$db->setQuery($query);
         				$db->query();
         			} */
     }
 }