{"version":3,"file":"7879.55f05698f9ceb5153ebf.js","mappings":"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","sources":["webpack://shipley-du-lib/./common/js/legacy/custPortal/cw/cw.widget.budgetConfig.js"],"sourcesContent":["(function (cw, $, undefined) {\r\n  \"use strict\";\r\n  $.extend(true, cw, {\r\n    widget: {\r\n      budgetConfig: {\r\n        args: null,\r\n        init: function (\r\n          s1AcctId,\r\n          deliveryPointMap,\r\n          billingAccountBalance,\r\n          creditStatusOk,\r\n          customerTypeId,\r\n          successCallback\r\n        ) {\r\n          var self = this;\r\n          if (customerTypeId !== cw.appEnum.CustomerClass.Residential) {\r\n            cw.modal.Alert({\r\n              title: \"Budget Options\",\r\n              text: \"Please contact your sales rep or customer care to discuss different payment options.\",\r\n            });\r\n          } else if ((!billingAccountBalance && billingAccountBalance > 0) || !creditStatusOk) {\r\n            cw.modal.Alert({\r\n              title: \"Account Balance\",\r\n              text: \"Your account must be current with no outstanding balance to go on our budget plan.\",\r\n            });\r\n          } else {\r\n            var dpMap = $.extend({}, deliveryPointMap);\r\n            dpMap.ShipleyOneNumberId = s1AcctId;\r\n            cw.loadingIndicator.start();\r\n            cw.webservices.getJson(\"S1AccountManager/get-budget-options\", dpMap, function (budgetOptsResp) {\r\n              if (budgetOptsResp.BudgetProducts.length < 1) {\r\n                cw.loadingIndicator.stop();\r\n                cw.modal.Alert({\r\n                  title: \"Budget Options\",\r\n                  text: \"Please contact your sales rep or customer care to discuss different payment options.\",\r\n                });\r\n              } else {\r\n                //nest budget products in their correct delivery point\r\n                budgetOptsResp.BudgetProducts.forEach(function (x) {\r\n                  var dp = budgetOptsResp.DeliveryPoints.filterSingle(function (d) {\r\n                    return d.RemoteSystemMap.some(function (m) {\r\n                      return (\r\n                        m.RemoteSystemDeliveryPointId === x.DeliveryPointMap.RemoteSystemDeliveryPointId &&\r\n                        m.RemoteSystemId === x.DeliveryPointMap.RemoteSystemId &&\r\n                        m.RemoteSystemAccountId === x.DeliveryPointMap.RemoteSystemAccountId &&\r\n                        m.RemoteSystemAccountNumber === x.DeliveryPointMap.RemoteSystemAccountNumber\r\n                      );\r\n                    });\r\n                  });\r\n\r\n                  if (dp) {\r\n                    if (typeof dp.BudgetProducts === \"undefined\") {\r\n                      dp.BudgetProducts = [];\r\n                    }\r\n\r\n                    switch (x.ProductCode) {\r\n                      case cw.appEnum.ProductCode.HeatingOil:\r\n                      case cw.appEnum.ProductCode.Propane:\r\n                        x.PriceFormatted =\r\n                          \"$\" + x.Price.formatMoney(4) + ' <span class=\"fs-xs-11\">/gallon</span>';\r\n                        x.MonthlyCost = \"--\";\r\n                        break;\r\n                      case cw.appEnum.ProductCode.ServiceProduct:\r\n                        switch (dp.RemoteSystemMap[0].RemoteSystemId) {\r\n                          case cw.appEnum.S1RemoteSystem.As400:\r\n                            x.PriceFormatted =\r\n                              \"$\" + x.Price.formatMoney(2) + ' <span class=\"fs-xs-11\">/year</span>';\r\n                            x.MonthlyCost = \"$\" + (x.Price / 12).formatMoney(2);\r\n                            break;\r\n                          case cw.appEnum.S1RemoteSystem.Cargas:\r\n                            if (\r\n                              x.PlanPriceAmount !== null &&\r\n                              parseInt(x.PlanPriceAmount) > 0 &&\r\n                              !x.IsMonthlyCalc\r\n                            ) {\r\n                              //Onetime price\r\n                              x.PriceFormatted =\r\n                                \"$\" +\r\n                                parseInt(x.PlanPriceAmount).formatMoney(2) +\r\n                                ' <span class=\"fs-xs-11\">/year</span>';\r\n                              x.MonthlyCost = \"$\" + (parseInt(x.PlanPriceAmount) / 12).formatMoney(2);\r\n                            } else {\r\n                              //monthly interval\r\n                              x.PriceFormatted =\r\n                                \"$\" + x.Price.formatMoney(2) + ' <span class=\"fs-xs-11\">/month</span>';\r\n                              x.MonthlyCost = \"$\" + x.Price.formatMoney(2);\r\n                            }\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n\r\n                    dp.BudgetProducts.push(x);\r\n                  }\r\n                });\r\n\r\n                var prodDps = budgetOptsResp.DeliveryPoints.filter(function (x) {\r\n                  return typeof x.BudgetProducts !== \"undefined\" && x.BudgetProducts.length > 0;\r\n                });\r\n\r\n                prodDps = prodDps.map(function (c) {\r\n                  c.RemoteSystemMapObj = JSON.stringify(c.RemoteSystemMap);\r\n                  return c;\r\n                });\r\n\r\n                var modalData = {\r\n                  RemoteSystemMap: dpMap,\r\n                  DeliveryPoints: prodDps,\r\n                  hasMultipleDeliveryPoints: prodDps.length > 1,\r\n                  hasOil:\r\n                    budgetOptsResp.BudgetProducts.filter(function (p) {\r\n                      return p.ProductCode === cw.appEnum.ProductCode.HeatingOil;\r\n                    }).length > 0,\r\n                  hasPropane:\r\n                    budgetOptsResp.BudgetProducts.filter(function (p) {\r\n                      return p.ProductCode === cw.appEnum.ProductCode.Propane;\r\n                    }).length > 0,\r\n                  ServiceContracts: budgetOptsResp.BudgetProducts.filter(function (p) {\r\n                    return p.ProductCode === cw.appEnum.ProductCode.ServiceProduct;\r\n                  }),\r\n                };\r\n                cw.templating.GetRenderedTemplateHTML(\r\n                  \"BudgetCalculator.html\",\r\n                  cw.appEnum.TemplateType.CwWidget,\r\n                  modalData,\r\n                  function (renderedTmpl) {\r\n                    cw.modal.Open({\r\n                      title:\r\n                        \"Configure Budget - Billing Account #\" + deliveryPointMap.RemoteSystemAccountNumber,\r\n                      modalBody: $(renderedTmpl),\r\n                      data: { modalData: modalData, successCallback: successCallback },\r\n                      buttons: [\r\n                        {\r\n                          label: '<i class=\"fa fa-times\"></i> Cancel',\r\n                          cssClass: \"btn-white btn-xs-block\",\r\n                          action: function (dialogRef) {\r\n                            dialogRef.close();\r\n                          },\r\n                        },\r\n                        {\r\n                          label: '<i class=\"fa fa-plus\"></i> Add Budget',\r\n                          cssClass: \"btn-primary btn-xs-block disabled btn-add-budget\",\r\n                          action: function (mr) {\r\n                            var $totalEl = mr.$modalBody.find(\".total-monthly-payment\");\r\n                            var successCallback = mr.getData(\"successCallback\");\r\n                            var usageEntered =\r\n                              mr.$modalBody.find(\"input[name='know-annual-usage']:checked\").val() === \"yes\";\r\n                            var mData = mr.getData(\"modalData\");\r\n                            var budgetProds = [];\r\n                            if (usageEntered) {\r\n                              mr.$modalBody.find(\".budget-product\").each(function () {\r\n                                var $me = $(this);\r\n                                budgetProds.push({\r\n                                  ProductCode: $me.data(\"productCode\"),\r\n                                  Price: $me.data(\"price\"),\r\n                                  DeliveryPointMap: $me.data(\"remoteSystemMap\")[0],\r\n                                  AnnualUsage: $.isNumeric($me.val()) ? parseFloat($me.val()) : null,\r\n                                });\r\n                              });\r\n                            } else {\r\n                              //handle service contracts when estimating oil/propane\r\n                              mr.$modalBody.find(\".budget-product\").each(function () {\r\n                                var $me = $(this);\r\n                                budgetProds.push({\r\n                                  ProductCode: $me.data(\"productCode\"),\r\n                                  Price: $me.data(\"price\"),\r\n                                  DeliveryPointMap: $me.data(\"remoteSystemMap\")[0],\r\n                                  AnnualUsage: $.isNumeric($me.val()) ? parseFloat($me.val()) : null,\r\n                                });\r\n                              });\r\n                            }\r\n\r\n                            cw.loadingIndicator.start();\r\n                            cw.webservices.getJson(\r\n                              \"S1AccountManager/submit-budget-request\",\r\n                              {\r\n                                RemoteSystemMap: mData.RemoteSystemMap,\r\n                                BudgetProducts: budgetProds,\r\n                                PropaneRooms:\r\n                                  !usageEntered && mData.hasPropane\r\n                                    ? parseInt(mr.$modalBody.find(\".propane-room-count\").val())\r\n                                    : null,\r\n                                OilRooms:\r\n                                  !usageEntered && mData.hasOil\r\n                                    ? parseInt(mr.$modalBody.find(\".oil-room-count\").val())\r\n                                    : null,\r\n                                OilPrimaryHeating:\r\n                                  !usageEntered && mData.hasOil\r\n                                    ? mr.$modalBody.find('input[name=\"oil-primay-heat\"]:checked').val(\"yes\")\r\n                                      ? true\r\n                                      : false\r\n                                    : null,\r\n                                PropanePrimaryHeating:\r\n                                  !usageEntered && mData.hasPropane\r\n                                    ? mr.$modalBody\r\n                                        .find('input[name=\"propane-primay-heat\"]:checked')\r\n                                        .val(\"yes\")\r\n                                      ? true\r\n                                      : false\r\n                                    : null,\r\n                                EstimatedMonthlyBudgetAmount: $.isNumeric($totalEl.html().replace(\"$\", \"\"))\r\n                                  ? parseFloat($totalEl.html().replace(\"$\", \"\"))\r\n                                  : null,\r\n                                AnnualUsageEntered: usageEntered,\r\n                              },\r\n                              function (budgetSetupResp) {\r\n                                if (budgetSetupResp) {\r\n                                  cw.modal.Alert({\r\n                                    title: \"Success\",\r\n                                    text: \"Your budget is being reviewed by our customer service staff and should update your budget status shortly.\",\r\n                                  });\r\n                                  if (typeof successCallback === \"function\") {\r\n                                    successCallback();\r\n                                  }\r\n                                  mr.close();\r\n                                } else {\r\n                                  cw.modal.Alert({\r\n                                    title: \"Error\",\r\n                                    text: \"There was an error processing your budget request.  Please contact customer service for further details.\",\r\n                                  });\r\n                                }\r\n\r\n                                cw.loadingIndicator.stop();\r\n                                //mr.close();\r\n                              }\r\n                            );\r\n                          },\r\n                        },\r\n                      ],\r\n                      onShownCallback: function (mr) {\r\n                        mr.$modalFooter\r\n                          .find(\".bootstrap-dialog-footer-buttons\")\r\n                          .prepend(\r\n                            '<div class=\"pull-left fs-xs-12 pt15 pb15\"><i class=\"fa fa-star shipley-blue required\" title=\"Required Field\" aria-hidden=\"true\"></i>All Fields Required</div>'\r\n                          );\r\n                        cw.loadingIndicator.stop();\r\n                        var $okBtn = mr.$modalFooter.find(\".btn-add-budget\");\r\n                        var mData = mr.getData(\"modalData\");\r\n                        var $totalEl = mr.$modalBody.find(\".total-monthly-payment\");\r\n\r\n                        var $oilProjectedGals = mr.$modalBody.find(\".projected-oil-gallons\");\r\n                        var $propaneProjectedGals = mr.$modalBody.find(\".projected-propane-gallons\");\r\n\r\n                        mr.$modalBody.find(\"input[name='know-annual-usage']\").on(\"change\", function (e) {\r\n                          var $me = mr.$modalBody.find(\"input[name='know-annual-usage']:checked\");\r\n                          var $estimateInput = mr.$modalBody.find(\".annual-usage-estimate\");\r\n                          var $annualInput = mr.$modalBody.find(\".annual-usage-input-wrapper\");\r\n                          if ($me.val() === \"yes\") {\r\n                            $estimateInput.addClass(\"hidden\");\r\n                            $annualInput.removeClass(\"hidden\");\r\n                          } else {\r\n                            $annualInput.addClass(\"hidden\");\r\n                            $estimateInput.removeClass(\"hidden\");\r\n                          }\r\n                        });\r\n\r\n                        var oilProds = budgetOptsResp.BudgetProducts.filter(function (p) {\r\n                          return p.ProductCode === cw.appEnum.ProductCode.HeatingOil;\r\n                        });\r\n                        var propaneProds = budgetOptsResp.BudgetProducts.filter(function (p) {\r\n                          return p.ProductCode === cw.appEnum.ProductCode.Propane;\r\n                        });\r\n                        var oilAvgPrice = 0;\r\n                        var propaneAvgPrice = 0;\r\n                        var i;\r\n                        var sum = 0;\r\n                        if (oilProds.length > 0) {\r\n                          for (i = 0; i < oilProds.length; i++) {\r\n                            sum += oilProds[i].Price;\r\n                          }\r\n\r\n                          oilAvgPrice = sum / oilProds.length;\r\n                        }\r\n\r\n                        if (propaneProds.length > 0) {\r\n                          sum = 0;\r\n                          for (i = 0; i < propaneProds.length; i++) {\r\n                            sum += propaneProds[i].Price;\r\n                          }\r\n\r\n                          propaneAvgPrice = sum / propaneProds.length;\r\n                        }\r\n\r\n                        mr.$modalBody.find(\".estimate-input\").on(\"change keyup\", function (e) {\r\n                          var isOilValid = true;\r\n                          var isPropaneValid = true;\r\n                          var oilGallons = 0;\r\n                          var propaneGallons = 0;\r\n                          var total = 0;\r\n                          if (mData.hasOil) {\r\n                            if (!$.isNumeric(mr.$modalBody.find(\".oil-room-count\").val())) {\r\n                              isOilValid = false;\r\n                            }\r\n\r\n                            if (mr.$modalBody.find('input[name=\"oil-primay-heat\"]:checked').length < 1) {\r\n                              isOilValid = false;\r\n                            }\r\n\r\n                            if (isOilValid) {\r\n                              var oilRooms = parseInt(mr.$modalBody.find(\".oil-room-count\").val());\r\n                              var oilPrimaryHeat =\r\n                                mr.$modalBody.find('input[name=\"oil-primay-heat\"]:checked').val() === \"yes\";\r\n                              oilGallons = oilRooms * (oilPrimaryHeat ? 200 : 150);\r\n                              $oilProjectedGals.html(oilGallons);\r\n                              total += oilAvgPrice * oilGallons;\r\n                            } else {\r\n                              $oilProjectedGals.html(\"--\");\r\n                            }\r\n                          }\r\n\r\n                          if (mData.hasPropane) {\r\n                            if (!$.isNumeric(mr.$modalBody.find(\".propane-room-count\").val())) {\r\n                              isPropaneValid = false;\r\n                            }\r\n\r\n                            if (mr.$modalBody.find('input[name=\"propane-primay-heat\"]:checked').length < 1) {\r\n                              isPropaneValid = false;\r\n                            }\r\n\r\n                            if (isPropaneValid) {\r\n                              var propaneRooms = parseInt(mr.$modalBody.find(\".propane-room-count\").val());\r\n                              var propanePrimaryHeat =\r\n                                mr.$modalBody.find('input[name=\"propane-primay-heat\"]:checked').val() ===\r\n                                \"yes\";\r\n                              propaneGallons = propaneRooms * (propanePrimaryHeat ? 200 : 150);\r\n                              $propaneProjectedGals.html(propaneGallons);\r\n                              total += propaneAvgPrice * propaneGallons;\r\n                            } else {\r\n                              $propaneProjectedGals.html(\"--\");\r\n                            }\r\n                          }\r\n\r\n                          //service contracts\r\n                          mr.$modalBody.find(\".service-contract-wrapper .yearly-price\").each(function () {\r\n                            var $me = $(this);\r\n                            var contractPrice = $.isNumeric($me.html().replace(\"$\", \"\"))\r\n                              ? parseFloat($me.html().replace(\"$\", \"\"))\r\n                              : null;\r\n                            if (contractPrice) {\r\n                              total += contractPrice;\r\n                            }\r\n                          });\r\n\r\n                          if (\r\n                            (!mData.hasOil || (mData.hasOil && isOilValid)) &&\r\n                            (!mData.hasPropane || (mData.hasPropane && isPropaneValid))\r\n                          ) {\r\n                            $totalEl.html(\"$\" + (total / 12).formatMoney(2));\r\n                            $okBtn.removeClass(\"disabled\");\r\n                          } else {\r\n                            $totalEl.html(\"--\");\r\n                            $okBtn.addClass(\"disabled\");\r\n                          }\r\n                        });\r\n\r\n                        mr.$modalBody.find(\".budget-product\").on(\"change keyup\", function (e) {\r\n                          var $this = $(this);\r\n                          var total = 0;\r\n                          var isValid = true;\r\n                          var dpMap = $this.data(\"remoteSystemMap\");\r\n\r\n                          mr.$modalBody.find(\".budget-item\").each(function () {\r\n                            var $me = $(this);\r\n                            var $input = $me.find(\".budget-product\");\r\n                            var $monthlyCost = $me.find(\".budget-item-monthly-cost\");\r\n                            var prodId =\r\n                              typeof $input.data(\"productCode\") !== \"undefined\"\r\n                                ? $input.data(\"productCode\")\r\n                                : $me.data(\"productCode\");\r\n                            var price = $input.data(\"price\");\r\n                            var qty = 0;\r\n\r\n                            if ($me.parent().parent().hasClass(\"annual-usage-input-wrapper\")) {\r\n                              if (dpMap[0].RemoteSystemId === cw.appEnum.S1RemoteSystem.Cargas) {\r\n                                if ($input.hasClass(\"hidden\") && !$.isNumeric($input.val())) {\r\n                                  qty = $monthlyCost.text().replace(\"$\", \"\");\r\n                                } else {\r\n                                  if ($input.hasClass(\"annual-usage-ppg\")) {\r\n                                    qty = $.isNumeric($input.val()) ? parseFloat($input.val()) : 0;\r\n                                  } else if ($input.hasClass(\"monthly\")) {\r\n                                    qty = 1;\r\n                                  }\r\n                                }\r\n\r\n                                if (qty && qty > 0 && prodId !== cw.appEnum.ProductCode.ServiceProduct) {\r\n                                  var mt = price * (qty / 12);\r\n                                  total += parseFloat(mt);\r\n                                  $monthlyCost.html(\"$\" + mt.formatMoney(2));\r\n                                } else if ($input.hasClass(\"hidden\")) {\r\n                                  total += parseFloat(qty);\r\n                                  $monthlyCost.html(\"$\" + qty);\r\n                                } else {\r\n                                  isValid = false;\r\n                                  $monthlyCost.html(\"--\");\r\n                                }\r\n                              } else {\r\n                                if ($input.hasClass(\"annual-usage-ppg\")) {\r\n                                  qty = $.isNumeric($input.val()) ? parseFloat($input.val()) : 0;\r\n                                } else if ($input.hasClass(\"monthly\")) {\r\n                                  qty = 1;\r\n                                }\r\n\r\n                                if (qty && qty > 0) {\r\n                                  var mt = price * (qty / 12);\r\n                                  total += mt;\r\n                                  $monthlyCost.html(\"$\" + mt.formatMoney(2));\r\n                                } else {\r\n                                  isValid = false;\r\n                                  $monthlyCost.html(\"--\");\r\n                                }\r\n                              }\r\n                            }\r\n                          });\r\n\r\n                          if (isValid) {\r\n                            $totalEl.html(\"$\" + total.formatMoney(2));\r\n                            $okBtn.removeClass(\"disabled\");\r\n                          } else {\r\n                            $totalEl.html(\"--\");\r\n                            $okBtn.addClass(\"disabled\");\r\n                          }\r\n                        });\r\n                      },\r\n                    });\r\n                  }\r\n                );\r\n              }\r\n            });\r\n          }\r\n        },\r\n      },\r\n    },\r\n  });\r\n})((window.cw = window.cw || {}), jQuery);\r\n"],"names":["cw","$","undefined","extend","widget","budgetConfig","args","init","s1AcctId","deliveryPointMap","billingAccountBalance","creditStatusOk","customerTypeId","successCallback","appEnum","CustomerClass","Residential","modal","Alert","title","text","dpMap","ShipleyOneNumberId","loadingIndicator","start","webservices","getJson","budgetOptsResp","BudgetProducts","length","stop","forEach","x","dp","DeliveryPoints","filterSingle","d","RemoteSystemMap","some","m","RemoteSystemDeliveryPointId","DeliveryPointMap","RemoteSystemId","RemoteSystemAccountId","RemoteSystemAccountNumber","ProductCode","HeatingOil","Propane","PriceFormatted","Price","formatMoney","MonthlyCost","ServiceProduct","S1RemoteSystem","As400","Cargas","PlanPriceAmount","parseInt","IsMonthlyCalc","push","prodDps","filter","map","c","RemoteSystemMapObj","JSON","stringify","modalData","hasMultipleDeliveryPoints","hasOil","p","hasPropane","ServiceContracts","templating","GetRenderedTemplateHTML","TemplateType","CwWidget","renderedTmpl","Open","modalBody","data","buttons","label","cssClass","action","dialogRef","close","mr","$totalEl","$modalBody","find","getData","usageEntered","val","mData","budgetProds","each","$me","this","AnnualUsage","isNumeric","parseFloat","PropaneRooms","OilRooms","OilPrimaryHeating","PropanePrimaryHeating","EstimatedMonthlyBudgetAmount","html","replace","AnnualUsageEntered","budgetSetupResp","onShownCallback","$modalFooter","prepend","$okBtn","$oilProjectedGals","$propaneProjectedGals","on","e","$estimateInput","$annualInput","addClass","removeClass","i","oilProds","propaneProds","oilAvgPrice","propaneAvgPrice","sum","isOilValid","isPropaneValid","oilGallons","propaneGallons","total","contractPrice","$this","isValid","$input","$monthlyCost","prodId","price","qty","parent","hasClass","mt","window","jQuery"],"sourceRoot":""}