public function GetOperationsByProviderId($provider_id) { $table = $this->getDbTable(); $select = $table->select(); $select->setIntegrityCheck(false); $select->from(array('opr' => 'operations'), array('id', 'client_id', 'date', 'amount', 'observations', 'report', 'date_added', 'state_order_id', 'cave_id')); $select->joinLeft(array('prov' => 'providers'), 'opr.cave_id = prov.id', array('name as cave_name', 'comision_rate')); $select->joinLeft(array('cls' => 'clients'), 'opr.client_id = cls.id', array('first_name', 'last_name')); $select->where('opr.cave_id = ?', $provider_id); $select->where('opr.liquidacion_id IS NULL'); //NOTE! gus also wants to show the operations with state "En Lavalle". $select->where('opr.state_order_id = 8 OR opr.state_order_id = 9 OR opr.state_order_id = 10 OR opr.state_order_id = 11'); $select->order('opr.id ASC'); $resultSet = $table->fetchAll($select); $entries = array(); foreach ($resultSet as $row) { $entry = new Gyuser_Model_Operations(); $entry->setId($row->id); $entry->setClient_id($row->client_id); $entry->setDate(date("d/m/Y", strtotime($row->date))); $entry->setAmount($row->amount); $entry->setState($row->state_order_id); $entry->setObservations($row->observations); $entry->setReport($row->report); $entry->setProv_name($row->cave_name); $entry->setProv_commission_rate($row->comision_rate); $pMapper = new Gyuser_Model_ProvidersDataMapper(); $commissionAmt = $pMapper->calculateComisionAmt($row->amount, $row->comision_rate); $entry->setProv_commission_amt($commissionAmt); $provPayment = $pMapper->calculateProvPayment($row->amount, $commissionAmt); $entry->setProv_payment($provPayment); /* $provider_obj = new Gyuser_Model_Providers(); $provider_obj->setName($row->cave_name); $provider_obj->setComisionRate($row->comision_rate); $pMapper = new Gyuser_Model_ProvidersDataMapper(); $comisionAmt = $pMapper->calculateComisionAmt($row->amount, $row->comision_rate); $provPayment = $pMapper->calculateProvPayment($row->amount, $comisionAmt); $provider_obj->setComisionAmt($comisionAmt); $provider_obj->setProvPayment($provPayment); $entry->setProvider_obj($provider_obj); * */ $clientObj = new Gyuser_Model_User(); $clientObj->setFirst_name($row->first_name); $clientObj->setLast_name($row->last_name); $entry->setUser_obj($clientObj); $entries[] = $entry; } return $entries; }