-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
84 lines (84 loc) · 2.72 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* global angular */
angular.module('index', []).controller('indexController', ['$scope', function ($scope) {
$scope.bookSelected = {}
$scope.book = {
'B001': {
'name': 'แฮร์รี่ พอตเตอร์กับศิลาอาถรรพ์',
'price': 100
},
'B002': {
'name': 'แฮร์รี่ พอตเตอร์กับห้องแห่งความลับ',
'price': 100
},
'B003': {
'name': 'แฮร์รี่ พอตเตอร์กับนักโทษแห่งอัซคาบัน',
'price': 100
},
'B004': {
'name': 'แฮร์รี่ พอตเตอร์กับถ้วยอัคนี',
'price': 100
},
'B005': {
'name': 'แฮร์รี่ พอตเตอร์กับภาคีนกฟีนิกซ์',
'price': 100
},
'B006': {
'name': 'แฮร์รี่ พอตเตอร์กับเจ้าชายเลือดผสม',
'price': 100
},
'B007': {
'name': 'แฮร์รี่ พอตเตอร์กับเครื่องรางยมทูต',
'price': 100
}
}
$scope.bookSelect = bookSelect
$scope.cal = cal
$scope.remove = remove
function bookSelect (bookId, pic) {
if (!$scope.bookSelected[bookId]) {
$scope.bookSelected[bookId] = $scope.book[bookId]
$scope.bookSelected[bookId].qty = 0
$scope.bookSelected[bookId].pic = pic
}
$scope.bookSelected[bookId].qty += 1
cal()
}
function cal () {
console.log($scope.bookSelected)
var keys = Object.keys($scope.bookSelected)
$scope.result = {}
$scope.result.totalQty = 0
$scope.result.totalPrice = 0
keys.forEach(function (key) {
$scope.result.totalPrice += $scope.bookSelected[key].price * $scope.bookSelected[key].qty
$scope.result.totalQty += $scope.bookSelected[key].qty
})
var bookSelectedCoppy = JSON.parse(JSON.stringify($scope.bookSelected))
$scope.result.discount = Math.round(calculateDiscount(bookSelectedCoppy))
$scope.netPrice = $scope.result.totalPrice - $scope.result.discount
}
function calculateDiscount (bookSelected) {
var discount = 0
var counter = 0
var price = 0
var flag = true
while (flag) {
flag = false
Object.keys(bookSelected).forEach(function (key) {
if (--bookSelected[key].qty >= 0) {
counter++
price += bookSelected[key].price
flag = true
}
})
discount += ((counter - 1) * 0.1) * price
counter = 0
price = 0
}
return discount
}
function remove (bookId) {
delete $scope.bookSelected[bookId]
cal()
}
}])