protected function getPositions($processid) { $positionsDb = new Processes_Model_DbTable_Processpos(); $positions = $positionsDb->fetchAll($positionsDb->select()->where('processid = ?', $processid)->order('ordering')); return $positions; }
protected function getPositions($processIDs) { $positions = array(); if (!empty($processIDs)) { $positionsDb = new Processes_Model_DbTable_Processpos(); $positionsObject = $positionsDb->fetchAll($positionsDb->select()->where('processid IN (?)', $processIDs)->order('ordering')); foreach ($positionsObject as $position) { if (!isset($previous[$position->processid])) { $previous[$position->processid] = array(); $previous[$position->processid]['ordering'] = 0; $previous[$position->processid]['quantity'] = 1; $previous[$position->processid]['deliverystatus'] = ''; $previous[$position->processid]['deliverydate'] = '0000-00-00'; $previous[$position->processid]['supplierorderstatus'] = ''; } if ($previous[$position->processid]['ordering'] && $previous[$position->processid]['deliverystatus'] == $position->deliverystatus && $previous[$position->processid]['deliverydate'] == $position->deliverydate && $previous[$position->processid]['supplierorderstatus'] == $position->supplierorderstatus) { $positions[$position->processid][$position->ordering] = $positions[$position->processid][$previous[$position->processid]['ordering']]; $positions[$position->processid][$position->ordering]['quantity'] = $previous[$position->processid]['quantity'] + 1; unset($positions[$position->processid][$previous[$position->processid]['ordering']]); $previous[$position->processid]['ordering'] = $position->ordering ? $position->ordering : 0; $previous[$position->processid]['quantity'] = $positions[$position->processid][$position->ordering]['quantity']; $previous[$position->processid]['deliverystatus'] = $position->deliverystatus ? $position->deliverystatus : ''; $previous[$position->processid]['deliverydate'] = $position->deliverydate ? $position->deliverydate : '0000-00-00'; $previous[$position->processid]['supplierorderstatus'] = $position->supplierorderstatus ? $position->supplierorderstatus : ''; } else { $positions[$position->processid][$position->ordering]['deliverystatus'] = $position->deliverystatus; if ($position->deliverydate != '0000-00-00') { $positions[$position->processid][$position->ordering]['deliverydate'] = $position->deliverydate; } if ($position->itemtype == 'deliveryItem') { $positions[$position->processid][$position->ordering]['supplierorderstatus'] = $position->supplierorderstatus; } $previous[$position->processid] = array(); $previous[$position->processid]['ordering'] = $position->ordering ? $position->ordering : 0; $previous[$position->processid]['quantity'] = 1; $previous[$position->processid]['deliverystatus'] = $position->deliverystatus ? $position->deliverystatus : ''; $previous[$position->processid]['deliverydate'] = $position->deliverydate ? $position->deliverydate : '0000-00-00'; $previous[$position->processid]['supplierorderstatus'] = $position->supplierorderstatus ? $position->supplierorderstatus : ''; } } } return $positions; }