123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- <?php
- class KataoProductPeer extends BaseKataoProductPeer {
- public static function getSelectedProducts($katao_suppliers_ids = array(), $katao_period_id = false, $katao_node_id = false) {
- $return = array();
- $return['list'] = self::getAllGroupedBySupplier($katao_suppliers_ids, $katao_period_id, $katao_node_id);
- $return['selected'] = array();
- if ($katao_node_id) {
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoNodeProductPeer::KATAO_PRODUCT_ID);
- $criteria->addJoin(KataoNodeProductPeer::KATAO_PRODUCT_ID, self::ID);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoNodeProductPeer::KATAO_NODE_ID, $katao_node_id);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $return['selected'][] = $rs->getInt(1);
- }
- } elseif ($katao_period_id) {
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoPeriodProductPeer::KATAO_PRODUCT_ID);
- $criteria->addJoin(KataoPeriodProductPeer::KATAO_PRODUCT_ID, self::ID);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoPeriodProductPeer::KATAO_PERIOD_ID, $katao_period_id);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $return['selected'][] = $rs->getInt(1);
- }
- }
- return $return;
- }
- public static function getAllGroupedBySupplier($katao_suppliers_ids = array(), $katao_period_id = false, $katao_node_id = false) {
- $return = array();
- if (0 < count($katao_suppliers_ids)) {
- if ($katao_node_id && $katao_period_id) {
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoPeriodSupplierPeer::KATAO_SUPPLIER_ID);
- $criteria->addSelectColumn(KataoPeriodSupplierPeer::INCLUDE_ALL_PRODUCTS);
- $criteria->add(KataoPeriodSupplierPeer::KATAO_PERIOD_ID, $katao_period_id);
- $criteria->add(KataoPeriodSupplierPeer::KATAO_SUPPLIER_ID, $katao_suppliers_ids, Criteria::IN);
- $rs = self::doSelectRS($criteria);
- $suppliers_with_all_products = array();
- $suppliers_with_some_products = array();
- while ($rs->next()) {
- if ($rs->getInt(2)) {
- $suppliers_with_all_products[] = $rs->getInt(1);
- } else {
- $suppliers_with_some_products[] = $rs->getInt(1);
- }
- }
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoSupplierNodePeer::KATAO_SUPPLIER_ID);
- $criteria->add(KataoSupplierNodePeer::KATAO_SUPPLIER_ID, $katao_suppliers_ids, Criteria::IN);
- $criteria->add(KataoSupplierNodePeer::KATAO_NODE_ID, $katao_node_id);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $suppliers_with_all_products[] = $rs->getInt(1);
- }
- if (0 < count($suppliers_with_some_products)) {
- /* retrieve all selected products for the current period */
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoSupplierPeer::NAME);
- $criteria->addSelectColumn(self::ID);
- $criteria->addSelectColumn(self::NAME);
- $criteria->addJoin(self::KATAO_SUPPLIER_ID, KataoSupplierPeer::ID);
- $criteria->addJoin(self::ID, KataoPeriodProductPeer::KATAO_PRODUCT_ID);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoSupplierPeer::ID, $suppliers_with_some_products, Criteria::IN);
- $criteria->add(KataoPeriodProductPeer::KATAO_PERIOD_ID, $katao_period_id);
- $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $return[$rs->getString(1)][$rs->getInt(2)] = $rs->getString(3);
- }
- }
- if (0 < count($suppliers_with_all_products)) {
- /* retrieve all products from suppliers with all products for the current period */
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoSupplierPeer::NAME);
- $criteria->addSelectColumn(self::ID);
- $criteria->addSelectColumn(self::NAME);
- $criteria->addJoin(self::KATAO_SUPPLIER_ID, KataoSupplierPeer::ID);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoSupplierPeer::ID, $suppliers_with_all_products, Criteria::IN);
- $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $return[$rs->getString(1)][$rs->getInt(2)] = $rs->getString(3);
- }
- }
- } else {
- $criteria = new Criteria();
- $criteria->addSelectColumn(KataoSupplierPeer::NAME);
- $criteria->addSelectColumn(self::ID);
- $criteria->addSelectColumn(self::NAME);
- $criteria->addJoin(self::KATAO_SUPPLIER_ID, KataoSupplierPeer::ID);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoSupplierPeer::ID, $katao_suppliers_ids, Criteria::IN);
- $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $return[$rs->getString(1)][$rs->getInt(2)] = $rs->getString(3);
- }
- }
- }
- return $return;
- }
- /**
- * KataoProductPeer::retrieveByUrlIdentifier()
- *
- * @param string $url_identifier
- * @return KataoProduct
- */
- public static function retrieveByUrlIdentifier($url_identifier) {
- $criteria = new Criteria();
- $criteria->add(self::URL_IDENTIFIER, $url_identifier);
- return self::doSelectOne($criteria);
- }
- /**
- * KataoProductPeer::getPagerForAllByProductFamilyUrlIdentifier()
- *
- * @param string $url_identifier
- * @param integer $page
- * @return
- */
- public static function getPagerForAllByProductFamilyUrlIdentifier($url_identifier, $page = 1) {
- $sf_user = sfContext::getInstance()->getUser();
- $criteria = new Criteria();
- $criteria->addJoin(self::KATAO_PRODUCT_FAMILY_ID, KataoProductFamilyPeer::ID);
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoProductFamilyPeer::URL_IDENTIFIER, $url_identifier);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $pager = new sfPropelPager('KataoProduct', sfConfig::get('app_katao_pager'));
- $pager->setCriteria($criteria);
- $pager->setPage($page);
- $pager->init();
- return $pager;
- }
- public static function getAllProductsTree() {
- $return = array();
- $sf_user = sfContext::getInstance()->getUser();
- $criteria = new Criteria();
- $criteria->addSelectColumn(self::NAME);
- $criteria->addSelectColumn(self::URL_IDENTIFIER);
- $criteria->addSelectColumn(KataoProductFamilyPeer::NAME);
- $criteria->addSelectColumn(KataoProductFamilyPeer::URL_IDENTIFIER);
- $criteria->addSelectColumn(KataoProductCategoryPeer::NAME);
- $criteria->addSelectColumn(KataoProductCategoryPeer::URL_IDENTIFIER);
- $criteria->addJoin(self::KATAO_PRODUCT_FAMILY_ID, KataoProductFamilyPeer::ID);
- $criteria->addJoin(KataoProductFamilyPeer::KATAO_PRODUCT_CATEGORY_ID, KataoProductCategoryPeer::ID);
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->addAscendingOrderByColumn(KataoProductCategoryPeer::SORT_ORDER);
- $criteria->addAscendingOrderByColumn(KataoProductFamilyPeer::NAME);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $rs = self::doSelectRS($criteria);
- while ($rs->next()) {
- $katao_product_category_name = $rs->getString(5);
- $katao_product_category_url = $rs->getString(6);
- $katao_product_family_name = $rs->getString(3);
- $katao_product_family_url = $rs->getString(4);
- $katao_product_name = $rs->getString(1);
- $katao_product_url = $rs->getString(2);
- $return[$katao_product_category_url]['name'] = $katao_product_category_name;
- $return[$katao_product_category_url]['families'][$katao_product_family_url]['name'] = $katao_product_family_name;
- $return[$katao_product_category_url]['families'][$katao_product_family_url]['products'][$katao_product_url] = $katao_product_name;
- }
- return $return;
- }
- /**
- * KataoProductPeer::getPagerForAllBySupplierUrlIdentifier()
- *
- * @param string $url_identifier
- * @param integer $page
- * @return sfPropelPager
- */
- public static function getPagerForAllBySupplierUrlIdentifier($url_identifier, $page = 1) {
- $criteria = new Criteria();
- $criteria->addJoin(self::KATAO_SUPPLIER_ID, KataoSupplierPeer::ID);
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoSupplierPeer::URL_IDENTIFIER, $url_identifier);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $pager = new sfPropelPager('KataoProduct', sfConfig::get('app_katao_pager'));
- $pager->setCriteria($criteria);
- $pager->setPage($page);
- $pager->init();
- return $pager;
- }
- /**
- * KataoProductPeer::getPagerForAllByProductCategoryUrlIdentifier()
- *
- * @param string $url_identifier
- * @param integer $page
- * @return sfPropelPager
- */
- public static function getPagerForAllByProductCategoryUrlIdentifier($url_identifier, $page = 1) {
- $sf_user = sfContext::getInstance()->getUser();
- $criteria = new Criteria();
- $criteria->addJoin(self::KATAO_PRODUCT_FAMILY_ID, KataoProductFamilyPeer::ID);
- $criteria->addJoin(KataoProductFamilyPeer::KATAO_PRODUCT_CATEGORY_ID, KataoProductCategoryPeer::ID);
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->add(KataoProductCategoryPeer::URL_IDENTIFIER, $url_identifier);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $pager = new sfPropelPager('KataoProduct', sfConfig::get('app_katao_pager'));
- $pager->setCriteria($criteria);
- $pager->setPage($page);
- $pager->init();
- return $pager;
- }
- /**
- * KataoProductPeer::getPagerForSearch()
- *
- * @param string $search
- * @param integer $page
- * @return sfPropelPager
- */
- public static function getPagerForSearch($search, $page = 1) {
- $sf_user = sfContext::getInstance()->getUser();
- $criteria = new Criteria();
- $criteria->addJoin(self::KATAO_PRODUCT_FAMILY_ID, KataoProductFamilyPeer::ID);
- $criteria->addJoin(KataoProductFamilyPeer::KATAO_PRODUCT_CATEGORY_ID, KataoProductCategoryPeer::ID);
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $search_like = sprintf('%%%s%%', $search);
- $criterion = $criteria->getNewCriterion(self::REFERENCE, $search_like, Criteria::LIKE);
- $criterion->addOr($criteria->getNewCriterion(self::NAME, $search_like, Criteria::LIKE));
- $criterion->addOr($criteria->getNewCriterion(self::DESCRIPTION, $search_like, Criteria::LIKE));
- $criterion->addOr($criteria->getNewCriterion(KataoProductFamilyPeer::NAME, $search_like, Criteria::LIKE));
- $criterion->addOr($criteria->getNewCriterion(KataoProductCategoryPeer::NAME, $search_like, Criteria::LIKE));
- $criteria->addAnd($criterion);
- $criteria->addAscendingOrderByColumn(self::NAME);
- $pager = new sfPropelPager('KataoProduct', sfConfig::get('app_katao_pager'));
- $pager->setCriteria($criteria);
- $pager->setPage($page);
- $pager->init();
- return $pager;
- }
- public static function getAll() {
- $criteria = new Criteria();
- $sf_user = sfContext::getInstance()->getUser();
- if ($sf_user->isJustSupplier()) {
- $criteria->add(self::KATAO_SUPPLIER_ID, $sf_user->getInstance()->getKataoSupplierId());
- } elseif ($sf_user->isJustReferer()) {
- $criteria->addJoin(self::KATAO_SUPPLIER_ID, KataoSupplierPeer::ID);
- $criteria->add(KataoSupplierPeer::REFERER_ID, $sf_user->getInstance()->getKataoMemberId());
- }
- $criteria->addAscendingOrderByColumn(self::NAME);
- return self::doSelect($criteria);
- }
- /**
- * KataoProductPeer::getPagerForAll()
- *
- * @return sfPropelPager
- */
- public static function getPagerForAll($category_id = false, $supplier_id = false) {
- $criteria = new Criteria();
- $criteria->add(self::ID, sfContext::getInstance()->getUser()->getAvailableProducts(), Criteria::IN);
- $criterion = $criteria->getNewCriterion(self::IS_ARCHIVED, null);
- $criterion->addOr($criteria->getNewCriterion(self::IS_ARCHIVED, false));
- $criteria->addAnd($criterion);
- $criteria->addAscendingOrderByColumn(self::NAME);
- if ($category_id) {
- $criteria->addJoin(self::KATAO_PRODUCT_FAMILY_ID, KataoProductFamilyPeer::ID);
- $criteria->add(KataoProductFamilyPeer::KATAO_PRODUCT_CATEGORY_ID, $category_id);
- }
- if ($supplier_id) {
- $criteria->add(self::KATAO_SUPPLIER_ID, $supplier_id);
- }
- $pager = new sfPropelPager('KataoProduct', 10000);
- $pager->setCriteria($criteria);
- $pager->setPage(1);
- $pager->init();
- return $pager;
- }
- }
|