PageSourceSearch

https://tanomo.asia/system/app/components/NewOrder/order-confirm.controller.js?v=69

js tanomo.asia collected 2026-10-04 17:48:02 UTC 40,674 bytes, 979 lines download raw bytes

1App.controller(
2  "orderConfirm",
3  function (
4    $scope,
5    $rootScope,
6    $http,
7    ORDER_TYPE,
8    MAP_LIST,
9    PRICE_OPTION,
10    IMAGE_EXTENSION,
11    ORDER_PERIOD,
12    dbservice,
13    SERVER_URL
14  ) {
15    // import url from server
16    dbservice.url = SERVER_URL;
17    $("#uploadingAnim").css("display", "none");
18    /* Get data list from orderInput */
19    $scope.orderList = $rootScope.orderList;
20    $scope.optionList = $rootScope.optionList;
21    if ($scope.orderList == undefined) {
22      try {
23        var cid = ($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : '';
24        var pid = ($rootScope.personLogin && $rootScope.personLogin.id) ? $rootScope.personLogin.id : '';
25        var msg = "OrderConfirm | Missing orderList | customerId: " + cid + " | personId: " + pid + " | folder: " + ($rootScope.folder || '') + " | uploadedImageListLen: " + (($rootScope.uploadedImageList && JSON.parse($rootScope.uploadedImageList || '[]').length) || 0);
26        dbservice.sendChatWork(msg);
27      } catch (e) {}
28      window.location = "#NewOrder";
29    }
30    $scope.mainOrder = $rootScope.mainOrder;
31    $scope.ext = $rootScope.extension;
32    $scope.translateList = $rootScope.translateList;
33    $scope.totalOrderPrice = $rootScope.totalOrdePrice;
34    $scope.totalPrice = $rootScope.totalPrice;
35    $scope.checkQty = $rootScope.totalOptionQty;
36    $scope.extTL = $rootScope.extTL;
37    $scope.extPrice = $rootScope.extPriceList;
38    const selectPrices = $scope.extPrice.filter(ext => ext.longCap === $scope.extTL);
39    $scope.priceExt = selectPrices[0].price;
40
41    /**-------------------------------------------------
42	 * GET CUSTOMER LIST
43	 * @author Hour Syvai
44	 * @description get customerList from database
45	 ----------------------------------------------------*/
46    var id = $rootScope.customerLogin.id;
47    $scope.currentCat = $rootScope.customerLogin.priceSet;
48    dbservice.getById("customer", id, function (data) {
49      $scope.customer = data;
50    });
51    $scope.complete_email_list = [];
52    
53    /**-------------------------------------------------
54	 * GET PERSON LIST
55	 * @author Hour Syvai
56	 * @description get personList from database
57	 ----------------------------------------------------*/
58    $scope.getPersonList = function () {
59      dbservice.getItemByFieldname(
60        "person",
61        "customerId",
62        $rootScope.customerLogin.id,
63        function (personList) {
64          $scope.personList = (personList || [])
65            .reverse()
66            .filter(function (perObj) {
67              return (
68                perObj &&
69                perObj.id != undefined &&
70                perObj.id.toString().search("-") !== 0 &&
71                perObj.email &&
72                perObj.email.toString().trim().length > 0
73              );
74            });
75          angular.forEach($scope.personList, function (perObj) {
76            perObj.mailTo = "TO";
77            //check personid with person login
78            if (perObj.id == $rootScope.personLogin.id) {
79              $scope.select_email = perObj;
80            }
81          });
82
83          if ($scope.select_email) {
84            $scope.complete_email_list.push($scope.select_email);
85            $scope.checkEmail = $scope.complete_email_list[0];
86          }
87        }
88      );
89    };
90
91    $scope.getPersonList();
92
93    $scope.appendEmail = function () {
94      $scope.copyselectEmail = angular.copy($scope.select_email);
95      $scope.complete_email_list.push($scope.copyselectEmail);
96    };
97
98    // Click Button to remove data from complete_email_list
99    $scope.removeEmail = function (index) {
100      $scope.complete_email_list.splice(index, 1);
101    };
102
103    // select "TO" or "CC" for send email
104    $scope.selectTo = "TO";
105    $scope.mailtoCCList = [];
106    $scope.emailsendList = function (mailto, selectEmail, index) {
107      $scope.complete_email_list[index].mailTo = mailto;
108    };
109
110    $scope.verifyUploadedFiles = function (callback) {
111      var folder = $rootScope.folder || "";
112      if (!folder) {
113        callback(false, []);
114        return;
115      }
116      $http({
117        url: SERVER_URL + "GetFileListFromOrderDirTanomo?dirName=" + encodeURIComponent(folder) + "&v=" + Date.now(),
118        method: "get",
119      })
120        .success(function (data) {
121          var fileArray = data.ImageListTmp || data || [];
122          var validFiles = fileArray.filter(function(name) {
123            return name && name.search("remove/") !== 0;
124          });
125          callback(validFiles.length > 0, validFiles);
126        })
127        .error(function (error) {
128          try {
129            dbservice.sendMessageToTelegram("verifyUploadedFiles", folder + " || order-confirm.controller.js", error);
130          } catch (e) {}
131          callback(false, []);
132        });
133    };
134
135    // select to change complete_email_list
136    $scope.displayList = function (person, index) {
137      person.mailTo = $scope.complete_email_list[index].mailTo;
138      $scope.complete_email_list[index] = angular.copy(person);
139    };
140
141    /**--------------------------------------------------
142		 * ADD MAIN ORDER
143		 * @author Saly Sakey
144		 * @description Add Main Order to database
145		 ---------------------------------------------------*/
146    $scope.buttonClicked = $rootScope.isOrderSubmitting || false;
147    $scope.emailSend = [];
148    $scope.addMainOrder = function () {
149      $("#uploadingAnim").css("display", "inline");
150      if (
151        $("#agreement").prop("checked") == true &&
152        $("#agree1").prop("checked") &&
153        $("#agree2").prop("checked") &&
154        $("#agree3").prop("checked")
155      ) {
156        $("#uploadingAnim").css("display", "inline");
157        if ($scope.buttonClicked == false) {
158          $rootScope.isOrderSubmitting = true;
159          var qty = 0;
160          // sum qty
161          angular.forEach($scope.orderList, function (item) {
162            if (item.qty != undefined) {
163              qty += Number(item.qty);
164            }
165          });
166          if (qty === 0 || isNaN($scope.totalOrderPrice) || $scope.totalOrderPrice === undefined) {
167            try {
168              var cid2 = ($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : '';
169              var pid2 = ($rootScope.personLogin && $rootScope.personLogin.id) ? $rootScope.personLogin.id : '';
170              var msg2 = "OrderConfirm | Suspicious totals | customerId: " + cid2 + " | personId: " + pid2 + " | folder: " + ($rootScope.folder || '') + " | computedQty: " + qty + " | totalOrderPrice: " + ($scope.totalOrderPrice || 'undefined') + " | totalPrice: " + ($scope.totalPrice || 'undefined') + " | orderListLen: " + ($scope.orderList ? $scope.orderList.length : 0) + " | optionListLen: " + ($scope.optionList ? $scope.optionList.length : 0);
171              dbservice.sendChatWork(msg2);
172            } catch (e) {}
173          }
174          //check email send to many client
175          $scope.maitoList = [];
176          $scope.mailCCList = [];
177          var emailSize = 0;
178          angular.forEach($scope.complete_email_list, function (emailSend) {
179            emailSize++;
180            //"TO_1088", CC_1089
181            $scope.emailSend.push(emailSend.mailTo + "_" + emailSend.id);
182            if (emailSend.mailTo == "CC") {
183              $scope.mailCCList.push(emailSend.email);
184            } else {
185              $scope.maitoList.push(emailSend.email);
186            }
187          });
188
189          $scope.mainOrder.followTN = $scope.customer.followTanomo == 1 ? 1 : 0;
190          $scope.mainOrder.submitEmail = $scope.emailSend.toString();
191          //check emailSize with email list before add main order
192          if (emailSize == $scope.complete_email_list.length) {
193            if ($scope.maitoList.length === 0) {
194              $scope.mainOrder.submitEmail =
195                "TO_" +
196                $scope.select_email.id +
197                "," +
198                $scope.mainOrder.submitEmail;
199              $scope.maitoList.push($scope.select_email.email);
200            }
201            // add mainorder
202            switch ($scope.mainOrder.period) {
203              case "1週間(案内図のみ)":
204              case "1週間":
205                $scope.periods = "1w";
206                break;
207              case "24時間タイプ":
208              case "24h":
209                $scope.periods = "24h";
210                break;
211              case "48時間タイプ":
212              case "48h":
213                $scope.periods = "48h";
214                break;
215              case "当日タイプ":
216              case "当日":
217                $scope.periods = "Today";
218                break;
219              case "friday":
220              case "Friday":
221                $scope.periods = "Friday";
222                break;
223              case "3日間":
224              case "3d":
225                $scope.periods = "3days";
226                break;
227              case "4日間":
228              case "4d":
229                $scope.periods = "4days";
230                break;
231              case "5日間":
232              case "5d":
233                $scope.periods = "5days";
234                break;
235              case "6日間":
236              case "6d":
237                $scope.periods = "6days";
238                break;
239              case "10日間":
240              case "10d":
241                $scope.periods = "10days";
242                break;
243              case "お急ぎタイプ":
244              case "お急ぎタイプ":
245                $scope.periods = "お急ぎタイプ";
246                break;
247              case "即日タイプ(別途ルールあり)":
248              case "即日タイプ":
249                $scope.periods = "即日タイプ";
250                break;
251              case "2日間":
252              case "2d":
253                $scope.periods = "2days";
254                break;
255              case "翌12時":
256              case "6h":
257                $scope.periods = "6h";
258                break;
259              case "13日間":
260              case "13d":
261                $scope.periods = "13days";
262                break;
263              case "16日間":
264              case "16d":
265                $scope.periods = "16days";
266                break;
267              default:
268                dbservice.sendMessageToTelegram("addMainOrder", $scope.select_email.id + " || order-confirm.controller.js", "Cannot generate deadline");
269                alert("Cannot generate deadline, Please contact the IT team");
270            }
271
272            // Get orderTime from server
273            $http({
274              url: SERVER_URL + "GetCurrentTimeJapanSub2H" + "?v=" + Date.now(),
275              method: "get",
276            })
277              .success(function (data, status, headers, config) {
278                var orderTime = data.currentTimeJapan;
279                var priceSet = $scope.orderList[0].smallCategory;
280                const period = $scope.periods;
281
282                // Check type user login for generate deadlin and submitDeadline
283                if (
284                  priceSet == "LG" ||
285                  priceSet == "AE" ||
286                  priceSet == "HB" ||
287                  priceSet == "TY" ||
288                  priceSet == "TY2"
289                ) {
290                  if (period == "Today") {
291                    dbservice.GetDeadlineLG(period, orderTime, function (data) {
292                      //$rootScope.active_order.deadline = data.value;
293                      $scope.deadline = data.value;
294                      dbservice.GetDeadlineLGForSubmit(
295                        period,
296                        orderTime,
297                        function (data) {
298                          //$rootScope.active_order.submitDeadline = data.value;
299                          $scope.submitDeadline = data.value;
300                          $scope.submitComfirm(orderTime);
301                        }
302                      );
303                    });
304                  } else {
305                    dbservice.getDeadline(period, orderTime, function (data) {
306                      //$rootScope.active_order.deadline = data.value;
307                      $scope.deadline = data.value;
308                      dbservice.getSubmitDeadline(
309                        period,
310                        orderTime,
311                        function (data) {
312                          //$rootScope.active_order.submitDeadline = data.value;
313                          $scope.submitDeadline = data.value;
314                          $scope.submitComfirm(orderTime);
315                        }
316                      );
317                    });
318                  }
319                } else if (priceSet == "AN") {
320                  dbservice.GetDeadlineFriday(
321                    period,
322                    orderTime,
323                    function (data) {
324                      $scope.deadline = data.value;
325                      //check for generate submitdeadline
326                      dbservice.GetDeadlineFridayForSubmit(
327                        period,
328                        orderTime,
329                        function (data) {
330                          $scope.submitDeadline = data.value;
331                          // Call funciton
332                          $scope.submitComfirm(orderTime);
333                        }
334                      );
335                    }
336                  );
337                } else if (priceSet == "AH" || priceSet == "AH2") {
338                  if (period == "1w") {
339                    dbservice.getDeadline1wWorkDay(
340                      period,
341                      orderTime,
342                      function (data) {
343                        $scope.deadline = data.value;
344
345                        //check for generate submitdeadline
346                        dbservice.getSubmitDeadline1wWorkDay(
347                          period,
348                          orderTime,
349                          function (data) {
350                            $scope.submitDeadline = data.value;
351                            // Call funciton
352                            $scope.submitComfirm(orderTime);
353                          }
354                        );
355                      }
356                    );
357                  } 
358                  else if (period == "13days") {
359                    dbservice.getDeadline13days(
360                      period,
361                      orderTime,
362                      function (data) {
363                        $scope.deadline = data.value;
364                        dbservice.getDeadline13daysForSubmit(
365                          period,
366                          orderTime,
367                          function (data) {
368                            $scope.submitDeadline = data.value;
369                            $scope.submitComfirm(orderTime);
370                          }
371                        );
372                      }
373                    );
374                  } 
375                  else if (period == "16days") {
376                    dbservice.getDeadline16days(
377                      period,
378                      orderTime,
379                      function (data) {
380                        $scope.deadline = data.value;
381                        dbservice.getDeadline16daysForSubmit(
382                          period,
383                          orderTime,
384                          function (data) {
385                            $scope.submitDeadline = data.value;
386                            $scope.submitComfirm(orderTime);
387                          }
388                        );
389                      }
390                    );
391                  } else {
392                    dbservice.getDeadline(period, orderTime, function (data) {
393                      $scope.deadline = data.value;
394
395                      //check for generate submitdeadline
396                      dbservice.getSubmitDeadline(
397                        period,
398                        orderTime,
399                        function (data) {
400                          $scope.submitDeadline = data.value;
401                          // Call funciton
402                          $scope.submitComfirm(orderTime);
403                        }
404                      );
405                    });
406                  }
407                } else if (priceSet == "TL") {
408                  dbservice.GetDeadlineTL(period, orderTime, function (data) {
409                    $scope.deadline = data.value;
410
411                    //check for generate submitdeadline
412                    dbservice.GetDeadlineTLForSubmit(
413                      period,
414                      orderTime,
415                      function (data) {
416                        $scope.submitDeadline = data.value;
417                        // Call funciton
418                        $scope.submitComfirm(orderTime);
419                      }
420                    );
421                  });
422                } else if (priceSet === "TW") {
423                  dbservice.GetDeadlineTW(period, orderTime, function (data) {
424                    $scope.deadline = data.value;
425                    //check for generate submitdeadline
426                    dbservice.GetDeadlineTWSubmitJP(
427                      period,
428                      orderTime,
429                      function (data) {
430                        $scope.submitDeadline = data.value;
431                        // Call funciton
432                        $scope.submitComfirm(orderTime);
433                      }
434                    );
435                  });
436                } else if (
437                  (priceSet == "TN" || priceSet == "LF2" || priceSet == "EK" || priceSet == "SP") &&
438                  period == "お急ぎタイプ"
439                ) {
440                  dbservice.GetDeadlineFast(period, orderTime, function (data) {
441                    $scope.deadline = data.value;
442                    //check for generate submitdeadline
443                    dbservice.GetDeadlineFastForSubmit(
444                      period,
445                      orderTime,
446                 
446     function (data) {
447                        $scope.submitDeadline = data.value;
448                        // Call funciton
449                        $scope.submitComfirm(orderTime);
450                      }
451                    );
452                  });
453                } else if (priceSet === "NC" || priceSet === "EZ") {
454                  dbservice.GetDeadlineNC(period, orderTime, function (data) {
455                    $scope.deadline = data.value;
456                    //check for generate submitdeadline
457                    dbservice.GetDeadlineForSubmitNC(
458                      period,
459                      orderTime,
460                      function (data) {
461                        $scope.submitDeadline = data.value;
462                        // Call funciton
463                        $scope.submitComfirm(orderTime);
464                      }
465                    );
466                  });
467                } else {
468                  dbservice.getDeadline(period, orderTime, function (data) {
469                    $scope.deadline = data.value;
470
471                    //check for generate submitdeadline
472                    dbservice.getSubmitDeadline(
473                      period,
474                      orderTime,
475                      function (data) {
476                        $scope.submitDeadline = data.value;
477                        // Call funciton
478                        $scope.submitComfirm(orderTime);
479                      }
480                    );
481                  });
482                }
483              })
484              .error(function (error, status, headers, config) {
485                dbservice.sendMessageToTelegram("GetCurrentTimeJapanSub2H", $scope.select_email.id + " || order-confirm.controller.js", error);
486              });
487
488            // covert period to short text
489            switch ($scope.periods) {
490              case "Today":
491                $scope.mainOrder.period = "当日";
492                break;
493              case "3days":
494                $scope.mainOrder.period = "3d";
495                break;
496              case "4days":
497                $scope.mainOrder.period = "4d";
498                break;
499              case "5days":
500                $scope.mainOrder.period = "5d";
501                break;
502              case "6days":
503                $scope.mainOrder.period = "6d";
504                break;
505              case "10days":
506                $scope.mainOrder.period = "10d";
507                break;
508              case "2days":
509                $scope.mainOrder.period = "2d";
510                break;
511              case "13days":
512                $scope.mainOrder.period = "13d";
513                break;
514              case "16days":
515                $scope.mainOrder.period = "16d";
516                break;
517              default:
518                $scope.mainOrder.period = $scope.periods;
519            }
520
521            $scope.submitComfirm = function (orderTime) {
522              $scope.mainOrder.orderTime = orderTime;
523              $scope.mainOrder.pendingTime = orderTime;
524              $scope.mainOrder.deadline = $scope.deadline;
525              $scope.mainOrder.submitDeadline = $scope.submitDeadline;
526              $scope.mainOrder.managementId = $rootScope.managementId;
527              $scope.mainOrder.periodTL = $rootScope.periodTL;
528
529              // Structured payload for DB-friendly logging before create
530              try {
531                var ordersMin = ($scope.orderList || []).filter(function(i){ return Number(i.qty) > 0; }).map(function(i){
532                  return {
533                    orderType: i.orderType,
534                    qty: Number(i.qty),
535                    price: i.price,
536                    priceId: i.priceId,
537                    smallCategory: i.smallCategory,
538                    longCap: i.longCap,
539                    shortCap: i.shortCap
540                  };
541                });
542                var optionsMin = ($scope.optionList || []).filter(function(i){ return Number(i.qty) > 0; }).map(function(i){
543                  return {
544                    orderType: i.orderType,
545                    qty: Number(i.qty),
546                    price: i.price,
547                    priceId: i.priceId,
548                    smallCategory: i.smallCategory,
549                    longCap: i.longCap,
550                    shortCap: i.shortCap,
551                    note: i.note || ''
552                  };
553                });
554                var orderQtySum = 0, optionQtySum = 0;
555                angular.forEach(ordersMin, function(i){ orderQtySum += Number(i.qty)||0; });
556                angular.forEach(optionsMin, function(i){ optionQtySum += Number(i.qty)||0; });
557                var mainorderLog = {
558                  period: $scope.mainOrder.period,
559                  ext: $scope.mainOrder.ext || $scope.ext,
560                  customerId: ($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : '',
561                  personId: ($rootScope.personLogin && $rootScope.personLogin.id) ? $rootScope.personLogin.id : '',
562                  orderType: $scope.mainOrder.OrderType || 'new',
563                  extPriceId: ($scope.mainOrder.extPriceId || 0),
564                  orderTime: $scope.mainOrder.orderTime,
565                  deadline: $scope.mainOrder.deadline,
566                  submitDeadline: $scope.mainOrder.submitDeadline,
567                  managementId: $scope.mainOrder.managementId,
568                  periodTL: $scope.mainOrder.periodTL
569                };
570                var payloadStart = {
571                  stage: "OrderConfirmSubmit",
572                  folder: ($rootScope.folder || ''),
573                  customerId: mainorderLog.customerId,
574                  personId: mainorderLog.personId,
575                  mainorder: mainorderLog,
576                  items: { orders: ordersMin, options: optionsMin },
577                  totals: {
578                    orderQty: orderQtySum,
579                    optionQty: optionQtySum,
580                    totalOrderPrice: ($scope.totalOrderPrice || 0),
581                    totalPrice: ($scope.totalPrice || 0)
582                  },
583                  extTL: ($scope.extTL || ''),
584                  priceExt: ($scope.priceExt || 0),
585                  submitEmail: $scope.complete_email_list
586                };
587                dbservice.sendChatWork("ORDER_CONFIRM_PAYLOAD " + JSON.stringify(payloadStart));
588              } catch (e) {}
589
590              $scope.verifyUploadedFiles(function(uploadOk, uploadedFiles) {
591                if (!uploadOk) {
592                  $("#uploadingAnim").css("display", "none");
593                  $scope.buttonClicked = false;
594                  $rootScope.isOrderSubmitting = false;
595                  try {
596                    dbservice.sendChatWork("ORDER_CONFIRM_BLOCKED_NO_FILES folder=" + ($rootScope.folder || '') + " customerId=" + (($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : ''));
597                  } catch (e) {}
598                  webix.alert({
599                    ok: "確認",
600                    title: "ファイルアップロード",
601                    type: "alert-warning",
602                    text: "アップロード済みファイルが確認できません。再度アップロードしてください。"
603                  });
604                  return;
605                }
606
607              dbservice.createNewOrder($scope.mainOrder, function (order) {
608                try {
609                  var msg1 = "OrderConfirm -> submitComfirm | CREATED | orderId: " + (order && order.orderId ? order.orderId : '') + " | mainId: " + (order && order.id ? order.id : '') + " | customerId: " + (($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : '') + " | personId: " + (($rootScope.personLogin && $rootScope.personLogin.id) ? $rootScope.personLogin.id : '') + " | folder: " + ($rootScope.folder || '') + " | uploadedFiles=" + uploadedFiles.length;
610                  dbservice.sendChatWork(msg1);
611                  // Also emit a structured payload including created order identifiers
612                  var createdPayload = {
613                    stage: "OrderCreated",
614                    orderId: (order && order.orderId) || '',
615                    mainId: (order && order.id) || '',
616                    customerId: ($rootScope.customerLogin && $rootScope.customerLogin.id) ? $rootScope.customerLogin.id : '',
617                    personId: ($rootScope.personLogin && $rootScope.personLogin.id) ? $rootScope.personLogin.id : '',
618                    folder: ($rootScope.folder || ''),
619                    orderTime: ($scope.mainOrder.orderTime || ''),
620                    deadline: ($scope.mainOrder.deadline || ''),
621                    submitDeadline: ($scope.mainOrder.submitDeadline || ''),
622                    totals: {
623                      totalOrderPrice: ($scope.totalOrderPrice || 0),
624                      totalPrice: ($scope.totalPrice || 0)
625                    }
626                  };
627                  dbservice.sendChatWork("ORDER_CREATED_PAYLOAD " + JSON.stringify(createdPayload));
628                } catch (e) {}
629                $rootScope.orderId = order.orderId;
630                var mainorderId = order.id;
631                var proceedAfterFolderMove = function() {
632                  $scope.addQtyOrder(
633                    $scope.optionList.concat($scope.orderList),
634                    mainorderId,
635                    order
636                  );
637                };
638                /* rename folder on server to depend on main order id */
639                if ($rootScope.folder && $rootScope.folder.length > 0) {
640                  $scope.renameFolder($rootScope.folder, order.orderId, function (renameResponse) {
641                    if (!(renameResponse && renameResponse.success === true)) {
642                      try {
643                        dbservice.sendChatWork("ORDER_CONFIRM_RENAME_REJECTED oldName=" + $rootScope.folder + " newName=" + order.orderId + " message=" + (renameResponse && renameResponse.message ? renameResponse.message : "unknown"));
644                      } catch (e) {}
645                      $("#uploadingAnim").css("display", "none");
646                      $scope.buttonClicked = false;
647                      $rootScope.isOrderSubmitting = false;
648                      webix.alert({
649                        ok: "確認",
650                        title: "ファイル移動エラー",
651                        type: "alert-error",
652                        text: "注文ファイルの保存に失敗しました。ITチームへ連絡してください。"
653                      });
654                      return;
655                    }
656                    proceedAfterFolderMove();
657                  });
658                } else {
659                  try {
660                    dbservice.sendChatWork("ORDER_CONFIRM_RENAME_SKIPPED missing old folder for orderId " + (order && order.orderId ? order.orderId : ''));
661                  } catch (e) {}
662                  $("#uploadingAnim").css("display", "none");
663                  $scope.buttonClicked = false;
664                  $rootScope.isOrderSubmitting = false;
665                  webix.alert({
666                    ok: "確認",
667                    title: "ファイルアップロード",
668                    type: "alert-warning",
669                    text: "アップロードフォルダが確認できません。再度アップロードしてください。"
670                  });
671                }
672              });
673              });
674            };
675          } //end if
676          $scope.buttonClicked = true;
677        }
678      } else {
679        webix.alert({
680          //title: "Add Order",
681          ok: "確認",
682          title: "エラー",
683          type: "alert-warning",
684          //text:"Please check all the agreement."
685          text: "チェックボックスをご確認ください",
686        });
687        $("#uploadingAnim").css("display", "none");
688      }
689    }; /* end function*/
690    /**-------------------------------------------------------------------------------------------
691	ADD QTY ORDER
692	description: add data to table orderqty which stores order quantity of different type of order
693	parambeter:
694		- list: can be orderList or optionList
695		- mainorderId: id of mainorder that it refers to 
696	----------------------------------------------------------------------------------------------*/
697    $scope.addQtyOrder = function (list, mainorderId, order) {
698      var maxReturn = 0;
699      var lizeList = 0;
700      angular.forEach(list, function (item) {
701        if (Number(item.qty) > 0) {
702          lizeList++;
703        } // end if
704      }); // end forEach
705      angular.forEach(list, function (item) {
706        if (Number(item.qty) > 0) {
707          if (
708            item.orderType == "その他" ||
709            item.orderType == "mapOT" ||
710            item.orderType == "特別間取り" ||
711            item.orderType == "高級間取り その他" ||
712            item.orderType == "簡易間取 その他" ||
713            item.orderType == "GT間取 その他" ||
714            item.orderType == "ColorOther" ||
715            item.orderType == "B&W C.designOther" ||
716            item.orderType == "SimpleOther" ||
717            item.orderType == "Wall design" ||
718            item.orderType == "TN design" ||
719            item.orderType == "MDR other" ||
720            item.orderType == "TN Other" ||
721            item.orderType == "RB Other"
722          ) {
723            item.priceId = item.price;
724          } else {
725            item.priceId = item.priceId;
726          }
727          var type = item.orderType.search("option") == -1 ? "order" : "option";
728
729          var longCap = item.longCap;
730          var shortCap = item.shortCap;
731          longCap =
732            longCap == undefined || longCap == "" ? item.orderType : longCap;
733          shortCap =
734            shortCap == undefined || shortCap == "" ? item.orderType : shortCap;
735          var qtyOrder = {
736            orderType: item.orderType,
737            qty: Number(item.qty),
738            type: type,
739            longCap: longCap,
740            shortCap: shortCap,
741            note: item.note,
742            priceId: item.priceId,
743            price: item.price,
744            mainorderId: mainorderId, // this value will return from server after add "order"
745          };
746          dbservice.add("orderqty", qtyOrder, function (qtOrder) {
747            maxReturn++;
748            if (maxReturn == lizeList) {
749              // send email
750              /*Send email to customer */
751              var e = 0;
752              angular.forEach($scope.maitoList, function (mailTo) {
753                e++;
754                $scope.sendMail(order, mailTo, $scope.mailCCList);
755              });
756              if (e == $scope.maitoList.length) {
757                $rootScope.isOrderSubmitting = false;
758                window.location = "#OrderComplete";
759              }
760            }
761            //console.log(""+JSON.stringify(qtyOrder));
762          });
763        } // end if item.qty
764      }); // end forEach "orderList"
765    }; // end function
766
767    /**--------------------------------------------------------
768        SEND EMAIL 
769        @author Saly Sakey
770        @description Function for  remote sending email function 
771        mailTo: Target receiver
772        subject: Email subject
773        emailBody: Email content
774        callback: function that process after server response
775    --------------------------------------------------------*/
776    $scope.sendMail = function (order, mailTo, mailCC) {
777      var period = $rootScope.periodTL;
778
779      $rootScope.generateOrderContentForEmail(order, function (orderContent) {
780        //check category type of client login
781        if (
782          $rootScope.customerLogin.priceSet == "HD_Direct" ||
783          $rootScope.customerLogin.priceSet == "HD_Franchise"
784        ) {
785          var trace = [__env.emailMDR];
786          var mailCCList = trace.concat(mailCC);
787          var contactEmail = __env.emailMDR;
788        } else {
789          var trace = [__env.emailMDR];
790          var mailCCList = trace.concat(mailCC);
791          var contactEmail = __env.emailMDR;
792        }
793        if ($rootScope.customerLogin.priceSet == "BX") {
794          var total =
795            orderContent.totalPrice +
796            "円" +
797            "(税別)" +
798            "   " +
799            orderContent.total +
800            "ä»¶";
801        } else {
802          var total = orderContent.total + "ä»¶";
803        }
804        var manageId = $rootScope.managementId
805          ? "自社管理ID:" + $rootScope.managementId + "\n"
806          : "";
807        if (!$rootScope.orderId && order && order.orderId) {
808          $rootScope.orderId = order.orderId;
809        }
810        var orderId = (order && order.orderId) || $rootScope.orderId || "";
811        if (!orderId) {
812          try {
813            dbservice.sendChatWork(
814              "OrderConfirm -> sendMail | Missing orderId | customerId: " +
815                (($rootScope.customerLogin && $rootScope.customerLogin.id)
816                  ? $rootScope.customerLogin.id
817                  : "") +
818                " | personId: " +
819                (($rootScope.personLogin && $rootScope.personLogin.id)
820                  ? $rootScope.personLogin.id
821                  : "") +
822                " | folder: " +
823                ($rootScope.folder || "")
824            );
825          } catch (e) {}
826        }
827        var head = "発注ID:";
828        var subject =
829          "ご注文受領のお知らせ(" +
830          head +
831          orderId +
832          ")※ご注文内容の確定ではありません。";
833        var emailBody =
834          "" +
835          "----------------------------------------------------------------------------" +
836          "\n 本メールは、ご注文依頼の受領をお知らせするもので、" +
837          "\n 内容確定のお知らせではございません。" +
838          "\n 内容が確定しましたら、再度ご連絡を差し上げます。" +
839          "\n また、このメールは送信専用アドレスとなります。" +
840          "\n ご返信いただいてもお応えできませんのでご注意ください。\n" +
841          "----------------------------------------------------------------------------\n" +
842          "\n" +
843          $rootScope.customerLogin.name +
844          "\n" +
845          $rootScope.personLogin.name +
846          "  様\n" +
847          "\n" +
848          "この度は、<間取り図たのも!>をご利用いただき、\n" +
849          "誠にありがとうございます。\n\n" +
850          "ご注文を受領しましたことをご連絡致します。\n" +
851          "内容は下記のとおりです。\n" +
852          "\n" +
853          "***********************\n" +
854          "\n" +
855          head +
856          orderId +
857          "\n" +
858          manageId +
859          "___________________\n" +
860          "内訳: \n" +
861          "" +
862          orderContent.order +
863          "___________________\n" +
864          "計" +
865          "   " +
866          total +
867          "\n" +
868          (orderContent.option.trim() == "" ? "" : "\nオプション:") +
869          "\n" +
870          orderContent.option +
871          "\n" +
872          "コース: \n" +
873          period +
874          "\n\n" +
875          "***********************\n" +
876          "※消費税別 \n" +
877          "\n" +
878          "ご注文内容を確認後、\n" +
879          "改めてご連絡を差し上げます。\n" +
880          "\n" +
881          "以上、よろしくお願いいたします。\n" +
882          "\n" +
883          "========================================================" +
884          "\n<間取り図たのも!>\n" +
885          "運営会社:A-LEADS Japan株式会社(エイリーズ・ジャパン)\n" +
886          "営業時間:平日10:00~18:00(土日祝・年末年始を除く)\n" +
887          "<営業拠点>\n" +
888          "A-LEADS Japan株式会社\n" +
889          "埼玉県さいたま市西区宮前町1630-5\n" +
890          "<アウトソーシング拠点>\n" +
891          "A-LEADS IT Cambodia Co.,Ltd.\n" +
892          "#10 VTRUST Office Center 2FB St109 Phnom Penh, Cambodia\n" +
893          "========================================================\n";
894        dbservice.sendEmailWithCC(
895          mailTo,
896          mailCCList,
897          subject,
898          emailBody,
899          function (data) {}
900        ); //end sendMail
901      }); /*end rootScope */
902    }; /* end function */
903
904    /**--------------------------------------------------------
905	 * RENAME FOLDER
906	 * @author Saly Sakey
907	 * @description Rename Temporary Folder to Order_MainOrderID 
908	------------------------------------------------------------*/
909    $scope.renameFolder = function (oldName, newName, callback) {
910      if (!oldName) {
911        try {
912          dbservice.sendChatWork("ORDER_CONFIRM_RENAME_BYPASS oldName missing for newName " + (newName || ''));
913        } catch (e) {}
914        return;
915      }
916      $http({
917        url:
918          SERVER_URL +
919          "RenameFile?newName=" +
920          encodeURIComponent(newName) +
921          "&oldName=" +
922          encodeURIComponent(oldName) +
923          "&v=" +
924          Date.now(),
925        method: "post",
926      })
927        .success(function (data, status, headers, config) {
928          if (data && data.success === true) {
929            $rootScope.folder = newName;
930          } else {
931            try {
932              dbservice.sendChatWork("ORDER_CONFIRM_RENAME_REJECTED oldName=" + oldName + " newName=" + newName + " message=" + (data && data.message ? data.message : "unknown"));
933            } catch (e) {}
934          }
935          if (callback) {
936            callback(data);
937          }
938        })
939        .error(function (data, status, headers, config) {
940          console.log("failRenameFile");
941          try {
942            dbservice.sendChatWork("ORDER_CONFIRM_RENAME_FAILED oldName=" + oldName + " newName=" + newName);
943          } catch (e) {}
944          if (callback) {
945            callback({ success: false, message: "request failed" });
946          }
947        });
948    }; /* end function*/
949
950    $scope.clearOrder = function () {
951      $scope.select_email = "";
952      $scope.complete_email_list = [];
953    }; /* end function */
954
955    /*----------------------------------------------*/
956  }
957); /* end controller */
958
959/**-------------------------------------------
960	 * GET DATE TODAY
961	 * @returns {String} Date for today
962	 * @description get current date
963	 -------------------------------------------*/
964function getTodayDate() {
965  var today = new Date();
966  var dd = today.getDate();
967  var mm = today.getMonth() + 1; //January is 0!
968  var yyyy = today.getFullYear();
969
970  if (dd < 10) {
971    dd = "0" + dd;
972  }
973
974  if (mm < 10) {
975    mm = "0" + mm;
976  }
977
978  return yyyy + "/" + mm + "/" + dd;
979}

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.