Guest User

Untitled

a guest
Jul 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.58 KB | None | 0 0
  1. <?php
  2.  
  3. class Package extends Zend_Db_Table_Abstract
  4. {
  5.  
  6. protected $_name = "packages";
  7.  
  8. private $_iTotalValue = 0;
  9. private $_iTotalKg = 0;
  10. private $_iTotalPackages = 0;
  11.  
  12. public function getPackages($iProcess_id = 0)
  13. {
  14. $oResults = $this->fetchAll(
  15. $this->select()
  16. ->setIntegrityCheck(false)
  17. ->from("packages",array("id","weight","weight_edit","date_create","date_edit"))
  18. ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
  19. ->join("colors","packages.color_id = colors.id","colors.name AS color")
  20. ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
  21. ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
  22. ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
  23. ->where("process_id = $iProcess_id")
  24. ->order("color ASC")
  25. ->order("quality ASC")
  26. ->order("size ASC")
  27. );
  28.  
  29. return $oResults;
  30. }
  31.  
  32. public function getPackageDetails($iProcess_id = 0, $iPackageId)
  33. {
  34. $oResult = $this->fetchRow(
  35. $this->select()
  36. ->where("id = $iPackageId AND process_id = $iProcess_id")
  37. );
  38.  
  39. return $oResult;
  40. }
  41.  
  42. public function getPackagesForStatus($iProcess_id)
  43. {
  44. /*
  45. $oSelect = $this->select();
  46. $oSelect->setIntegrityCheck(false)
  47. ->from('packages',array( 'packages.weight'
  48. , 'packages.weight_edit'
  49. , 'COUNT(packages.id) AS amount_packages'
  50. , 'SUM(packages.weight) AS sum_weight'
  51. , 'SUM(packages.weight_edit) AS sum_weight_edit'))
  52. ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
  53. ->join("colors","packages.color_id = colors.id","colors.name AS color")
  54. ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
  55. ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
  56. ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
  57. ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
  58. . 'AND packages.color_id = pricelist.color_id '
  59. . 'AND packages.quality_id = pricelist.quality_id '
  60. . 'AND packages.size_id = pricelist.size_id '
  61. . 'AND packages.pit_id = pricelist.pit_id '
  62. , 'pricelist.price AS value_pkg')
  63. ->group(array( 'packages.gem_id'
  64. , 'packages.color_id'
  65. , 'packages.quality_id'
  66. , 'packages.size_id'
  67. , 'packages.pit_id'))
  68. ->where('process_id = '.$iProcess_id);
  69.  
  70. $aItems = array();
  71. $iIndex = 0;
  72. foreach($this->fetchAll($oSelect) as $aItem)
  73. {
  74. if($aItem['sum_weight_edit'])
  75. {
  76. $iWeight = $aItem['sum_weight_edit'];
  77. }
  78. else
  79. {
  80. $iWeight = $aItem['sum_weight'];
  81. }
  82.  
  83. $aItems[$iIndex]['weight'] = $iWeight;
  84. $aItems[$iIndex]['gem'] = $aItem['gem'];
  85. $aItems[$iIndex]['color'] = $aItem['color'];
  86. $aItems[$iIndex]['pit'] = $aItem['pit'];
  87. $aItems[$iIndex]['quality'] = $aItem['quality'];
  88. $aItems[$iIndex]['size'] = $aItem['size'];
  89. $aItems[$iIndex]['value_package'] = $iWeight * $aItem['value_pkg'];
  90. $aItems[$iIndex]['value_pkg'] = $aItem['value_pkg'];
  91. $aItems[$iIndex]['amount_packages'] = $aItem['amount_packages'];
  92.  
  93. $iIndex++;
  94. }
  95. */
  96.  
  97. $oSelect = $this->select();
  98. $oSelect->setIntegrityCheck(false)
  99. ->from(array('packages'),array(
  100. 'COUNT(packages.id) AS amount_packages'
  101. , 'SUM(packages.weight) AS sum_weight'
  102. , 'SUM(packages.weight_edit) AS sum_weight_edit'))
  103. ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
  104. ->join("colors","packages.color_id = colors.id","colors.name AS color")
  105. ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
  106. ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
  107. ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
  108.  
  109. ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
  110. . 'AND packages.color_id = pricelist.color_id '
  111. . 'AND packages.quality_id = pricelist.quality_id '
  112. . 'AND packages.size_id = pricelist.size_id '
  113. , 'pricelist.price AS value_pkg')
  114.  
  115. ->group(array( 'packages.gem_id'
  116. , 'packages.color_id'
  117. , 'packages.quality_id'
  118. , 'packages.size_id'
  119. , 'packages.pit_id'
  120. , 'pricelist.price'))
  121. ->where('process_id = '.$iProcess_id);
  122.  
  123. $aItems = array();
  124. $iIndex = 0;
  125. foreach($this->fetchAll($oSelect) as $aItem)
  126. {
  127. if($aItem['sum_weight_edit'])
  128. {
  129. $iWeight = $aItem['sum_weight_edit'];
  130. }
  131. else
  132. {
  133. $iWeight = $aItem['sum_weight'];
  134. }
  135.  
  136. $aItems[$iIndex]['weight'] = $iWeight;
  137. $aItems[$iIndex]['gem'] = $aItem['gem'];
  138. $aItems[$iIndex]['color'] = $aItem['color'];
  139. $aItems[$iIndex]['pit'] = $aItem['pit'];
  140. $aItems[$iIndex]['quality'] = $aItem['quality'];
  141. $aItems[$iIndex]['size'] = $aItem['size'];
  142. $aItems[$iIndex]['value_package'] = $iWeight * $aItem['value_pkg'];
  143. $aItems[$iIndex]['value_pkg'] = $aItem['value_pkg'];
  144. $aItems[$iIndex]['amount_packages'] = $aItem['amount_packages'];
  145.  
  146. $iIndex++;
  147. }
  148.  
  149. return $aItems;
  150. }
  151.  
  152. /**
  153. * returns the total value.
  154. *
  155. * @return integer
  156. */
  157. public function getTotalValue($iProcess_id)
  158. {
  159.  
  160. $oSelect = $this->select();
  161.  
  162. $oSelect->setIntegrityCheck(false)
  163. ->from('packages',array('packages.weight','packages.weight_edit'))
  164. ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
  165. . 'AND packages.color_id = pricelist.color_id '
  166. . 'AND packages.quality_id = pricelist.quality_id '
  167. . 'AND packages.size_id = pricelist.size_id '
  168. , 'pricelist.price AS pp_package')
  169. ->where('process_id = '.$iProcess_id);
  170.  
  171. $iTotalValue = 0;
  172. foreach($this->fetchAll($oSelect) as $aItem)
  173. {
  174. if($aItem['weight_edit'])
  175. {
  176. $iWeight = $aItem['weight_edit'];
  177. }
  178. else
  179. {
  180. $iWeight = $aItem['weight'];
  181. }
  182.  
  183. $iTotalValue = $iTotalValue + ($iWeight * $aItem['pp_package']);
  184. }
  185.  
  186. return number_format($iTotalValue,2);
  187. }
  188.  
  189. /**
  190. * returns the total kg.
  191. *
  192. * @return integer
  193. */
  194. public function getTotalKg($iProcess_id)
  195. {
  196. $oSelect = $this->select();
  197. $oSelect->from('packages',array('weight', 'weight_edit'))
  198. ->where('process_id = '.$iProcess_id);
  199.  
  200. $iWeight = 0;
  201. foreach($this->fetchAll($oSelect) as $aItem)
  202. {
  203. if($aItem['weight_edit'])
  204. {
  205. $iWeight = $iWeight + $aItem['weight_edit'];
  206. }
  207. else
  208. {
  209. $iWeight = $iWeight + $aItem['weight'];
  210. }
  211. }
  212.  
  213. return round($iWeight,2);
  214. }
  215.  
  216. /**
  217. * returns the total amount of packages.
  218. */
  219. public function getTotalPackages($iProcess_id)
  220. {
  221. $oSelect = $this->select();
  222. $oSelect->from('packages',array('COUNT(*) AS amount'))
  223. ->where('process_id = '.$iProcess_id);
  224. $aAmount = $this->fetchRow($oSelect);
  225. return $aAmount['amount'];
  226. }
  227.  
  228.  
  229. public function getPackageDetailsForHistory($iPackageId)
  230. {
  231. $oSelect = $this->select();
  232. $oSelect->setIntegrityCheck(false)
  233. ->from('packages',array('id','weight'))
  234. ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
  235. ->join("colors","packages.color_id = colors.id","colors.name AS color")
  236. ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
  237. ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
  238. ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
  239. ->where('packages.id = '.$iPackageId);
  240.  
  241. return $this->fetchRow($oSelect);
  242. }
  243.  
  244. /**
  245. * Confirms if it is allowed to be editted by process_id.
  246. *
  247. * @param int $iProcess_id
  248. * @param int $iPackageId
  249. */
  250. public function hasPermission($iProcess_id, $iPackageId)
  251. {
  252. $oSelect = $this->select();
  253. $oSelect->from('packages',array('id'))
  254. ->where('id = '.$iPackageId)
  255. ->where('process_id = '.$iProcess_id)
  256. ->limit(1);
  257. return $this->fetchRow($oSelect);
  258. }
  259.  
  260. public function getAllGemElements()
  261. {
  262.  
  263. $aAllElements = array();
  264.  
  265. /*
  266. * Fetch gems for selection.
  267. */
  268. $oGem = new Gem();
  269. $oResults = $oGem->getGems();
  270. $oGemResults = array();
  271. foreach($oResults as $oResult)
  272. {
  273. $oGemResults[$oResult->id] = $oResult->name;
  274. }
  275. $aAllElements['oGemResults'] = $oGemResults;
  276.  
  277. /*
  278. * Fetch colors for selection.
  279. */
  280. $oColor = new Color();
  281. $oResults = $oColor->getColors();
  282. $oColorResults = array();
  283. foreach($oResults as $oResult)
  284. {
  285. $oColorResults[$oResult->id] = $oResult->name;
  286. }
  287. $aAllElements['oColorResults'] = $oColorResults;
  288.  
  289. /*
  290. * Fetch pits for selection.
  291. */
  292. $oPit = new Pit();
  293. $oResults = $oPit->getPits();
  294. $oPitResults = array();
  295. foreach($oResults as $oResult)
  296. {
  297. $oPitResults[$oResult->id] = $oResult->name;
  298. }
  299. $aAllElements['oPitResults'] = $oPitResults;
  300.  
  301. /*
  302. * Fetch qualities for selection.
  303. */
  304. $oQuality = new Quality();
  305. $oResults = $oQuality->getQualities();
  306. $oQualityResults = array();
  307. foreach($oResults as $oResult)
  308. {
  309. $oQualityResults[$oResult->id] = $oResult->name;
  310. }
  311. $aAllElements['oQualityResults'] = $oQualityResults;
  312.  
  313. /*
  314. * Fetch sizes for selection.
  315. */
  316. $oSize = new Size();
  317. $oResults = $oSize->getSizes();
  318. $oSizeResults = array();
  319. foreach($oResults as $oResult)
  320. {
  321. $oSizeResults[$oResult->id] = $oResult->name;
  322. }
  323. $aAllElements['oSizeResults'] = $oSizeResults;
  324.  
  325. return $aAllElements;
  326.  
  327. }
  328.  
  329.  
  330.  
  331. /**
  332. * Retrieves all names of the resources: gems, colors, pits, sizes, qualities.
  333. *
  334. * @return array
  335. */
  336. public function getResourceNames($aData)
  337. {
  338. $sQuery = " SELECT gems.name AS gem_name, colors.name AS color_name, pits.name AS pit_name, sizes.name AS size_name, qualities.name AS quality_name ";
  339. $sQuery .= " FROM gems, colors, pits, sizes, qualities ";
  340. $sQuery .= " WHERE gems.id = ".$aData['gem_id']." ";
  341. $sQuery .= " AND colors.id = ".$aData['color_id']." ";
  342. $sQuery .= " AND pits.id = ".$aData['pit_id']." ";
  343. $sQuery .= " AND sizes.id = ".$aData['size_id']." ";
  344. $sQuery .= " AND qualities.id = ".$aData['quality_id']." ";
  345.  
  346. $db = Zend_Db_Table::getDefaultAdapter();
  347. return $db->fetchRow($sQuery);
  348. }
  349.  
  350.  
  351.  
  352. }
Add Comment
Please, Sign In to add comment