Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Package extends Zend_Db_Table_Abstract
- {
- protected $_name = "packages";
- private $_iTotalValue = 0;
- private $_iTotalKg = 0;
- private $_iTotalPackages = 0;
- public function getPackages($iProcess_id = 0)
- {
- $oResults = $this->fetchAll(
- $this->select()
- ->setIntegrityCheck(false)
- ->from("packages",array("id","weight","weight_edit","date_create","date_edit"))
- ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
- ->join("colors","packages.color_id = colors.id","colors.name AS color")
- ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
- ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
- ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
- ->where("process_id = $iProcess_id")
- ->order("color ASC")
- ->order("quality ASC")
- ->order("size ASC")
- );
- return $oResults;
- }
- public function getPackageDetails($iProcess_id = 0, $iPackageId)
- {
- $oResult = $this->fetchRow(
- $this->select()
- ->where("id = $iPackageId AND process_id = $iProcess_id")
- );
- return $oResult;
- }
- public function getPackagesForStatus($iProcess_id)
- {
- /*
- $oSelect = $this->select();
- $oSelect->setIntegrityCheck(false)
- ->from('packages',array( 'packages.weight'
- , 'packages.weight_edit'
- , 'COUNT(packages.id) AS amount_packages'
- , 'SUM(packages.weight) AS sum_weight'
- , 'SUM(packages.weight_edit) AS sum_weight_edit'))
- ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
- ->join("colors","packages.color_id = colors.id","colors.name AS color")
- ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
- ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
- ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
- ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
- . 'AND packages.color_id = pricelist.color_id '
- . 'AND packages.quality_id = pricelist.quality_id '
- . 'AND packages.size_id = pricelist.size_id '
- . 'AND packages.pit_id = pricelist.pit_id '
- , 'pricelist.price AS value_pkg')
- ->group(array( 'packages.gem_id'
- , 'packages.color_id'
- , 'packages.quality_id'
- , 'packages.size_id'
- , 'packages.pit_id'))
- ->where('process_id = '.$iProcess_id);
- $aItems = array();
- $iIndex = 0;
- foreach($this->fetchAll($oSelect) as $aItem)
- {
- if($aItem['sum_weight_edit'])
- {
- $iWeight = $aItem['sum_weight_edit'];
- }
- else
- {
- $iWeight = $aItem['sum_weight'];
- }
- $aItems[$iIndex]['weight'] = $iWeight;
- $aItems[$iIndex]['gem'] = $aItem['gem'];
- $aItems[$iIndex]['color'] = $aItem['color'];
- $aItems[$iIndex]['pit'] = $aItem['pit'];
- $aItems[$iIndex]['quality'] = $aItem['quality'];
- $aItems[$iIndex]['size'] = $aItem['size'];
- $aItems[$iIndex]['value_package'] = $iWeight * $aItem['value_pkg'];
- $aItems[$iIndex]['value_pkg'] = $aItem['value_pkg'];
- $aItems[$iIndex]['amount_packages'] = $aItem['amount_packages'];
- $iIndex++;
- }
- */
- $oSelect = $this->select();
- $oSelect->setIntegrityCheck(false)
- ->from(array('packages'),array(
- 'COUNT(packages.id) AS amount_packages'
- , 'SUM(packages.weight) AS sum_weight'
- , 'SUM(packages.weight_edit) AS sum_weight_edit'))
- ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
- ->join("colors","packages.color_id = colors.id","colors.name AS color")
- ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
- ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
- ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
- ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
- . 'AND packages.color_id = pricelist.color_id '
- . 'AND packages.quality_id = pricelist.quality_id '
- . 'AND packages.size_id = pricelist.size_id '
- , 'pricelist.price AS value_pkg')
- ->group(array( 'packages.gem_id'
- , 'packages.color_id'
- , 'packages.quality_id'
- , 'packages.size_id'
- , 'packages.pit_id'
- , 'pricelist.price'))
- ->where('process_id = '.$iProcess_id);
- $aItems = array();
- $iIndex = 0;
- foreach($this->fetchAll($oSelect) as $aItem)
- {
- if($aItem['sum_weight_edit'])
- {
- $iWeight = $aItem['sum_weight_edit'];
- }
- else
- {
- $iWeight = $aItem['sum_weight'];
- }
- $aItems[$iIndex]['weight'] = $iWeight;
- $aItems[$iIndex]['gem'] = $aItem['gem'];
- $aItems[$iIndex]['color'] = $aItem['color'];
- $aItems[$iIndex]['pit'] = $aItem['pit'];
- $aItems[$iIndex]['quality'] = $aItem['quality'];
- $aItems[$iIndex]['size'] = $aItem['size'];
- $aItems[$iIndex]['value_package'] = $iWeight * $aItem['value_pkg'];
- $aItems[$iIndex]['value_pkg'] = $aItem['value_pkg'];
- $aItems[$iIndex]['amount_packages'] = $aItem['amount_packages'];
- $iIndex++;
- }
- return $aItems;
- }
- /**
- * returns the total value.
- *
- * @return integer
- */
- public function getTotalValue($iProcess_id)
- {
- $oSelect = $this->select();
- $oSelect->setIntegrityCheck(false)
- ->from('packages',array('packages.weight','packages.weight_edit'))
- ->join('pricelist', ' packages.gem_id = pricelist.gem_id '
- . 'AND packages.color_id = pricelist.color_id '
- . 'AND packages.quality_id = pricelist.quality_id '
- . 'AND packages.size_id = pricelist.size_id '
- , 'pricelist.price AS pp_package')
- ->where('process_id = '.$iProcess_id);
- $iTotalValue = 0;
- foreach($this->fetchAll($oSelect) as $aItem)
- {
- if($aItem['weight_edit'])
- {
- $iWeight = $aItem['weight_edit'];
- }
- else
- {
- $iWeight = $aItem['weight'];
- }
- $iTotalValue = $iTotalValue + ($iWeight * $aItem['pp_package']);
- }
- return number_format($iTotalValue,2);
- }
- /**
- * returns the total kg.
- *
- * @return integer
- */
- public function getTotalKg($iProcess_id)
- {
- $oSelect = $this->select();
- $oSelect->from('packages',array('weight', 'weight_edit'))
- ->where('process_id = '.$iProcess_id);
- $iWeight = 0;
- foreach($this->fetchAll($oSelect) as $aItem)
- {
- if($aItem['weight_edit'])
- {
- $iWeight = $iWeight + $aItem['weight_edit'];
- }
- else
- {
- $iWeight = $iWeight + $aItem['weight'];
- }
- }
- return round($iWeight,2);
- }
- /**
- * returns the total amount of packages.
- */
- public function getTotalPackages($iProcess_id)
- {
- $oSelect = $this->select();
- $oSelect->from('packages',array('COUNT(*) AS amount'))
- ->where('process_id = '.$iProcess_id);
- $aAmount = $this->fetchRow($oSelect);
- return $aAmount['amount'];
- }
- public function getPackageDetailsForHistory($iPackageId)
- {
- $oSelect = $this->select();
- $oSelect->setIntegrityCheck(false)
- ->from('packages',array('id','weight'))
- ->join("gems","packages.gem_id = gems.id","gems.name AS gem")
- ->join("colors","packages.color_id = colors.id","colors.name AS color")
- ->join("pits","packages.pit_id = pits.id","pits.name AS pit")
- ->join("qualities","packages.quality_id = qualities.id","qualities.name AS quality")
- ->join("sizes","packages.size_id = sizes.id","sizes.name AS size")
- ->where('packages.id = '.$iPackageId);
- return $this->fetchRow($oSelect);
- }
- /**
- * Confirms if it is allowed to be editted by process_id.
- *
- * @param int $iProcess_id
- * @param int $iPackageId
- */
- public function hasPermission($iProcess_id, $iPackageId)
- {
- $oSelect = $this->select();
- $oSelect->from('packages',array('id'))
- ->where('id = '.$iPackageId)
- ->where('process_id = '.$iProcess_id)
- ->limit(1);
- return $this->fetchRow($oSelect);
- }
- public function getAllGemElements()
- {
- $aAllElements = array();
- /*
- * Fetch gems for selection.
- */
- $oGem = new Gem();
- $oResults = $oGem->getGems();
- $oGemResults = array();
- foreach($oResults as $oResult)
- {
- $oGemResults[$oResult->id] = $oResult->name;
- }
- $aAllElements['oGemResults'] = $oGemResults;
- /*
- * Fetch colors for selection.
- */
- $oColor = new Color();
- $oResults = $oColor->getColors();
- $oColorResults = array();
- foreach($oResults as $oResult)
- {
- $oColorResults[$oResult->id] = $oResult->name;
- }
- $aAllElements['oColorResults'] = $oColorResults;
- /*
- * Fetch pits for selection.
- */
- $oPit = new Pit();
- $oResults = $oPit->getPits();
- $oPitResults = array();
- foreach($oResults as $oResult)
- {
- $oPitResults[$oResult->id] = $oResult->name;
- }
- $aAllElements['oPitResults'] = $oPitResults;
- /*
- * Fetch qualities for selection.
- */
- $oQuality = new Quality();
- $oResults = $oQuality->getQualities();
- $oQualityResults = array();
- foreach($oResults as $oResult)
- {
- $oQualityResults[$oResult->id] = $oResult->name;
- }
- $aAllElements['oQualityResults'] = $oQualityResults;
- /*
- * Fetch sizes for selection.
- */
- $oSize = new Size();
- $oResults = $oSize->getSizes();
- $oSizeResults = array();
- foreach($oResults as $oResult)
- {
- $oSizeResults[$oResult->id] = $oResult->name;
- }
- $aAllElements['oSizeResults'] = $oSizeResults;
- return $aAllElements;
- }
- /**
- * Retrieves all names of the resources: gems, colors, pits, sizes, qualities.
- *
- * @return array
- */
- public function getResourceNames($aData)
- {
- $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 ";
- $sQuery .= " FROM gems, colors, pits, sizes, qualities ";
- $sQuery .= " WHERE gems.id = ".$aData['gem_id']." ";
- $sQuery .= " AND colors.id = ".$aData['color_id']." ";
- $sQuery .= " AND pits.id = ".$aData['pit_id']." ";
- $sQuery .= " AND sizes.id = ".$aData['size_id']." ";
- $sQuery .= " AND qualities.id = ".$aData['quality_id']." ";
- $db = Zend_Db_Table::getDefaultAdapter();
- return $db->fetchRow($sQuery);
- }
- }
Add Comment
Please, Sign In to add comment