KataoSupplierPeer.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <?php
  2. class KataoSupplierPeer extends BaseKataoSupplierPeer {
  3. /**
  4. * KataoSupplierPeer::retrieveByKataoIndex()
  5. *
  6. * @param int $index
  7. * @return KataoSupplier
  8. */
  9. public static function retrieveByKataoIndex($index) {
  10. $criteria = new Criteria();
  11. $criteria->add(self::KATAO_INDEX, $index);
  12. return self::doSelectOne($criteria);
  13. }
  14. public static function getAllToSortArray($katao_period_id = false, $katao_node_id = false) {
  15. $return = array();
  16. $return['all_product'] = array();
  17. $return['some_product'] = array();
  18. $return['not_select'] = array();
  19. if ($katao_node_id && $katao_period_id) {
  20. if (null != $katao_node = KataoNodePeer::retrieveByPK($katao_node_id)) {
  21. if (null != $katao_period = KataoPeriodPeer::retrieveByPK($katao_period_id)) {
  22. $criteria = new Criteria();
  23. $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
  24. foreach ($katao_period->getKataoPeriodSuppliersJoinKataoSupplier($criteria) as/*(KataoPeriodSupplier)*/ $katao_period_supplier) {
  25. $katao_supplier = $katao_period_supplier->getKataoSupplier();
  26. $return['not_select'][$katao_supplier->getId()] = $katao_supplier->getName();
  27. $return['all'][$katao_supplier->getId()] = $katao_supplier->getName();
  28. }
  29. foreach ($katao_node->getKataoSupplierNodesJoinKataoSupplier() as/*(KataoSupplierNode)*/ $katao_supplier_node) {
  30. $katao_supplier = $katao_supplier_node->getKataoSupplier();
  31. $return['not_select'][$katao_supplier->getId()] = $katao_supplier->getName();
  32. $return['all'][$katao_supplier->getId()] = $katao_supplier->getName();
  33. }
  34. $criteria = new Criteria();
  35. $criteria->add(KataoNodeSupplierPeer::KATAO_PERIOD_ID, $katao_period_id);
  36. $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
  37. foreach ($katao_node->getKataoNodeSuppliersJoinKataoSupplier($criteria) as/*(KataoNodeSupplier)*/ $katao_node_supplier) {
  38. $katao_supplier = $katao_node_supplier->getKataoSupplier();
  39. $return[$katao_node_supplier->getIncludeAllProducts()?'all_product':'some_product'][$katao_supplier->getId()] = $katao_supplier->getName();
  40. unset($return['not_select'][$katao_supplier->getId()]);
  41. }
  42. }
  43. }
  44. } else {
  45. foreach (self::getAllGlobal(true) as $katao_supplier_id => $katao_supplier_name) {
  46. $return['not_select'][$katao_supplier_id] = $katao_supplier_name;
  47. $return['all'][$katao_supplier_id] = $katao_supplier_name;
  48. }
  49. if ($katao_period_id) {
  50. if (null != $katao_period = KataoPeriodPeer::retrieveByPK($katao_period_id)) {
  51. $criteria = new Criteria();
  52. $criteria->addAscendingOrderByColumn(KataoSupplierPeer::NAME);
  53. foreach ($katao_period->getKataoPeriodSuppliersJoinKataoSupplier($criteria) as/*(KataoPeriodSupplier)*/ $katao_period_supplier) {
  54. $katao_supplier = $katao_period_supplier->getKataoSupplier();
  55. $return[$katao_period_supplier->getIncludeAllProducts()?'all_product':'some_product'][$katao_supplier->getId()] = $katao_supplier->getName();
  56. unset($return['not_select'][$katao_supplier->getId()]);
  57. }
  58. }
  59. }
  60. }
  61. return $return;
  62. }
  63. public static function getAll() {
  64. $return = array();
  65. $criteria = new Criteria();
  66. $criteria->addSelectColumn(self::ID);
  67. $criteria->addSelectColumn(self::NAME);
  68. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  69. $criteria->addSelectColumn(self::REFERER_ID);
  70. $criteria->addAscendingOrderByColumn(self::NAME);
  71. $rs = self::doSelectRS($criteria);
  72. while ($rs->next()) {
  73. $return[$rs->getInt(1)] = array('name' => $rs->getString(2), 'url' => $rs->getString(3), 'referer' => $rs->getInt(4));
  74. }
  75. return $return;
  76. }
  77. public static function getAllSimple() {
  78. $return = array();
  79. foreach (self::getAll() as $id => $data) {
  80. $return[$id] = $data['name'];
  81. }
  82. return $return;
  83. }
  84. public static function getAllGlobal($only_active = false) {
  85. $return = array();
  86. $criteria = new Criteria();
  87. $criteria->addSelectColumn(self::ID);
  88. $criteria->addSelectColumn(self::NAME);
  89. $criteria->addJoin(self::ID, KataoProductPeer::KATAO_SUPPLIER_ID);
  90. $criteria->add(self::IS_GLOBAL, true);
  91. $criterion = $criteria->getNewCriterion(KataoProductPeer::IS_ARCHIVED, null);
  92. $criterion->addOr($criteria->getNewCriterion(KataoProductPeer::IS_ARCHIVED, false));
  93. $criteria->addAnd($criterion);
  94. if ($only_active) {
  95. $criteria->addJoin(self::ID, KataoUserPeer::KATAO_SUPPLIER_ID);
  96. $criteria->add(KataoUserPeer::STATUS, KataoUser::STATUS_ACTIVE);
  97. }
  98. $criteria->addAscendingOrderByColumn(self::NAME);
  99. $rs = self::doSelectRS($criteria);
  100. while ($rs->next()) {
  101. $return[$rs->getInt(1)] = $rs->getString(2);
  102. }
  103. return $return;
  104. }
  105. /**
  106. * KataoSupplierPeer::retrieveByUrlIdentifier()
  107. *
  108. * @param string $url_identifier
  109. * @return KataoSupplier
  110. */
  111. public static function retrieveByUrlIdentifier($url_identifier) {
  112. $criteria = new Criteria();
  113. $criteria->add(self::URL_IDENTIFIER, $url_identifier);
  114. return self::doSelectOne($criteria);
  115. }
  116. /**
  117. * KataoSupplierPeer::countByAccountingCode()
  118. *
  119. * @param string $accounting_code
  120. * @return boolean
  121. */
  122. public static function countByAccountingCode($accounting_code) {
  123. $criteria = new Criteria();
  124. $criteria->add(self::ACCOUNTING_CODE, $accounting_code);
  125. return self::doCount($criteria);
  126. }
  127. public static function getAllVisible($force_all_retrieval = false) {
  128. $suppliers = array();
  129. $criteria = new Criteria();
  130. $criteria->addSelectColumn(self::ID);
  131. $criteria->addSelectColumn(self::NAME);
  132. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  133. $criteria->addSelectColumn(self::ORDER_MIN_AMOUNT);
  134. $criteria->addSelectColumn(KataoUserPeer::STATUS);
  135. $criteria->add(self::IS_GLOBAL, true);
  136. $criteria->addJoin(self::ID, KataoUserPeer::KATAO_SUPPLIER_ID);
  137. $criteria->addAscendingOrderByColumn(self::NAME);
  138. $rs = self::doSelectRS($criteria);
  139. while ($rs->next()) {
  140. $suppliers[$rs->getString(2)] = array('id' => $rs->getInt(1), 'url' => $rs->getString(3), 'order_min_amount' => $rs->getFloat(4), 'status' => $rs->getInt(5));
  141. }
  142. $katao_node = null;
  143. if (sfContext::getInstance()->getUser()->hasAttribute('katao_period_instance')) {
  144. $katao_node = sfContext::getInstance()->getUser()->getActiveNode();
  145. }
  146. $criteria = new Criteria();
  147. $criteria->addSelectColumn(self::ID);
  148. $criteria->addSelectColumn(self::NAME);
  149. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  150. $criteria->addSelectColumn(self::ORDER_MIN_AMOUNT);
  151. $criteria->addSelectColumn(KataoUserPeer::STATUS);
  152. $criteria->addJoin(self::ID, KataoSupplierNodePeer::KATAO_SUPPLIER_ID);
  153. $criteria->addJoin(self::ID, KataoUserPeer::KATAO_SUPPLIER_ID);
  154. $criteria->add(self::IS_GLOBAL, false);
  155. if (!$force_all_retrieval && !is_null($katao_node)) {
  156. $criteria->add(KataoSupplierNodePeer::KATAO_NODE_ID, $katao_node->getId());
  157. }
  158. $criteria->addAscendingOrderByColumn(self::NAME);
  159. $rs = self::doSelectRS($criteria);
  160. while ($rs->next()) {
  161. $suppliers[$rs->getString(2)] = array('id' => $rs->getInt(1), 'url' => $rs->getString(3), 'order_min_amount' => $rs->getFloat(4), 'status' => $rs->getInt(5));
  162. }
  163. ksort($suppliers);
  164. $return = array();
  165. foreach ($suppliers as $supplier_name => $supplier_data) {
  166. $supplier_data['name'] = $supplier_name;
  167. $return[$supplier_data['id']] = $supplier_data;
  168. }
  169. return $return;
  170. }
  171. public static function getAllVisibleByCategory($force_all_retrieval = false) {
  172. $suppliers = array();
  173. $criteria = new Criteria();
  174. $criteria->addSelectColumn(self::ID);
  175. $criteria->addSelectColumn(self::NAME);
  176. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  177. $criteria->addSelectColumn(self::ORDER_MIN_AMOUNT);
  178. $criteria->addSelectColumn(KataoUserPeer::STATUS);
  179. $criteria->addSelectColumn(KataoProductCategoryPeer::NAME);
  180. $criteria->add(self::IS_GLOBAL, true);
  181. $criteria->addJoin(self::ID, KataoUserPeer::KATAO_SUPPLIER_ID);
  182. $criteria->addJoin(self::ID, KataoSupplierProductCategoryPeer::KATAO_SUPPLIER_ID);
  183. $criteria->addJoin(KataoSupplierProductCategoryPeer::KATAO_PRODUCT_CATEGORY_ID, KataoProductCategoryPeer::ID);
  184. $criteria->addAscendingOrderByColumn(KataoProductCategoryPeer::SORT_ORDER);
  185. $criteria->addAscendingOrderByColumn(self::NAME);
  186. $rs = self::doSelectRS($criteria);
  187. while ($rs->next()) {
  188. $suppliers[$rs->getString(6)][$rs->getString(2)] = array('id' => $rs->getInt(1), 'url' => $rs->getString(3), 'order_min_amount' => $rs->getFloat(4), 'status' => $rs->getInt(5));
  189. }
  190. $katao_node = sfContext::getInstance()->getUser()->getActiveNode();
  191. $criteria = new Criteria();
  192. $criteria->addSelectColumn(self::ID);
  193. $criteria->addSelectColumn(self::NAME);
  194. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  195. $criteria->addSelectColumn(self::ORDER_MIN_AMOUNT);
  196. $criteria->addSelectColumn(KataoUserPeer::STATUS);
  197. $criteria->addSelectColumn(KataoProductCategoryPeer::NAME);
  198. $criteria->addJoin(self::ID, KataoSupplierNodePeer::KATAO_SUPPLIER_ID);
  199. $criteria->addJoin(self::ID, KataoUserPeer::KATAO_SUPPLIER_ID);
  200. $criteria->addJoin(self::ID, KataoSupplierProductCategoryPeer::KATAO_SUPPLIER_ID);
  201. $criteria->addJoin(KataoSupplierProductCategoryPeer::KATAO_PRODUCT_CATEGORY_ID, KataoProductCategoryPeer::ID);
  202. $criteria->add(self::IS_GLOBAL, false);
  203. if (!$force_all_retrieval && !is_null($katao_node)) {
  204. $criteria->add(KataoSupplierNodePeer::KATAO_NODE_ID, $katao_node->getId());
  205. }
  206. $criteria->addAscendingOrderByColumn(KataoProductCategoryPeer::SORT_ORDER);
  207. $criteria->addAscendingOrderByColumn(self::NAME);
  208. $rs = self::doSelectRS($criteria);
  209. while ($rs->next()) {
  210. $suppliers[$rs->getString(6)][$rs->getString(2)] = array('id' => $rs->getInt(1), 'url' => $rs->getString(3), 'order_min_amount' => $rs->getFloat(4), 'status' => $rs->getInt(5));
  211. }
  212. $return = array();
  213. foreach ($suppliers as $supplier_category => $category_suppliers) {
  214. foreach ($category_suppliers as $supplier_name => $supplier_data) {
  215. $supplier_data['name'] = $supplier_name;
  216. $return[$supplier_category][$supplier_data['id']] = $supplier_data;
  217. }
  218. }
  219. return $return;
  220. }
  221. public static function getAllByRefererId($referer_id) {
  222. $return = array();
  223. foreach (self::getAll() as $id => $data) {
  224. if (!empty($data['referer']) && $referer_id == $data['referer']) {
  225. $return[$id] = $data['name'];
  226. }
  227. }
  228. return $return;
  229. }
  230. public static function getAllLocalToNode($katao_node_id) {
  231. $return = array();
  232. $criteria = new Criteria();
  233. $criteria->addSelectColumn(self::ID);
  234. $criteria->addSelectColumn(self::NAME);
  235. $criteria->addJoin(self::ID, KataoSupplierNodePeer::KATAO_SUPPLIER_ID);
  236. $criteria->add(self::IS_GLOBAL, true, Criteria::NOT_EQUAL);
  237. $criteria->add(KataoSupplierNodePeer::KATAO_NODE_ID, $katao_node_id);
  238. $criteria->addAscendingOrderByColumn(self::NAME);
  239. $rs = self::doSelectRS($criteria);
  240. while ($rs->next()) {
  241. $return[$rs->getInt(1)] = array('name' => $rs->getString(2));
  242. }
  243. return $return;
  244. }
  245. /**
  246. * KataoSupplierPeer::retrieveBySiretNumber()
  247. *
  248. * @param string $siret_number
  249. * @param int $exclude
  250. * @return KataoSupplier
  251. */
  252. public static function retrieveBySiretNumber($siret_number, $exclude = false) {
  253. $criteria = new Criteria();
  254. $criteria->add(self::SIRET_NUMBER, $siret_number);
  255. $criteria->add(self::ID, $exclude, Criteria::NOT_EQUAL);
  256. return self::doSelectOne($criteria);
  257. }
  258. public static function getAllJoinCart() {
  259. $suppliers = array();
  260. $sf_user =/*(myUser)*/ sfContext::getInstance()->getUser();
  261. $criteria = new Criteria();
  262. $criteria->addSelectColumn(self::ID);
  263. $criteria->addSelectColumn(self::NAME);
  264. $criteria->addSelectColumn(self::URL_IDENTIFIER);
  265. $criteria->addSelectColumn(self::ORDER_MIN_AMOUNT);
  266. $criteria->addJoin(self::ID, KataoProductPeer::KATAO_SUPPLIER_ID);
  267. $criteria->addJoin(KataoProductPeer::ID, KataoCartProductPeer::KATAO_PRODUCT_ID);
  268. $criteria->addJoin(KataoCartProductPeer::KATAO_CART_ID, KataoCartPeer::ID);
  269. $criteria->add(KataoCartPeer::KATAO_PERIOD_ID, $sf_user->getActivePeriod()->getId());
  270. $criteria->add(KataoCartPeer::KATAO_NODE_ID, $sf_user->getActiveNode()->getId());
  271. $criteria->addAscendingOrderByColumn(self::NAME);
  272. $rs = self::doSelectRS($criteria);
  273. while ($rs->next()) {
  274. $suppliers[$rs->getString(2)] = array('id' => $rs->getInt(1), 'url' => $rs->getString(3), 'order_min_amount' => $rs->getFloat(4));
  275. }
  276. ksort($suppliers);
  277. $return = array();
  278. foreach ($suppliers as $supplier_name => $supplier_data) {
  279. $supplier_data['name'] = $supplier_name;
  280. $return[$supplier_data['id']] = $supplier_data;
  281. }
  282. return $return;
  283. }
  284. }