1
0
mirror of https://github.com/nerzhul/ocsms.git synced 2025-06-07 16:06:15 +00:00

Fix message countries, this fix message count and conversations

This commit is contained in:
Loic Blot 2015-01-09 19:17:12 +00:00
parent f76a376635
commit 84db79a300
2 changed files with 14 additions and 14 deletions

View File

@ -164,18 +164,18 @@ class SmsController extends Controller {
if ($contactName != "" && isset($iContacts[$contactName])) { if ($contactName != "" && isset($iContacts[$contactName])) {
// forall numbers in iContacts // forall numbers in iContacts
foreach($iContacts[$contactName] as $cnumber) { foreach($iContacts[$contactName] as $cnumber) {
$messages = $messages + $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $cnumber, $lastDate); $messages = $messages + $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $cnumber, $configuredCountry, $lastDate);
$msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber); $msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber, $configuredCountry);
$phoneNumbers[] = PhoneNumberFormatter::format($configuredCountry, $cnumber); $phoneNumbers[] = PhoneNumberFormatter::format($configuredCountry, $cnumber);
} }
} }
else { else {
$messages = $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $phoneNumber, $lastDate); $messages = $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $phoneNumber, $configuredCountry, $lastDate);
$msgCount = $this->smsMapper->countMessagesForPhoneNumber($this->userId, $phoneNumber); $msgCount = $this->smsMapper->countMessagesForPhoneNumber($this->userId, $phoneNumber, $configuredCountry);
if(isset($peerNumber[$fmtPN])) { if(isset($peerNumber[$fmtPN])) {
foreach($peerNumber[$fmtPN] as $cnumber) { foreach($peerNumber[$fmtPN] as $cnumber) {
$messages = $messages + $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $cnumber, $lastDate); $messages = $messages + $this->smsMapper->getAllMessagesForPhoneNumber($this->userId, $cnumber, $configuredCountry, $lastDate);
$msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber); $msgCount += $this->smsMapper->countMessagesForPhoneNumber($this->userId, $cnumber, $configuredCountry);
} }
} }
$phoneNumbers[] = PhoneNumberFormatter::format($configuredCountry, $phoneNumber); $phoneNumbers[] = PhoneNumberFormatter::format($configuredCountry, $phoneNumber);

View File

@ -102,14 +102,14 @@ class SmsMapper extends Mapper {
/* /*
get all possible SMS_adresses for a given formated phonenumber get all possible SMS_adresses for a given formated phonenumber
*/ */
public function getAllPhoneNumbersForFPN ($userId,$phoneNumber) { public function getAllPhoneNumbersForFPN ($userId, $phoneNumber, $country) {
$query = \OCP\DB::prepare('SELECT sms_address FROM ' . $query = \OCP\DB::prepare('SELECT sms_address FROM ' .
'*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_mailbox IN (?,?)'); '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_mailbox IN (?,?)');
$result = $query->execute(array($userId, 0, 1)); $result = $query->execute(array($userId, 0, 1));
$phoneList = array(); $phoneList = array();
while($row = $result->fetchRow()) { while($row = $result->fetchRow()) {
$pn = $row["sms_address"]; $pn = $row["sms_address"];
$fmtPN = PhoneNumberFormatter::format($pn); $fmtPN = PhoneNumberFormatter::format($country, $pn);
if (!isset($phoneList[$fmtPN])) { if (!isset($phoneList[$fmtPN])) {
$phoneList[$fmtPN] = array(); $phoneList[$fmtPN] = array();
} }
@ -118,7 +118,7 @@ class SmsMapper extends Mapper {
} }
$phoneList[$fmtPN][$pn] += 1; $phoneList[$fmtPN][$pn] += 1;
} }
$fpn = PhoneNumberFormatter::format($phoneNumber); $fpn = PhoneNumberFormatter::format($country, $phoneNumber);
if(isset($phoneList[$fpn])){ if(isset($phoneList[$fpn])){
return $phoneList[$fpn]; return $phoneList[$fpn];
} }
@ -127,15 +127,15 @@ class SmsMapper extends Mapper {
} }
} }
public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $minDate = 0) { public function getAllMessagesForPhoneNumber ($userId, $phoneNumber, $country, $minDate = 0) {
$phlst = $this->getAllPhoneNumbersForFPN ($userId,$phoneNumber); $phlst = $this->getAllPhoneNumbersForFPN($userId, $phoneNumber, $country);
$messageList = array(); $messageList = array();
$query = \OCP\DB::prepare('SELECT sms_date, sms_msg, sms_type FROM ' . $query = \OCP\DB::prepare('SELECT sms_date, sms_msg, sms_type FROM ' .
'*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_address = ? ' . '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_address = ? ' .
'AND sms_mailbox IN (?,?) AND sms_date > ?'); 'AND sms_mailbox IN (?,?) AND sms_date > ?');
foreach( $phlst as $pn => $val) { foreach ($phlst as $pn => $val) {
$result = $query->execute(array($userId, $pn, 0, 1, $minDate)); $result = $query->execute(array($userId, $pn, 0, 1, $minDate));
while ($row = $result->fetchRow()) { while ($row = $result->fetchRow()) {
@ -148,9 +148,9 @@ class SmsMapper extends Mapper {
return $messageList; return $messageList;
} }
public function countMessagesForPhoneNumber ($userId, $phoneNumber) { public function countMessagesForPhoneNumber ($userId, $phoneNumber, $country) {
$cnt = 0; $cnt = 0;
$phlst = $this->getAllPhoneNumbersForFPN ($userId,$phoneNumber); $phlst = $this->getAllPhoneNumbersForFPN ($userId, $phoneNumber, $country);
$query = \OCP\DB::prepare('SELECT count(sms_date) as ct FROM ' . $query = \OCP\DB::prepare('SELECT count(sms_date) as ct FROM ' .
'*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_address = ? ' . '*PREFIX*ocsms_smsdatas WHERE user_id = ? AND sms_address = ? ' .