summaryrefslogtreecommitdiffstats
path: root/etherpad/src/etherpad/store/eepnet_checkout.js
diff options
context:
space:
mode:
Diffstat (limited to 'etherpad/src/etherpad/store/eepnet_checkout.js')
-rw-r--r--etherpad/src/etherpad/store/eepnet_checkout.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/etherpad/src/etherpad/store/eepnet_checkout.js b/etherpad/src/etherpad/store/eepnet_checkout.js
new file mode 100644
index 0000000..62137d3
--- /dev/null
+++ b/etherpad/src/etherpad/store/eepnet_checkout.js
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS-IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import("email.sendEmail");
+import("sqlbase.sqlobj");
+import("stringutils");
+
+import("etherpad.globals");
+import("etherpad.globals.*");
+import("etherpad.licensing");
+import("etherpad.utils.*");
+import("etherpad.store.checkout.*");
+
+var COST_PER_USER = 99;
+var SUPPORT_COST_PCT = 20;
+var SUPPORT_MIN_COST = 50;
+
+function getPurchaseByEmail(email) {
+ return sqlobj.selectSingle('checkout_purchase', {email: email});
+}
+
+function hasEmailAlreadyPurchased(email) {
+ var purchase = getPurchaseByEmail(email);
+ return purchase && purchase.licenseKey ? true : false;
+}
+
+function mailLostLicense(email) {
+ var purchase = getPurchaseByEmail(email);
+ if (purchase && purchase.licenseKey) {
+ sendLicenseEmail({
+ email: email,
+ ownerName: purchase.owner,
+ orgName: purchase.organization,
+ licenseKey: purchase.licenseKey
+ });
+ }
+}
+
+function _updatePurchaseWithKey(id, key) {
+ sqlobj.updateSingle('checkout_purchase', {id: id}, {licenseKey: key});
+}
+
+function updatePurchaseWithReceipt(id, text) {
+ sqlobj.updateSingle('checkout_purchase', {id: id}, {receiptEmail: text});
+}
+
+function getPurchaseByInvoiceId(id) {
+ sqlobj.selectSingle('checkout_purchase', {invoiceId: id});
+}
+
+function generateLicenseKey(cart) {
+ var licenseKey = licensing.generateNewKey(cart.ownerName, cart.orgName, null, 2, cart.userCount);
+ cart.licenseKey = licenseKey;
+ _updatePurchaseWithKey(cart.customerId, cart.licenseKey);
+ return licenseKey;
+}
+
+function receiptEmailText(cart) {
+ return renderTemplateAsString('email/eepnet_purchase_receipt.ejs', {
+ cart: cart,
+ dollars: dollars,
+ obfuscateCC: obfuscateCC
+ });
+}
+
+function licenseEmailText(userName, licenseKey) {
+ return renderTemplateAsString('email/eepnet_license_info.ejs', {
+ userName: userName,
+ licenseKey: licenseKey,
+ isEvaluation: false
+ });
+}
+
+function sendReceiptEmail(cart) {
+ var receipt = cart.receiptEmail || receiptEmailText(cart);
+
+ salesEmail(cart.email, "sales@pad.spline.inf.fu-berlin.de",
+ "EtherPad: Receipt for "+cart.ownerName+" ("+cart.orgName+")",
+ {}, receipt);
+}
+
+function sendLicenseEmail(cart) {
+ var licenseEmail = licenseEmailText(cart.ownerName, cart.licenseKey);
+
+ salesEmail(cart.email, "sales@pad.spline.inf.fu-berlin.de",
+ "EtherPad: License Key for "+cart.ownerName+" ("+cart.orgName+")",
+ {}, licenseEmail);
+} \ No newline at end of file