public function GetChequeForLiquidacionesForSupplier(Gyuser_Model_Cheques $obj) { $rejClientIds = $this->RejectedChequesClientIdsByDayCount($obj); $allRejClientIds = $this->RejectedChequesClientIds(); $rejClientIdArr = array(); foreach ($allRejClientIds as $row) { $rejClientIdArr[] = $row->client_id; } $suplChequeCount = $caveChequeCount = array(); if ($obj->getCredit_provider_id()) { $suplChequeCount = $this->ChequesCountBySupplierId($obj); } $chequeFCount = 2; $table = $this->getDbTable(); $select = $table->select(); $select->setIntegrityCheck(false); $select->from(array('cqu' => 'cheques'), array('id as cheque_id', 'operation_id', 'date as cheque_date', 'check_n', 'amount', 'local', 'liquidacion_id', 'status as cheque_status')); $select->joinLeft(array('ops' => 'operations'), 'cqu.operation_id = ops.id', array('client_id', 'bank_account_id')); $select->joinLeft(array('bas' => 'bank_accounts'), 'ops.bank_account_id = bas.id', array('bank_name', 'zip_code', 'state')); $select->joinLeft(array('cls' => 'clients'), 'ops.client_id = cls.id', array('first_name', 'last_name')); $select->joinLeft(array('add' => 'addresses'), 'cls.id = add.client_id', array('city', 'country')); $select->joinLeft(array('chqs' => 'cheques_status'), 'cqu.status = chqs.id', array('id as cheque_state_id', 'status_list')); //$select->where('ops.cave_id = ?', $obj->getCave_id()); $select->where('cqu.liquidacion_id IS NULL'); $select->where('cqu.date >= ?', date("Y-m-d")); $select->where('cqu.status = ?', 1); $select->group('cqu.id'); foreach ($caveChequeCount as $row) { if ((int) $row->cheque_count > $chequeFCount) { $select->where('cls.id != ?', $row->client_id); } } foreach ($suplChequeCount as $row) { if ((int) $row->cheque_count > $chequeFCount) { $select->where('cls.id != ?', $row->client_id); } } foreach ($rejClientIds as $row) { $select->where('cls.id != ?', $row->client_id); } $select->where('cqu.local = ?', true); $select->order('cqu.date ASC'); $resultSet = $table->fetchAll($select); $entries = array(); foreach ($resultSet as $row) { $entry = new Gyuser_Model_Cheques(); $entry->setId($row->cheque_id); $entry->setOperation_id($row->operation_id); $entry->setDate(date("d/m/Y", strtotime($row->cheque_date))); $entry->setCheck_n($row->check_n); $entry->setAmount($row->amount); $entry->setStatus($row->cheque_status); $entry->setRej_cheque_client_ids($rejClientIdArr); $entry->setCheck_zip_code($row->zip_code); $clientObj = new Gyuser_Model_User(); $clientObj->setFirst_name($row->first_name); $clientObj->setLast_name($row->last_name); $clientObj->setId($row->client_id); $entry->setClients_obj($clientObj); $cheques_state_obj = new Gyuser_Model_ChequesStatus(); $cheques_state_obj->setId($row->cheque_state_id); $cheques_state_obj->setStatus_list($row->status_list); $entry->setCheques_status_obj($cheques_state_obj); $address_obj = new Gyuser_Model_Address(); $address_obj->setId($row->client_id); $address_obj->setCity($row->city); $address_obj->setCountry($row->country); $entry->setAddress_obj($address_obj); $_bank_accounts_obj = new Gyuser_Model_BankAccounts(); $_bank_accounts_obj->setBank_name($row->bank_name); $_bank_accounts_obj->setState($row->state); $entry->setBank_accounts_obj($_bank_accounts_obj); $entries[] = $entry; } return $entries; }