PageSourceSearch

https://www.nelsotech.com/js/ng/ng-cart.js

js nelsotech.com collected 2026-10-08 13:22:00 UTC 9,851 bytes, 307 lines download raw bytes

1/**
2 * Error Code
3 * #COD1 - Address Or Pincode is blank during COD Chekout
4 */
5// Address List Controller
6app.controller("addressListController", [
7  "$scope",
8  "$state",
9  "$rootScope",
10  "dataService",
11  function ($scope, $state, $rootScope, dataService) {
12    $scope.mode = "";
13    $rootScope.$on("paymentModeChanged", function (e, data) {
14      $scope.mode = data.mode;
15    });
16
17    $scope.pincodeChange = function (event, pincode) {
18      $cod = false;
19      $mode = $scope.mode;
20      console.log("pincode- " + pincode);
21      if (typeof pincode == undefined || pincode == "") {
22        shownErr_(
23          "Sorry Pincode is not available of the selected address, Please edit it on My account section",
24          false,
25        );
26      } else if (event.target.nodeName == "SPAN" && $mode == "cod") {
27        courierRecord = jQuery.parseJSON(courierDbRecord);
28        accesstoken = courierRecord.delhivery_exp._accesscode;
29        shownErr_("");
30        $cod = "Y";
31        // Block for not work
32        // dataService.checkPincodeAvail(pincode).then(
33        //   function(response){
34        //     if(response.delivery_codes.length > 0) {
35        //     // if(response.data.delivery_codes.length) {
36        //       if(response.delivery_codes[0].postal_code.cod=="Y") {
37        //       // if(response.data.delivery_codes[0].postal_code.cod=="Y") {
38        //         shownErr_("");
39        //         $cod = "Y";
40        //       }
41        //       else {
42        //         shownErr_('Oops Cash On Delivery is not available at this address.');
43        //         shownSuccess("");
44        //         $cod = false;
45        //       }
46        //     }
47        //     else {
48        //       shownErr_('Oops Cash On Delivery is not available at this address.');
49        //       shownSuccess("");
50        //       $cod = false;
51        //     }
52        //   },
53        //   function(error){
54        //     shownErr_('Oops Some thing went worng.');
55        //     shownSuccess("");
56        //     $cod = false;
57        //   }
58        // );
59
60        // jQuery.ajax({
61        //   url: "http://test.delhivery.com/c/api/pin-codes/json/?token=5dbd1c87bf295abd5dc20de832e8c4ff124ebffc&filter_codes=743144%2C741222",
62        //   method: "GET",
63        //   data: "jsonp",
64        //   success: function(data) {
65        //     console.log(data);
66        //   },
67        //   error: function() {
68        //     console.log(error);
69        //   }
70        // })
71      }
72      // alert(pincode);
73    };
74  },
75]);
76
77// Checkout Controller
78app.controller("cartPlaceOrderController", [
79  "$scope",
80  "$rootScope",
81  "$state",
82  "dataService",
83  "$timeout",
84  function ($scope, $rootScope, $state, dataService, $timeout) {
85    $scope.mode = "none";
86    $triggerCodBtn = false;
87
88    $scope.placeOrder = function () {
89      jQuery(".nl-payment-ul").removeClass("nl-theme-active");
90      if ($scope.mode == "none" || $scope.mode == "") {
91        $timeout(function () {
92          jQuery(".nl-payment-ul").addClass("nl-theme-active");
93        }, 2);
94
95        shownErr_("Please Select Payment Mode", false);
96        return false;
97      } else {
98        $savedAddress = $scope.savedAddress();
99        console.log("::debug-here::", $savedAddress);
100        if ($savedAddress == false) {
101          // console.log("savedAddress- "+$savedAddress);
102          // return false;
103          jQuery("#addNew").trigger("click");
104        } else {
105          console.log("::debug-checkCanOrder::", $scope.mode, $savedAddress);
106          dataService.checkCanOrder($scope.mode, $savedAddress).then(
107            function (res) {
108              console.log(res);
109              const data = JSON.parse(res);
110              if (data.response == "e") {
111                shownErr_(data.message, false);
112                return false;
113              } else {
114                if ($scope.mode == "prepaid")
115                  jQuery("#placeOrderButton").trigger("click");
116                else {
117                  $triggerCodBtn = true;
118                  $scope.calcPayment();
119                }
120              }
121            },
122            function (error) {
123              console.log(error);
124            },
125          );
126        }
127      }
128    };
129
130    /**
131     * savedAddress()
132     * This function check for if the
133     * user has saved addreess or not
134     */
135    $scope.savedAddress = function () {
136      const shadowRoot = $scope.shadowRoot();
137      let addressList = "";
138      if (shadowRoot)
139        addressList = shadowRoot.querySelectorAll("#nl-bag-address-ul li");
140      else addressList = document.querySelectorAll("#nl-bag-address-ul li");
141      $active_pincode = "";
142
143      for (const li of addressList) {
144        const label = li.querySelector("label");
145        if (label && label.classList.contains("active")) {
146          $active_pincode = li.dataset.pincode;
147          break;
148        }
149      }
150      if (typeof $active_pincode == undefined || $active_pincode == "")
151        return false;
152      else return $active_pincode;
153    };
154
155    /**
156     * savedAddress()
157     * To get the DOM element
158     * from shadow root
159     */
160
161    $scope.shadowRoot = function () {
162      const host = document.getElementById("react-widget");
163      const shadowRoot = host ? host.shadowRoot : null;
164      return shadowRoot || null;
165    };
166
167    $scope.calcPayment = function () {
168      $mode = $scope.mode;
169      $active_pincode = "";
170      $cod = "";
171      var addressList = jQuery("#nl-bag-address-ul").find("li");
172      addressList.each(function (i, li) {
173        _pli = jQuery(li);
174        if (jQuery(li).find("label").hasClass("active")) {
175          // console.log(_pli);
176          $active_pincode = jQuery(_pli).data("pincode");
177        }
178      });
179
180      // if(typeof $active_pincode == undefined || $active_pincode == '') {
181      //   shownErr_('Sorry Pincode is not given for the selected address. Please edit address on My account section', false);
182      // }
183      // Getting the pincode available by the api
184      // else if($mode == 'cod') {
185      if ($mode == "cod") {
186        showLoader();
187        $cod = "Y";
188        // block for not work
189        // dataService.checkPincodeAvail($active_pincode).then(function(response){
190        //   // console.log(response);
191        //   if(response.delivery_codes.length > 0) {
192        //     if(response.delivery_codes[0].postal_code.cod=="Y") {
193        //       $cod = 'Y';
194        //     }
195        //     else {
196        //       $cod = 'N';
197        //     }
198        //   }
199        //   else {
200        //     $cod = 'N';
201        //   }
202        codAvailCrossCheck($cod, $mode);
203        hideLoader();
204        // },
205        // function(response){
206        //   $cod = 'N';
207        //   codAvailCrossCheck($cod, $mode);
208        //   hideLoader();
209        // });
210      } else {
211        codAvailCrossCheck("N", "prepaid");
212      }
213    };
214
215    $rootScope.$on("paymentModeChanged", function (e, data) {
216      $scope.mode = data.mode;
217      jQuery(".nl-payment-ul").removeClass("nl-theme-active");
218      if ($scope.mode == "prepaid") {
219        if (jQuery("#carttable tbody tr").length) {
220          // jQuery('#carttable tbody tr:first-child .nl-qty-adjust input[name=qty]').trigger('keyup');
221        }
222      } else {
223        $triggerCodBtn = false;
224        $timeout(function () {
225          $scope.calcPayment();
226        }, 0);
227      }
228    });
229
230    $scope.codPayment = function () {
231      $active_pincode = $address_id = "";
232      // Active Pincode
233      var addressList = jQuery("#nl-bag-address-ul").find("li");
234      const shadowRoot = $scope.shadowRoot();
235      if (shadowRoot) {
236        addressList = shadowRoot.querySelectorAll("#nl-bag-address-ul li");
237        if (addressList.length > 0) {
238          $address_id = addressList[0].dataset.addressId;
239          $active_pincode = addressList[0].dataset.pincode;
240        }
241      } else {
242        addressList.each(function (i, li) {
243          _pli = jQuery(li);
244          if (jQuery(li).find("label").hasClass("active")) {
245            $active_pincode = jQuery(_pli).data("pincode");
246            $address_id = jQuery(li).data("address-id");
247          }
248        });
249      }
250
251      if ($active_pincode == "" || $address_id == "") {
252        shownErr_("Oops! some error occured. Error CODE #COD1");
253      } else {
254        showLoader();
255        $triggerCodBtn = false;
256        dataService.getCartInfo($address_id).then(
257          function (data) {
258            data = jQuery.parseJSON(data);
259            if (data.response == "e") {
260              if (data.addon.shown == true) shownErr_(data.message);
261            } else {
262              $scope.$emit("codPopUpListener", {
263                carttotal: data.message.total,
264                phone_cod: data.message.phone,
265                email_cod: data.message.email,
266                address_id_cod: $address_id,
267              });
268              jQuery("#codModal").modal("show");
269            }
270            hideLoader();
271          },
272          function (error) {
273            console.log(error);
274            hideLoader();
275          },
276        );
277      }
278    };
279
280    function codAvailCrossCheck($cod, $mode) {
281      // console.log($cod, $mode);
282      if ($mode == "") {
283      } else {
284        if ($cod != "Y" && $mode == "cod") {
285          shownErr_("Cod is not available in this pincode", false);
286        } else {
287          if ($triggerCodBtn == true) $scope.codPayment();
288        }
289      }
290    }
291  },
292]);
293
294function preparePayment() {
295  var addressList = jQuery("#nl-bag-address-ul").find("li");
296  jQuery("#calcPayment").trigger("click");
297  // addressList.each(function(i, li){
298  //   _pli = jQuery(li).attr('id');
299  //   if(jQuery(li).find('label').hasClass('active')){
300  //     // console.log(jQuery(this));
301  //     console.log(_pli);
302  //     jQuery('#nl-bag-address1').trigger('click');
303  //     // jQuery(_pli).trigger('click');
304  //   }
305  //   // (jQuery(li))
306  // });
307}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.