コード例 #1
0
 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;
 }