1
00:00:00,667 --> 00:00:03,310
<v instructor>In this video we're gonna implement</v>

2
00:00:03,310 --> 00:00:06,290
our next feature which is to transfer money

3
00:00:06,290 --> 00:00:08,223
from one user to another,

4
00:00:10,030 --> 00:00:12,920
and this is how transfers work.

5
00:00:12,920 --> 00:00:16,060
So here we input the username of the user

6
00:00:16,060 --> 00:00:18,020
to which we want to transfer

7
00:00:18,020 --> 00:00:20,349
and then here the amount, okay?

8
00:00:20,349 --> 00:00:23,710
And so now we need to attach an event handler

9
00:00:23,710 --> 00:00:25,550
to dis button here,

10
00:00:25,550 --> 00:00:28,270
and then we're gonna take a look at our flow chart

11
00:00:28,270 --> 00:00:29,863
to see what we have to do.

12
00:00:31,350 --> 00:00:32,183
Okay?

13
00:00:32,183 --> 00:00:34,563
But let's start to take a look here at this element.

14
00:00:37,990 --> 00:00:40,380
So it is the button form

15
00:00:40,380 --> 00:00:42,370
and then we will take or values

16
00:00:42,370 --> 00:00:45,130
from form input amount

17
00:00:45,130 --> 00:00:46,863
and form input to.

18
00:00:48,870 --> 00:00:52,260
So debts input transferred to

19
00:00:52,260 --> 00:00:55,170
and input transfer amount

20
00:00:55,170 --> 00:00:57,690
and to button is button transfer.

21
00:00:57,690 --> 00:01:01,023
So as always, I already selected them here beforehand.

22
00:01:04,970 --> 00:01:07,600
So Let's use

23
00:01:07,600 --> 00:01:08,800
button transfer

24
00:01:09,930 --> 00:01:11,733
dot add event listener,

25
00:01:13,460 --> 00:01:14,293
click,

26
00:01:15,210 --> 00:01:17,010
end then our function

27
00:01:17,010 --> 00:01:21,410
and we will actually need or event here again,

28
00:01:21,410 --> 00:01:22,960
because just like before

29
00:01:22,960 --> 00:01:26,520
we need to do event dot prevent default

30
00:01:26,520 --> 00:01:28,920
because this one is also a form,

31
00:01:28,920 --> 00:01:30,919
and so without this, if we clicked here,

32
00:01:30,919 --> 00:01:33,290
then that will reload the page.

33
00:01:33,290 --> 00:01:35,420
So this here is pretty common to do

34
00:01:35,420 --> 00:01:37,420
when we're working with forms.

35
00:01:37,420 --> 00:01:40,135
So preventing the default behavior,

36
00:01:40,135 --> 00:01:41,660
okay?

37
00:01:41,660 --> 00:01:42,600
Now right?

38
00:01:42,600 --> 00:01:44,930
So let's create some data here

39
00:01:44,930 --> 00:01:48,503
based on the input data and starting with the amount.

40
00:01:50,930 --> 00:01:52,790
So the amount of transfer is

41
00:01:54,750 --> 00:01:57,030
input transfer amount

42
00:01:57,900 --> 00:01:59,410
dot

43
00:01:59,410 --> 00:02:00,650
value

44
00:02:00,650 --> 00:02:02,570
and then we need to convert it once again

45
00:02:02,570 --> 00:02:03,660
to a value

46
00:02:05,300 --> 00:02:07,043
or to a number actually.

47
00:02:08,600 --> 00:02:09,433
Okay?

48
00:02:09,433 --> 00:02:12,030
And when now as I reload here,

49
00:02:12,030 --> 00:02:13,090
of course we lose

50
00:02:14,250 --> 00:02:16,330
all this data.

51
00:02:16,330 --> 00:02:18,030
So this current data that we need,

52
00:02:19,310 --> 00:02:22,280
so now we will have to start to log in always here

53
00:02:22,280 --> 00:02:24,772
and we could find a way around this, but yeah,

54
00:02:24,772 --> 00:02:27,460
let's just keep logging in

55
00:02:27,460 --> 00:02:29,373
whenever we have to check or caught.

56
00:02:31,420 --> 00:02:33,620
So anyway, we have the amount

57
00:02:33,620 --> 00:02:35,370
and then we also want to figure out

58
00:02:35,370 --> 00:02:38,083
the account to which we want to transfer.

59
00:02:39,520 --> 00:02:40,490
So const

60
00:02:41,730 --> 00:02:43,890
receiver account,

61
00:02:43,890 --> 00:02:47,550
and now the value is of course in

62
00:02:47,550 --> 00:02:49,240
input transfer

63
00:02:50,470 --> 00:02:52,070
to

64
00:02:52,070 --> 00:02:53,360
dot value.

65
00:02:53,360 --> 00:02:56,550
So that is the string that's gonna be right here.

66
00:02:56,550 --> 00:03:00,520
So for example, if we want to transfer to Jessica Davis,

67
00:03:00,520 --> 00:03:02,770
that's going to be a JD

68
00:03:02,770 --> 00:03:03,840
right?

69
00:03:03,840 --> 00:03:05,570
However, debt value alone

70
00:03:05,570 --> 00:03:08,830
so that username alone is not that helpful,

71
00:03:08,830 --> 00:03:11,050
it is only helpful when we use it

72
00:03:11,050 --> 00:03:14,130
to then actually find the account object

73
00:03:14,130 --> 00:03:17,300
to which we want to transfer alright

74
00:03:17,300 --> 00:03:20,913
and so for that, we once again use defined method.

75
00:03:22,640 --> 00:03:24,053
So that's accounts,

76
00:03:25,420 --> 00:03:29,220
so that's the array holding all the accounts

77
00:03:29,220 --> 00:03:31,220
and then we have the current account

78
00:03:32,350 --> 00:03:34,210
and we want to find account

79
00:03:35,890 --> 00:03:38,090
Where The username is equal

80
00:03:40,580 --> 00:03:44,163
to this value that we put in here,

81
00:03:45,500 --> 00:03:46,560
now right.

82
00:03:46,560 --> 00:03:50,310
So to recap here, we are now looking for the account

83
00:03:50,310 --> 00:03:51,200
which has

84
00:03:52,610 --> 00:03:53,790
this value here

85
00:03:53,790 --> 00:03:56,470
so that's gonna be the username value

86
00:03:56,470 --> 00:03:58,540
that we input into that form,

87
00:03:58,540 --> 00:04:00,700
so to which we want to transfer,

88
00:04:00,700 --> 00:04:04,530
and so here we are looking for the account with the username

89
00:04:04,530 --> 00:04:08,380
which is equal to debts input at username

90
00:04:08,380 --> 00:04:11,540
and then we select that from the account once more

91
00:04:11,540 --> 00:04:13,223
using the find method here,

92
00:04:14,070 --> 00:04:14,903
now okay?

93
00:04:14,903 --> 00:04:16,920
So we have this data

94
00:04:16,920 --> 00:04:17,753
let's

95
00:04:18,590 --> 00:04:20,800
just check if it is correct here

96
00:04:20,800 --> 00:04:23,260
by logging it all to the Console,

97
00:04:23,260 --> 00:04:25,483
so also the receiver account,

98
00:04:27,840 --> 00:04:29,223
so this would be a comma,

99
00:04:30,860 --> 00:04:33,810
so I'm logging in as JS with this pin

100
00:04:34,690 --> 00:04:38,300
and now let's say I transfer to Jessica Davis,

101
00:04:38,300 --> 00:04:39,290
that's JD

102
00:04:40,160 --> 00:04:41,193
100 euros,

103
00:04:42,520 --> 00:04:46,780
and now in the Console, we indeed get 100

104
00:04:46,780 --> 00:04:48,170
and the account

105
00:04:48,170 --> 00:04:50,853
with the username that I just input it there.

106
00:04:51,700 --> 00:04:54,823
Great, so let's see what we have to do now.

107
00:04:56,370 --> 00:04:57,850
So what we will do,

108
00:04:57,850 --> 00:05:01,410
is to add a negative movement to the current user

109
00:05:01,410 --> 00:05:03,880
and add a positive movement

110
00:05:03,880 --> 00:05:07,710
to the recipient and that makes sense, right?

111
00:05:07,710 --> 00:05:10,640
So if I transfer 100 to someone,

112
00:05:10,640 --> 00:05:12,410
I should lose that 100

113
00:05:12,410 --> 00:05:16,040
and the other person should receive that 100

114
00:05:16,040 --> 00:05:19,860
otherwise we would just be creating new money, right?

115
00:05:19,860 --> 00:05:23,690
So we do that and then we update the UI again,

116
00:05:23,690 --> 00:05:26,030
so we show again the movements,

117
00:05:26,030 --> 00:05:28,430
summary and balance because all of that

118
00:05:28,430 --> 00:05:30,593
will be effected by this transfer.

119
00:05:31,500 --> 00:05:34,640
Now what's kind of missing here in this flow chart

120
00:05:34,640 --> 00:05:38,990
is that we also actually first need to check some stuff.

121
00:05:38,990 --> 00:05:41,020
So we need to check if the amount here

122
00:05:41,020 --> 00:05:44,460
is actually a positive number

123
00:05:44,460 --> 00:05:47,550
and we also need to check if the current user,

124
00:05:47,550 --> 00:05:51,760
so Jonas right now actually has enough money.

125
00:05:51,760 --> 00:05:55,060
So I should not be able to transfer 5,000

126
00:05:55,060 --> 00:05:59,220
if I only have like 3000 and something,

127
00:05:59,220 --> 00:06:00,590
okay?

128
00:06:00,590 --> 00:06:03,703
So let's implement that cheque first.

129
00:06:06,760 --> 00:06:11,280
So as I just said, the amount needs to be greater than zero

130
00:06:11,280 --> 00:06:14,050
otherwise we could do a negative transfer

131
00:06:14,050 --> 00:06:16,913
and basically transfer money to ourselves.

132
00:06:17,930 --> 00:06:19,690
So this needs to happen

133
00:06:19,690 --> 00:06:22,940
and also the balance of the current account

134
00:06:22,940 --> 00:06:25,700
needs to be greater or equal the amount

135
00:06:25,700 --> 00:06:27,600
that we're trying to transfer.

136
00:06:27,600 --> 00:06:31,900
Now, this balance value is actually not stored anywhere,

137
00:06:31,900 --> 00:06:33,090
right?

138
00:06:33,090 --> 00:06:36,463
So in the place where we calculate this balance,

139
00:06:37,330 --> 00:06:39,660
so that's right here.

140
00:06:39,660 --> 00:06:41,680
So calc display balance,

141
00:06:41,680 --> 00:06:43,670
all we do is to calculate it

142
00:06:43,670 --> 00:06:47,550
and then display it immediately on the user interface,

143
00:06:47,550 --> 00:06:49,840
but we do not save it anywhere

144
00:06:49,840 --> 00:06:51,910
so let's actually change that,

145
00:06:51,910 --> 00:06:55,400
so besides only displaying it on the user interface,

146
00:06:55,400 --> 00:06:58,640
we also want to save it in the account.

147
00:06:58,640 --> 00:07:01,860
Now, how do we get access to that account?

148
00:07:01,860 --> 00:07:04,600
Well, we will do the same as we did previously

149
00:07:07,491 --> 00:07:09,580
with this function here,

150
00:07:09,580 --> 00:07:11,670
where now instead of the movements

151
00:07:11,670 --> 00:07:14,330
we passed in the entire account

152
00:07:14,330 --> 00:07:17,890
and so then we will be able to read the movements here

153
00:07:17,890 --> 00:07:21,940
from that account and also we will be able to then create

154
00:07:21,940 --> 00:07:26,533
a new property on that account with the balance, okay?

155
00:07:27,430 --> 00:07:29,510
So I hope that makes sense,

156
00:07:29,510 --> 00:07:32,230
so we are changing it from movements

157
00:07:32,230 --> 00:07:34,490
and so now we will be calling it

158
00:07:34,490 --> 00:07:37,250
with an entire account object.

159
00:07:37,250 --> 00:07:41,590
So here we need to do account dot movements

160
00:07:41,590 --> 00:07:43,780
and before we move on any further,

161
00:07:43,780 --> 00:07:45,373
let's call this correctly.

162
00:07:46,910 --> 00:07:51,570
So cacl display balance should now only be called

163
00:07:51,570 --> 00:07:54,100
with the entire account object

164
00:07:54,100 --> 00:07:59,033
and not only with the movements array, okay?

165
00:08:00,140 --> 00:08:02,060
So here it is.

166
00:08:02,060 --> 00:08:05,630
So now we take the movements from the account object,

167
00:08:05,630 --> 00:08:07,280
and then we can add that

168
00:08:08,320 --> 00:08:13,320
so we can say account dot balance equals balance

169
00:08:15,380 --> 00:08:18,640
and in fact, we can make this even better,

170
00:08:18,640 --> 00:08:20,160
we can store this value here

171
00:08:20,160 --> 00:08:22,963
immediately in account dot balance.

172
00:08:24,130 --> 00:08:27,310
So let's do that, account dot balance here

173
00:08:28,280 --> 00:08:31,220
and then we get that property here

174
00:08:31,220 --> 00:08:34,030
from account dot balance as well.

175
00:08:34,030 --> 00:08:37,460
Great, and remember why all of this works

176
00:08:38,340 --> 00:08:41,010
and we have some error here, but that doesn't matter,

177
00:08:41,010 --> 00:08:43,500
it's something unrelated now,

178
00:08:43,500 --> 00:08:46,520
anyway, let's remember why all of this works,

179
00:08:46,520 --> 00:08:51,413
so why we can set, this property here on this account object

180
00:08:51,413 --> 00:08:56,413
that we receive, and it will then set that right here

181
00:08:56,870 --> 00:08:59,680
on these objects that we have here.

182
00:08:59,680 --> 00:09:02,580
Well, and the reason is that, once again,

183
00:09:02,580 --> 00:09:05,550
all of these different references to actually point

184
00:09:05,550 --> 00:09:10,100
to the exact same objects in the memory heap, okay?

185
00:09:10,100 --> 00:09:14,400
So when we access this account, one object here,

186
00:09:14,400 --> 00:09:16,613
so down here in the login function,

187
00:09:18,030 --> 00:09:23,030
so right here where we create this current account variable,

188
00:09:23,038 --> 00:09:27,850
this is of course not really a copy of the object itself.

189
00:09:27,850 --> 00:09:29,860
So just as we learned before,

190
00:09:29,860 --> 00:09:33,660
this is simply another variable which points to the same

191
00:09:33,660 --> 00:09:37,393
so to the original object in the memory heap, okay?

192
00:09:38,320 --> 00:09:41,300
So this current account object again

193
00:09:41,300 --> 00:09:46,300
is exactly one of these objects that we have right here.

194
00:09:46,440 --> 00:09:51,440
So one of the objects of the account array, right?

195
00:09:51,720 --> 00:09:53,600
They are the exact same object.

196
00:09:53,600 --> 00:09:55,440
They simply have different name,

197
00:09:55,440 --> 00:09:57,530
here it is called account one

198
00:09:57,530 --> 00:10:00,140
but then down here it might be called

199
00:10:01,150 --> 00:10:04,320
the current account, okay?

200
00:10:04,320 --> 00:10:08,080
And then we use that current account to pass it

201
00:10:08,080 --> 00:10:11,080
into this calc display balance function

202
00:10:11,080 --> 00:10:13,300
and so then inside of that function,

203
00:10:13,300 --> 00:10:15,550
it will have even another name.

204
00:10:15,550 --> 00:10:17,387
So here it will be called acc,

205
00:10:18,520 --> 00:10:21,090
but it's still the same object, okay,

206
00:10:21,090 --> 00:10:24,570
it's still pointing to the same place in the heap,

207
00:10:24,570 --> 00:10:26,970
so in the memory now, right?

208
00:10:26,970 --> 00:10:30,653
And therefore setting the balance property here on acc

209
00:10:31,490 --> 00:10:34,620
is exactly the same as setting it up there

210
00:10:34,620 --> 00:10:37,853
where we first defined the objects, okay?

211
00:10:38,900 --> 00:10:41,300
And I will show you that in practice in a second

212
00:10:42,750 --> 00:10:44,690
but now let's go here

213
00:10:44,690 --> 00:10:47,840
and so this is where this arrow comes from

214
00:10:47,840 --> 00:10:49,990
because we don't have any code block

215
00:10:49,990 --> 00:10:53,730
and also because there is no second operant here.

216
00:10:53,730 --> 00:10:57,220
So anyway, let's go back to this condition here,

217
00:10:57,220 --> 00:11:00,880
so we already defined data transfer can only happen

218
00:11:00,880 --> 00:11:03,800
if the amount is greater than zero

219
00:11:03,800 --> 00:11:07,070
and now the second part is that the current user needs

220
00:11:07,070 --> 00:11:10,790
to have enough money to do this transfer

221
00:11:10,790 --> 00:11:15,550
and so that means current account dot balance

222
00:11:15,550 --> 00:11:19,220
which is the property that we justified alright.

223
00:11:19,220 --> 00:11:21,380
So we calculated the balance

224
00:11:21,380 --> 00:11:24,803
and that needs to be at least equal to the amount

225
00:11:24,803 --> 00:11:28,460
that we're trying to transfer, okay?

226
00:11:28,460 --> 00:11:31,570
Also, we should not be able to transfer money

227
00:11:31,570 --> 00:11:33,063
to our own account.

228
00:11:34,080 --> 00:11:36,650
So that's at that condition as well,

229
00:11:36,650 --> 00:11:38,310
so what we're trying to say is

230
00:11:38,310 --> 00:11:42,610
that the receiver account dot username

231
00:11:42,610 --> 00:11:43,860
must be equal

232
00:11:45,140 --> 00:11:46,490
from the current account

233
00:11:47,820 --> 00:11:51,953
dot username, alright?

234
00:11:51,953 --> 00:11:54,653
Tierra have one equal too much,

235
00:11:55,520 --> 00:11:56,640
alright?

236
00:11:56,640 --> 00:11:58,600
And actually, we should also check

237
00:11:58,600 --> 00:12:01,533
if this receiver account actually exists.

238
00:12:02,490 --> 00:12:06,420
So if it doesn't exist, of course, it makes no sense

239
00:12:06,420 --> 00:12:08,530
to transfer money there.

240
00:12:08,530 --> 00:12:13,530
So we could add that here, like simply testing this,

241
00:12:14,350 --> 00:12:17,940
but instead, since we're already trying to read a property

242
00:12:17,940 --> 00:12:21,480
from that object here, we can use once again,

243
00:12:21,480 --> 00:12:24,120
optional chaining like this

244
00:12:24,120 --> 00:12:27,580
and so then if this object here doesn't exist,

245
00:12:27,580 --> 00:12:30,610
then immediately this here will become undefined

246
00:12:30,610 --> 00:12:33,570
and the whole end operation will fail,

247
00:12:33,570 --> 00:12:36,210
and so in this case, we don't need that.

248
00:12:36,210 --> 00:12:39,580
Let me just comment it out and so now this should work

249
00:12:40,950 --> 00:12:43,350
and so let's just lock something to the Console.

250
00:12:45,140 --> 00:12:48,000
So transfer valid

251
00:12:48,000 --> 00:12:50,500
and now I will check all of these conditions here.

252
00:12:52,430 --> 00:12:57,020
So let's log in and now I want to transfer again

253
00:12:57,020 --> 00:13:00,920
to Jessica Davis and I will try to transfer zero

254
00:13:03,570 --> 00:13:08,410
so we get zero but we do not get transfer valid.

255
00:13:08,410 --> 00:13:11,343
So that means we didn't enter a this "if block" here.

256
00:13:12,280 --> 00:13:15,380
Now let's try to transfer more than I have

257
00:13:17,290 --> 00:13:22,290
and so this is also not valid but now 500

258
00:13:22,390 --> 00:13:24,680
and so all of these should not be true

259
00:13:26,490 --> 00:13:28,183
so you'll see a transfer valid.

260
00:13:29,210 --> 00:13:33,083
If I try something else, then again nothing should happen,

261
00:13:34,160 --> 00:13:36,083
oh, and actually it does happen,

262
00:13:36,920 --> 00:13:40,810
so indeed the receiver account is undefined

263
00:13:41,760 --> 00:13:45,107
and so this here will now be undefined now

264
00:13:45,107 --> 00:13:46,720
but I see what's happening

265
00:13:46,720 --> 00:13:50,300
because all that we are asking here is for this here

266
00:13:50,300 --> 00:13:54,040
to be different Jandy current account dot username.

267
00:13:54,040 --> 00:13:58,000
And so JS is of course different than undefined

268
00:13:58,000 --> 00:14:01,000
and therefore this here is still true

269
00:14:01,000 --> 00:14:04,370
and so in fact, we need to do this as well.

270
00:14:04,370 --> 00:14:06,000
So let's try this again

271
00:14:07,090 --> 00:14:09,330
and so you see of course back like this

272
00:14:09,330 --> 00:14:11,460
can happen all the time.

273
00:14:11,460 --> 00:14:12,850
And so we find them,

274
00:14:12,850 --> 00:14:15,240
we fix them and we move on

275
00:14:15,240 --> 00:14:20,240
and of course, now we test with some wrong username there,

276
00:14:20,720 --> 00:14:23,003
and now nothing happens, okay?

277
00:14:23,850 --> 00:14:25,663
So now the transfer is not valid.

278
00:14:27,470 --> 00:14:31,130
Now I'm also trying to transfer it to myself

279
00:14:31,130 --> 00:14:34,270
and so this is also not valid

280
00:14:34,270 --> 00:14:39,270
but finally to Jessica David, it will be valid, okay.

281
00:14:40,397 --> 00:14:43,090
And so, now here we can finally do

282
00:14:43,090 --> 00:14:45,500
what we intended to do all along.

283
00:14:45,500 --> 00:14:47,623
So these steps that we have here,

284
00:14:50,450 --> 00:14:52,113
So let's do that.

285
00:14:54,070 --> 00:14:57,583
So the current account dot movements,

286
00:14:58,570 --> 00:15:00,920
so we will add one new movement

287
00:15:00,920 --> 00:15:05,810
and so we're pushing here the amount but negative.

288
00:15:05,810 --> 00:15:10,810
So the negative amount and now on the receiver account,

289
00:15:14,250 --> 00:15:18,700
We will add a positive movement, okay?

290
00:15:18,700 --> 00:15:20,530
And that's actually already it.

291
00:15:20,530 --> 00:15:24,083
That's the most important part of doing the transfer.

292
00:15:25,460 --> 00:15:26,830
So doing the transfer

293
00:15:29,460 --> 00:15:32,673
and then we also want to update the user interface.

294
00:15:33,700 --> 00:15:36,600
So we could now copy this code here

295
00:15:36,600 --> 00:15:38,350
and paste it there as well

296
00:15:38,350 --> 00:15:41,770
but that's not a good practice as you already know

297
00:15:41,770 --> 00:15:44,150
and so I will now refactor this code here

298
00:15:45,140 --> 00:15:47,170
all into one function.

299
00:15:47,170 --> 00:15:48,370
So let me grab this here

300
00:15:49,210 --> 00:15:52,940
and dysfunction will be called update UI

301
00:15:54,160 --> 00:15:58,053
and it will also receive of course the current account.

302
00:16:01,100 --> 00:16:03,813
So let me right now the function here update UI

303
00:16:09,740 --> 00:16:12,853
equals function and I'm gonna leave it empty for now,

304
00:16:14,950 --> 00:16:15,980
and so indeed here,

305
00:16:15,980 --> 00:16:19,660
I need the current account now, okay?

306
00:16:19,660 --> 00:16:24,260
So otherwise I could not call this three function then

307
00:16:24,260 --> 00:16:25,740
using the account,

308
00:16:25,740 --> 00:16:28,580
but here I can call them whatever I want again.

309
00:16:28,580 --> 00:16:30,230
So let me just call them account,

310
00:16:33,520 --> 00:16:34,870
alright?

311
00:16:34,870 --> 00:16:39,050
So we refactored that functionality into its own function

312
00:16:39,050 --> 00:16:41,600
and so now we can call this function anywhere

313
00:16:41,600 --> 00:16:43,470
that we want in our code,

314
00:16:43,470 --> 00:16:45,300
and it will then always perform

315
00:16:45,300 --> 00:16:47,533
these three tasks, okay?

316
00:16:49,980 --> 00:16:53,180
So here I already called it update UI.

317
00:16:53,180 --> 00:16:55,423
We just write it here also as a comment.

318
00:16:56,650 --> 00:16:59,390
And now all I have to do is

319
00:16:59,390 --> 00:17:01,433
to paste it here as well.

320
00:17:03,400 --> 00:17:05,060
Great.

321
00:17:05,060 --> 00:17:07,273
So that should be working already.

322
00:17:08,470 --> 00:17:11,417
So that's transferred to Jessica Davis 500.

323
00:17:14,150 --> 00:17:18,070
And so now I should see one negative movement here,

324
00:17:18,070 --> 00:17:20,230
and this should also decrease by a 500

325
00:17:21,580 --> 00:17:23,253
and indeed it did.

326
00:17:24,800 --> 00:17:26,750
So let's check now here,

327
00:17:26,750 --> 00:17:30,823
the accounts variable,

328
00:17:32,220 --> 00:17:34,533
just to see if we actually get the balance.

329
00:17:36,340 --> 00:17:39,870
So indeed we now have to balance property here.

330
00:17:39,870 --> 00:17:41,070
We also have to movements

331
00:17:41,070 --> 00:17:46,070
and of course it's going to contain the minus 500, right?

332
00:17:47,430 --> 00:17:49,810
So that's the money that we just transferred away

333
00:17:49,810 --> 00:17:51,543
to Jessica Davis.

334
00:17:53,210 --> 00:17:57,493
And indeed it should already be in Jessica Davis.

335
00:17:58,400 --> 00:18:02,003
So her latest movement is now indeed 500.

336
00:18:02,990 --> 00:18:06,410
So that's take ticket out also in the user interface.

337
00:18:06,410 --> 00:18:08,330
Now, before doing that,

338
00:18:08,330 --> 00:18:10,530
the final thing that we're going to do is

339
00:18:10,530 --> 00:18:13,003
to clean these input fields.

340
00:18:14,000 --> 00:18:18,800
But now just to make sure let's login as Jessica Davis,

341
00:18:18,800 --> 00:18:23,800
and then we should get plus 500 here as the latest deposit.

342
00:18:24,820 --> 00:18:25,653
Now right?

343
00:18:26,940 --> 00:18:27,773
As I was saying,

344
00:18:27,773 --> 00:18:31,000
we need to clean out these inputs now

345
00:18:31,000 --> 00:18:34,550
and that we will do no matter if the transfer

346
00:18:34,550 --> 00:18:36,460
was successful or not.

347
00:18:36,460 --> 00:18:40,113
So we can do that outside of this if statement,

348
00:18:41,180 --> 00:18:44,763
so just down here or actually we can do it right here,

349
00:18:45,650 --> 00:18:47,500
let's get rid of this Console dot log

350
00:18:49,350 --> 00:18:53,140
and then input transfer amount

351
00:18:53,140 --> 00:18:56,090
equal or actually dot value

352
00:18:57,130 --> 00:18:58,700
equal

353
00:18:58,700 --> 00:19:00,350
input

354
00:19:00,350 --> 00:19:01,440
transferred to

355
00:19:02,360 --> 00:19:03,740
equal the empty string

356
00:19:05,080 --> 00:19:07,450
and with this we should be finished.

357
00:19:07,450 --> 00:19:09,220
Let's try it one more time.

358
00:19:09,220 --> 00:19:11,750
This time Jessica Davis will transfer something

359
00:19:14,350 --> 00:19:17,960
and so we lost here the latest transfer of course,

360
00:19:17,960 --> 00:19:20,130
because the page was reloaded

361
00:19:20,130 --> 00:19:22,900
and this data of course then gets lost.

362
00:19:22,900 --> 00:19:27,620
So when our page loads the information about the accounts

363
00:19:27,620 --> 00:19:30,300
so the account data will always be exactly

364
00:19:30,300 --> 00:19:33,220
what we have here in our code,

365
00:19:33,220 --> 00:19:34,080
okay?

366
00:19:34,080 --> 00:19:36,660
So that's the reason why that data,

367
00:19:36,660 --> 00:19:39,993
that 500 transfer is no longer here,

368
00:19:41,580 --> 00:19:43,210
but that doesn't matter.

369
00:19:43,210 --> 00:19:46,770
So let's transfer it to Steven Williams here

370
00:19:47,898 --> 00:19:48,731
1000

371
00:19:51,090 --> 00:19:52,940
and we get an error here,

372
00:19:52,940 --> 00:19:56,560
assignment two constant variable HTML button

373
00:19:56,560 --> 00:19:58,540
so at line 167

374
00:19:59,870 --> 00:20:04,023
and oh, one more time I forgot the value here.

375
00:20:04,980 --> 00:20:07,993
That's a very stupid mistake, right?

376
00:20:09,070 --> 00:20:10,283
Let's try that again.

377
00:20:13,040 --> 00:20:15,530
Stephen Thomas Williams,

378
00:20:15,530 --> 00:20:16,363
I believe

379
00:20:17,900 --> 00:20:19,430
and now it worked

380
00:20:19,430 --> 00:20:23,170
so all of our statistics here were updated

381
00:20:23,170 --> 00:20:28,020
and indeed now this field or both of the fields are empty

382
00:20:28,020 --> 00:20:28,900
and now as we go

383
00:20:30,578 --> 00:20:31,453
to this account,

384
00:20:33,670 --> 00:20:35,463
how apparently it does not exist.

385
00:20:36,750 --> 00:20:38,973
Yeah, it is Steven Thomas Williams.

386
00:20:40,000 --> 00:20:40,860
Yeah,

387
00:20:40,860 --> 00:20:43,550
so now we get this 1000 deposit here

388
00:20:43,550 --> 00:20:45,920
that we just did previously

389
00:20:45,920 --> 00:20:46,753
Alright?

390
00:20:46,753 --> 00:20:47,650
Awesome!

391
00:20:47,650 --> 00:20:49,890
so our application is coming more

392
00:20:49,890 --> 00:20:51,423
and more to live here.

