Building a Cashregister 5/7


#1

Can someone help me please ? I Can' find what is the problem :\

var cashRegister = {
total:0,
//Dont forget to add your property
add: function(itemCost) {
this.total += itemCost;
this.lastTransactionAmount=itemCost;
},

lastTransactionAmount:0,

voidLastTransaction:function()
{
    this.total-=lastTransactionAmount;
},

scan: function(item,quantity) {
    switch (item) {
    case "eggs": this.add(0.98 * quantity); break;
    case "milk": this.add(1.23 * quantity); break;
    case "magazine": this.add(4.99 * quantity); break;
    case "chocolate": this.add(0.45 * quantity); break;
    }
    return true;
},
//Add the voidLastTransaction Method here

};

cashRegister.scan('eggs',1);
cashRegister.scan('milk',1);
cashRegister.scan('magazine',1);
cashRegister.scan('chocolate',4);

//Void the last transaction and then add 3 instead

cashRegister.voidLastTransaction();
cashRegister.scan('chocolate',3);
//Show the total bill
console.log('Your bill is '+cashRegister.total);


#2

Don't know why but it works if I modify the void... function like this

voidLastTransaction:function(lastTransactionAmount)
{
lastTransactionAmount=this.lastTransactionAmount;
this.total-=lastTransactionAmount;
},


#3
voidLastTransaction:function()
{
    this.total-=lastTransactionAmount;
},

should read,

voidLastTransaction: function () {
    this.total -= this.lastTransactionAmount;
    // reset so it can't be voided twice
    this.lastTransactionAmount = 0;
},

It shouldn't matter where we define the variable, but it's more organized if we do all the initialization near the top of the code,

    total: 0,
    lastTransactionAmount: 0,

#4

Hi I have the same code and it provide an error code :

--->Oops, try again. false

var cashRegister = {
total:0,
lastTransactionAmount:0,
//Dont forget to add your property
add: function(itemCost) {
this.total += itemCost;
this.lastTransactionAmount = itemCost;

},
scan: function(item,quantity) {
    switch (item) {
    case "eggs": this.add(0.98 * quantity); break;
    case "milk": this.add(1.23 * quantity); break;
    case "magazine": this.add(4.99 * quantity); break;
    case "chocolate": this.add(0.45 * quantity); break;
    }
    return true; 
},
//Add the voidLastTransaction Method here
voidLastTransaction: function(){
   this.total -=this.lastTransactionAmount ; 
}

};

cashRegister.scan('eggs',1);
cashRegister.scan('milk',1);
cashRegister.scan('magazine',1);
cashRegister.scan('chocolate',4);

//Void the last transaction and then add 3 instead
cashRegister.voidLastTransaction();
cashRegister.scan('eggs',3);

//Show the total bill
console.log('Your bill is '+cashRegister.total);


#5

After voiding the last transaction (4 chocolate) scan in 3 chocolate, as instructed.


#10