Renewal URL Generator Beta

Adds a button to service autopilot to automatically generate renewal URLs

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Renewal URL Generator Beta
// @namespace    http://tampermonkey.net/
// @version      3.5
// @description  Adds a button to service autopilot to automatically generate renewal URLs
// @author       Tyler
// @match        https://my.serviceautopilot.com/ClientView.aspx?*
// @require http://code.jquery.com/jquery-latest.js
// @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js
// ==/UserScript==

(function() {
    var $ = window.jQuery;
    'use strict';
    $(document).arrive("#edSaveBtn", function() {
        function dateConvert(inputdate) {
            if (inputdate) {
                var dateParts = inputdate.toDateString().split(" ");
                if (dateParts[2] == "15") {
                    dateParts[2] = "Late ";
                } else {
                    dateParts[2] = "";
                }
                return dateParts[2] + dateParts[1] + " " + dateParts[3]
            } else {
                return ""
            }
        }
        function addMonths(date, months) {
            var d = date.getDate();
            date.setMonth(date.getMonth() + +months);
            if (date.getDate() != d) {
                date.setDate(0);
            }
            return date;
        }
        $("#editorOverlayDomId").append("Enter New Price: <input id='priceInput' type='text' width='5' /><br><button id='URLGeneration' type='button'>Generate Renewal URL</button><br><button id='genericGeneration' type='button'>Generate Quarterly Generic URL</button>");
        $("#priceInput").click(function(){$("#priceInput").focus()})

        $('#URLGeneration').click(function() {
            $("#edSaveBtn").remove();
            var input = $("#priceInput").val();
            var URL = [];
            var dates = [];
            var i=0
            while ($("#edDetailDate"+i).text()) {
                dates.push(new Date($("#edDetailDate"+i).text()))
                i++
            }
            dates.sort((a, b) => a - b)
            var urlString;
            var Wadd1 = encodeURIComponent($("#lblPropertyAddress").text());
            var Wcity = encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[0]);
            var Wstate = encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[1].substring(0,3));
            var Wzip = encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[1].substring(3));
            var Badd1 = encodeURIComponent($("#lblBillingAddress").text());
            var Bcity, Bstate, Bzip
            if ($("#lblBillingCityStateZip").text()) {
                Bcity = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[0]);
                Bstate = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[1].substring(0,3));
                Bzip = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[1].substring(3));
            } else {
                Bcity = encodeURIComponent($("#lblBillingAddress2").text().split(',')[0]);
                Bstate = encodeURIComponent($("#lblBillingAddress2").text().split(',')[1].substring(0,3));
                Bzip = encodeURIComponent($("#lblBillingAddress2").text().split(',')[1].substring(3));
            }
            var Pphone = encodeURIComponent($("#lblPhone1").text().slice(0, -3));
            var Pcell = encodeURIComponent($("#lblPhone2").text().slice(0, -3));
            var Phome = encodeURIComponent($("#lblPhone3").text().slice(0, -3));
            var Pother = encodeURIComponent($("#lblPhone4").text().slice(0, -3));
            var Pemail = encodeURIComponent($("#contactEmailLink").text());
            var cd1 = dateConvert(dates[0]);
            var cd2 = dateConvert(dates[1]);
            var cd3 = dateConvert(dates[2]);
            var cd4 = dateConvert(dates[3]);
            var cd5 = dateConvert(dates[4]);
            var cd6 = dateConvert(dates[5]);
            var cd7 = dateConvert(dates[6]);
            var cd8 = dateConvert(dates[7]);
            var cd9 = dateConvert(dates[8]);
            var cd10 = dateConvert(dates[9]);
            var cd11 = dateConvert(dates[10]);
            var cd12 = dateConvert(dates[11]);
            var freq = $("[id^=edDetailDate]").length-2;
            var pptcp = parseFloat((input-10)*freq).toFixed(2);
            var ppsave = parseFloat(10*freq).toFixed(2);
            var nppfpr = parseFloat(input-5).toFixed(2);
            var nppmip = parseFloat(input).toFixed(2);

            if ($("#lblCompany").text() == "AEROTECH ST. LOUIS") {
                urlString = "https://thegutterexperts.com/renewal/stl/?"
            }
            else if ($("#lblCompany").text() == "AEROTECH METRO DC") {
                urlString = "https://thegutterexperts.com/renewal/mdc/?"
            }
            else alert("error, unable to determine area")

            URL.push(
                urlString,
                "Wadd1=",Wadd1,"&",
                "Wcity=",Wcity,"&",
                "Wstate=",Wstate,"&",
                "Wzip=",Wzip,"&",
                "BAdd1=",Badd1,"&",
                "Bcity=",Bcity,"&",
                "Bstate=",Bstate,"&",
                "Bzip=",Bzip,"&",
                "Pphone=",Pphone,"&",
                "Pcell=",Pcell,"&",
                "Phome=",Phome,"&",
                "Pother=",Pother,"&",
                "Pemail=",Pemail,"&",
                "cd1=",cd1,"&",
                "cd2=",cd2,"&",
                "cd3=",cd3,"&",
                "cd4=",cd4,"&",
                "cd5=",cd5,"&",
                "cd6=",cd6,"&",
                "cd7=",cd7,"&",
                "cd8=",cd8,"&",
                "cd9=",cd9,"&",
                "cd10=",cd10,"&",
                "cd12=",cd12,"&",
                "pptcp=",pptcp,"&",
                "ppsave=",ppsave,"&",
                "nppfpr=",nppfpr,"&",
                "nppmip=",nppmip,"&",
            );
            navigator.clipboard.writeText(URL.join(""))
            alert("Renewal URL Copied to Clipboard MAKE SURE YOU HAVE SELECTED CORRECT DATES!");
        });

        $('#genericGeneration').click(function() {
            var input = $("#priceInput").val();
            var Bcity, Bstate, Bzip
            if ($("#lblBillingCityStateZip").text()) {
                Bcity = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[0]);
                Bstate = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[1].substring(0,3));
                Bzip = encodeURIComponent($("#lblBillingCityStateZip").text().split(',')[1].substring(3));
            } else {
                Bcity = encodeURIComponent($("#lblBillingAddress2").text().split(',')[0]);
                Bstate = encodeURIComponent($("#lblBillingAddress2").text().split(',')[1].substring(0,3));
                Bzip = encodeURIComponent($("#lblBillingAddress2").text().split(',')[1].substring(3));
            }
            var today = new Date();
            var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);
            var cd1 = addMonths(new Date(), 0)
            var cd2 = addMonths(new Date(), 3)
            var cd3 = addMonths(new Date(), 6)
            var cd4 = addMonths(new Date(), 9)
            var freq = 4
            var pptcp = parseFloat((input-10)*4).toFixed(2);
            var ppsave = parseFloat(10*4).toFixed(2);
            var nppfpr = parseFloat(input-5).toFixed(2);
            var nppmip = parseFloat(input).toFixed(2);
            var urlString
            //if five days from today is past the end of the month, add 1 to each month
            if (today.getDate()+5 > lastDayOfMonth.getDate()) {
                cd1 = addMonths(cd1, 1)
                cd2 = addMonths(cd2, 1)
                cd3 = addMonths(cd3, 1)
                cd4 = addMonths(cd4, 1)
            }
            if ($("#lblCompany").text() == "AEROTECH ST. LOUIS") {
                urlString = "https://thegutterexperts.com/renewal/stl/?"
            }
            else if ($("#lblCompany").text() == "AEROTECH METRO DC") {
                urlString = "https://thegutterexperts.com/renewal/mdc/?"
            }
            else alert("error, unable to determine area")
            var URL = [];
            URL.push(
                urlString,
                "Wadd1=",encodeURIComponent($("#lblPropertyAddress").text()),"&",
                "Wcity=",encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[0]),"&",
                "Wstate=",encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[1].substring(0,3)),"&",
                "Wzip=",encodeURIComponent($("#lblPropertyCityStateZip").text().split(',')[1].substring(3)),"&",
                "BAdd1=",encodeURIComponent($("#lblBillingAddress").text()),"&",
                "Bcity=",Bcity,"&",
                "Bstate=",Bstate,"&",
                "Bzip=",Bzip,"&",
                "Pphone=",encodeURIComponent($("#lblPhone1").text().slice(0, -3)),"&",
                "Pcell=",encodeURIComponent($("#lblPhone2").text().slice(0, -3)),"&",
                "Phome=",encodeURIComponent($("#lblPhone3").text().slice(0, -3)),"&",
                "Pother=",encodeURIComponent($("#lblPhone4").text().slice(0, -3)),"&",
                "Pemail=",encodeURIComponent($("#contactEmailLink").text()),"&",
                "cd1=",cd1.toLocaleString('en-US', { year: 'numeric', month: 'long'}),"&",
                "cd2=",cd2.toLocaleString('en-US', { year: 'numeric', month: 'long'}),"&",
                "cd3=",cd3.toLocaleString('en-US', { year: 'numeric', month: 'long'}),"&",
                "cd4=",cd4.toLocaleString('en-US', { year: 'numeric', month: 'long'}),"&",
                "pptcp=",pptcp,"&",
                "ppsave=",ppsave,"&",
                "nppfpr=",nppfpr,"&",
                "nppmip=",nppmip,"&",
            );
            navigator.clipboard.writeText(URL.join(""))
            alert("Renewal URL Copied to Clipboard.");
        })
        $('#MailJetInfo').click(function() {
            var i=1
            while ($('#lblCustomField'+i).text().length) {
                switch($('#lblCustomField'+i).text().trim()) {
                    case "MailJet Renewal Information":
                        var mjRI = $('#lblCustomData'+i).text();
                        break;
                    case "MailJet Renewal Date Changes":
                        var mjDC = $('#lblCustomData'+i).text();
                        break;
                    case "MailJet Renewal Prepayment Amount":
                        var mjPP = $('#lblCustomData'+i).text();
                        break;
                    case "MailJet Renewal Autocharge Amount":
                        var mjAC = $('#lblCustomData'+i).text();
                        break;
                    case "MailJet Renewal Payment Method":
                        var mjPM = $('#lblCustomData'+i).text();
                        break;
                    case "MailJet Renewal Extra Information":
                        var mjEI = $('#lblCustomData'+i).text();
                        break;
                }
                i++
            }
            $('#editorOverlayDomId').append("<div id='MJInfoDiv' style='margin-top: 10%;'></div>")
            $('#MJInfoDiv').append("<p>"+mjRI.substring(mjRI.lastIndexOf("Recommended Service Months"),mjRI.lastIndexOf("PREPAY")).replace(/undefined/g,"")+"</p>")
            $('#MJInfoDiv').append("<p>"+mjRI.substring(mjRI.lastIndexOf("PREPAY"),mjRI.lastIndexOf("AUTOCHARGE"))+"<br>"+mjRI.substring(mjRI.lastIndexOf("AUTOCHARGE"),mjRI.lastIndexOf("INVOICE"))+"<br>"+mjRI.substring(mjRI.lastIndexOf("INVOICE"),mjRI.length)+"</p>")
            $('#MJInfoDiv').append("<p>Requested Date Changes: "+mjDC+"</p>");
            $('#MJInfoDiv').append("<p>Selected Payment Method: "+mjPM.split(" ")[0]+"</p>");
            if (mjPM.split(" ")[0] == "PREPAY") {
                $('#MJInfoDiv').append("<p>Prepay Amount: "+mjPP+"</p>");
            }
            else if (mjPM.split(" ")[0]=="AUTOCHARGE")
            {
                $('#MJInfoDiv').append("<p>Autocharge Amount: "+mjAC+"</p>");
            }
            $('#MJInfoDiv').append("<p>Other Information: "+mjEI+"</p>");
        })
    });
}
)
()