source: SMSSender/gateways/Post/business/account_costs.cpp @ 376:0d8179eea17f

separation-frontend-backend
Last change on this file since 376:0d8179eea17f was 376:0d8179eea17f, checked in by Sämy Zehnder <saemy.zehnder@…>, 5 years ago
  • Separates backend and frontend code in the Post gateway.
File size: 1.6 KB
Line 
1/*
2  Swiss Post gateway plugin - The smssender plugin for the Swiss Post platform.
3  Copyright (C) 2011-2014, gorrión. See http://smssender.gorrion.ch
4
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  GNU General Public License for more details.
14
15  You should have received a copy of the GNU General Public License
16  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*/
18#include "account.h"
19
20#include "math.h"
21
22namespace Post {
23
24int Account::fragmentSize() const {
25    return longSMSLength();
26}
27
28int Account::costsForText(const QString &text) const {
29    QList<QString> longSMSList = divideMessage(text);
30    if (longSMSList.size() == 0) {
31        return 0;
32    }
33
34    // All full long-sms cost 3 short-sms
35    int numShortSMSInLongSMS = 3;
36    int count = (longSMSList.size() - 1) * numShortSMSInLongSMS;
37
38    /* Last longSMS:
39     * 1. sms = 160 chars
40     * 2. sms = 153 chars
41     * 3. sms = 122 chars */
42    QString lastSMS = longSMSList.last();
43
44    ++count; // 1.sms
45    if (lastSMS.length()  > 160) {
46        count += ceil((lastSMS.length() - 160) / (double)153);
47    }
48
49    return count;
50}
51
52
53int Account::longSMSLength() const {
54    return m_longSMSLength;
55}
56void Account::setLongSMSLength(int longSMSLength) {
57    m_longSMSLength = longSMSLength;
58}
59
60}
Note: See TracBrowser for help on using the repository browser.