'.st_format_price($product->getPriceBrutto()).'
'; } } function list_product_stock(Product $product, $list_mode) { if ($list_mode == 'edit') { $name = 'product['.$product->getId().'][stock]'; $content = input_tag($name, stPrice::round($product->getStock(), $product->getStockInDecimals()), array( 'data-format' => 'decimal', 'data-format-decimals' => $product->getStockInDecimals(), 'size' => 8, 'class' => 'text-right', 'disabled' => $product->getOptHasOptions() > 1 && $product->getStockManagment() == ProductPeer::STOCK_PRODUCT_OPTIONS, )); if ($product->getOptHasOptions() > 1 && $product->getStockManagment() == ProductPeer::STOCK_PRODUCT_OPTIONS) { $title = __('Produkt posiada opcje produktu, aby edytować stan magazynowy przedź do edycji'.__('Kod produktu').': '.$code.'
'; } function object_product_producer(Product $product, $method, $options) { return producer_select_tag($options['control_name'], $product->getProducer(), array('include_custom' => __('Brak'))); } function list_product_producer(Product $product, $list_mode = null) { $user = sfContext::getInstance()->getUser(); if ($list_mode == 'edit') { return producer_select_tag('product['.$product->getId().'][producer_id]', $product->getProducer(), array('include_custom' => __('Brak'))); } else { return $product->getProducer(); } } function object_product_tax(Product $product, $method, $options = array()) { use_helper('stPrice'); $cache = new stFunctionCache('stTax'); $tax_info = $cache->cacheCall('_object_product_tax_helper'); st_price_tax_managment_init(array( 'taxField' => 'product_vat', 'taxValues' => $tax_info['values'], 'priceFields' => array( array('price' => 'product_price_netto', 'priceWithTax' => 'product_price_brutto'), array('price' => 'product_old_price_netto', 'priceWithTax' => 'product_old_price_brutto'), ))); return select_tag('product[vat]', options_for_select($tax_info['names'], $product->getTaxId() ? $product->getTaxId() : $tax_info['default'])); } function _object_product_tax_helper() { $arr = array('values' => array()); $taxes = TaxPeer::doSelect(new Criteria()); foreach ($taxes as $tax) { $arr['values'][] = $tax->getVat(); $arr['names'][$tax->getId()] = $tax->getVatName(); if ($tax->getIsDefault()) { $arr['default'] = $tax->getId(); } } return $arr; } function object_product_group(Product $product, $method, $options = array()) { $cache = new stFunctionCache('stProductGroup'); $groups = $cache->cacheCall('_object_product_group_helper'); $request = sfContext::getInstance()->getRequest(); if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = stJQueryToolsHelper::parseTokensFromRequest($parameters); } else { $defaults = ProductPeer::doSelectProductGroupsForTokenInput($product); } return st_tokenizer_input_tag($options['control_name'], $groups, $defaults, array('tokenizer' => array('preventDuplicates' => true, 'hintText' => __('Wpisz szukana grupę')))); } function _object_product_group_helper() { $groups = array(); $c = new Criteria(); $c->add(ProductGroupPeer::FROM_BASKET_VALUE, null, Criteria::ISNULL); foreach (ProductGroupPeer::doSelect($c) as $group) { $groups[] = array('id' => $group->getId(), 'name' => $group->getName()); } return $groups; } function object_product_delivery(Product $product, $method, $options = array()) { $cache = new stFunctionCache('stDelivery'); $deliveries = $cache->cacheCall('_object_product_delivery_helper'); $request = sfContext::getInstance()->getRequest(); if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = array( 'mode' => $parameters['mode'], 'ids' => stJQueryToolsHelper::parseTokensFromRequest($parameters['ids']) ); } else { $defaults = $product->getDeliveries(); if ($defaults && $defaults['ids']) { $tokens = array(); foreach ($defaults['ids'] as $id) { if (isset($deliveries[$id])) { $tokens[] = array( 'id' => $id, 'name' => $deliveries[$id]['name'], ); } } $defaults['ids'] = $tokens; } if (!$defaults || !$defaults['ids']) { $defaults = null; } } $select = select_tag($options['control_name'].'[mode]', options_for_select(array('' => __('Wszystkie', null, 'stProduct'), 'allow' => __('Zezwalaj', null, 'stProduct'), 'exclude' => __('Wykluczaj', null, 'stProduct')), $defaults ? $defaults['mode'] : null)); $token = st_tokenizer_input_tag($options['control_name'].'[ids]', array_values($deliveries), $defaults ? $defaults['ids'] : null, array('tokenizer' => array('preventDuplicates' => true, 'hintText' => __('Wpisz szukana dostawę', null, 'stProduct')))); $content =<<< HTML $select HTML; return $content; } function _object_product_delivery_helper() { $deliveries = array(); $c = new Criteria(); $c->add(DeliveryPeer::ACTIVE, true); $c->addAscendingOrderByColumn(DeliveryPeer::OPT_NAME); foreach (DeliveryPeer::doSelect($c) as $delivery) { $id = $delivery->getId(); $deliveries[$id] = array('id' => $id, 'name' => $delivery->getOptName()." (".$id.")"); } return $deliveries; } function object_product_category(Product $product, $method, $options = array()) { $context = sfContext::getInstance(); $request = $context->getRequest(); $defaults = array(); $default = 0; if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = stJQueryToolsHelper::parseTokensFromRequest($parameters); $default = $request->getParameter('product_default_category'); } elseif ($product->isNew()) { $categoryId = $request->getParameter('category_id'); if ($categoryId) { $category = CategoryPeer::retrieveByPK($categoryId); if ($category) { $path = array(); foreach ($category->getPath() as $c) { $path[] = $c->getOptName(); } $path[] = $category->getOptName(); $defaults = array( array('id' => $category->getId(), 'name' => implode(' / ', $path)) ); $default = $category->getId(); } } } else { $defaults = ProductPeer::doSelectCategoriesForTokenInput($product); $default = ProductPeer::doSelectDefaultCategoryId($product); if (!$default && $defaults) { $default = $defaults[0]['id']; } } return category_picker_input_tag($options['control_name'], $defaults, array('default' => $default)); } function object_product_accessories(Product $product, $method, $options = array()) { $request = sfContext::getInstance()->getRequest(); if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = stJQueryToolsHelper::parseTokensFromRequest($parameters); } else { $defaults = ProductPeer::doSelectAccessoriesForTokenInput($product); } $results_formatter = _token_input_product_results_formatter(); $token_formatter = _token_input_product_token_formatter(); return st_tokenizer_input_tag($options['control_name'], st_url_for('@stProductEdit?action=ajaxProductsToken&id='.$product->getId()), $defaults, array('tokenizer' => array( 'preventDuplicates' => true, 'resultsFormatter' => $results_formatter, 'tokenFormatter' => $token_formatter, 'hintText' => __('Wpisz kod/nazwę szukanego produktu'), 'additionalDataFields' => array('code'), 'tokenLimit' => 20, 'sortable' => true ))); } function object_product_recommend(Product $product, $method, $options = array()) { $request = sfContext::getInstance()->getRequest(); if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = stJQueryToolsHelper::parseTokensFromRequest($parameters); } else { $defaults = ProductPeer::doSelectRecommendForTokenInput($product); } $results_formatter = _token_input_product_results_formatter(); $token_formatter = _token_input_product_token_formatter(); return st_tokenizer_input_tag($options['control_name'], st_url_for('@stProductEdit?action=ajaxProductsToken&id='.$product->getId()), $defaults, array('tokenizer' => array( 'preventDuplicates' => true, 'resultsFormatter' => $results_formatter, 'tokenFormatter' => $token_formatter, 'hintText' => __('Wpisz kod/nazwę szukanego produktu'), 'additionalDataFields' => array('code'), 'tokenLimit' => 20 ))); } function object_product_discount_group(Product $product, $method, $options = array()) { $cache = new stFunctionCache('stDiscount'); $groups = $cache->cacheCall('_object_product_discount_group_helper'); $request = sfContext::getInstance()->getRequest(); if ($request->hasErrors()) { $parameters = $request->getParameter($options['control_name']); $defaults = stJQueryToolsHelper::parseTokensFromRequest($parameters); } else { $defaults = ProductPeer::doSelectDiscountGroupsForTokenInput($product); } return st_tokenizer_input_tag($options['control_name'], $groups, $defaults, array('tokenizer' => array('preventDuplicates' => true, 'hintText' => __('Wpisz nazwę szukanej grupy')))); } function _object_product_discount_group_helper() { $groups = array(); $c = new Criteria(); foreach (DiscountPeer::doSelect($c) as $group) { $groups[] = array('id' => $group->getId(), 'name' => $group->getName().' ('.$group->getValue().'%)'); } return $groups; } function object_product_availability($product, $method, $options = array()) { $c = new Criteria(); $select_options = array('' => __('Ustaw według magazynu')); foreach (AvailabilityPeer::doSelectWithI18n($c) as $availability) { $select_options[$availability->getId()] = $availability->getAvailabilityName(); } return select_tag($options['control_name'], options_for_select($select_options, $product->getAvailabilityId()), $options); } function object_product_step_qty(Product $product, $method, $options) { $id = get_id_from_name($options['control_name']); $js =<<