Skip to content

Instantly share code, notes, and snippets.

@SharkMan319
Last active June 13, 2016 07:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SharkMan319/22212c4d85956fc9d4b02c7a70452135 to your computer and use it in GitHub Desktop.
Save SharkMan319/22212c4d85956fc9d4b02c7a70452135 to your computer and use it in GitHub Desktop.
function isInArr (name) {
for (i=0; i < arr.length; i++) {
if (arr[i][0] === name) {
return true;
}
}
return false;
}
var arr = [];
function getChange (change, cid) {
if (change >= 100.00) {
if (cid[8][1]) {
if (isInArr("ONE HUNDRED")) {
arr[arr.length-1][1] += 100.00;
cid[8][1] -= 100.00;
}
else {
arr.push(["ONE HUNDRED", 100.00]);
cid[8][1] -= 100.00;
}
return (getChange(change-100.00, cid));
}
else {
//try to fill lack of $100 bills
if (cid[7][1]) {
if (isInArr("TWENTY")) {
arr[arr.length-1][1] += 20.00;
cid[7][1] -= 20.00;
}
else {
arr.push(["TWENTY", 20.00]);
cid[7][1] -= 20.00;
}
return (getChange(change-20.00, cid));
}
else {
return "Insufficient Funds";
}
}
}
else if (change >= 20.00) {
if (cid[7][1]) {
if (isInArr("TWENTY")) {
arr[arr.length-1][1] += 20.00;
cid[7][1] -= 20.00;
}
else {
arr.push(["TWENTY", 20.00]);
cid[7][1] -= 20.00;
}
return (getChange(change-20.00, cid));
}
else {
//try to fill lack of $20.00 bills
if (cid[6][1]) {
if (isInArr("TEN")) {
arr[arr.length-1][1] += 10.00;
cid[6][1] -= 10.00;
}
else {
arr.push(["TEN", 10.00]);
cid[6][1] -= 10.00;
}
return (getChange(change-10.00, cid));
}
else {
return "Insufficient Funds";
}
}
}
else if (change >= 10.00) {
if (cid[6][1]) {
if (isInArr("TEN")) {
arr[arr.length-1][1] += 10.00;
cid[6][1] -= 10.00;
}
else {
arr.push(["TEN", 10.00]);
cid[6][1] -= 10.00;
}
return (getChange(change-10.00, cid));
}
else {
// try to fill lack of $20 bills
if (cid[5][1]) {
if (isInArr("FIVE")) {
arr[arr.length-1][1] += 5.00;
cid[5][1] -= 5.00;
}
else {
arr.push(["FIVE", 5.00]);
cid[5][1] -= 5.00;
}
return (getChange(change-5.00, cid));
}
else {
return "Insufficient Funds";
}
}
}
else if (change >= 5.00) {
if (cid[5][1]) {
if (isInArr("FIVE")) {
arr[arr.length-1][1] += 5.00;
cid[5][1] -= 5.00;
}
else {
arr.push(["FIVE", 5.00]);
cid[5][1] -= 5.00;
}
return (getChange(change-5.00, cid));
}
else {
return "Insufficient Funds";
}
}
else if (change >= 1.00) {
if (cid[4][1]) {
if (isInArr("ONE")) {
arr[arr.length-1][1] += 1.00;
cid[4][1] -= 1.00;
}
else {
arr.push(["ONE", 1.00]);
cid[4][1] -= 1.00;
}
return (getChange(change-1.00, cid));
}
else {
return "Insufficient Funds";
}
}
else if (change >= 0.25) {
if (cid[3][1]) {
if (isInArr("QUARTER")) {
arr[arr.length-1][1] += 0.25;
cid[3][1] -= 0.25;
}
else {
arr.push(["QUARTER", 0.25]);
index += 1;
}
return (getChange(change-0.25, cid));
}
else {
return "Insufficient Funds";
}
}
else if (change >= 0.10) {
if (cid[2][1]) {
if (isInArr("DIME")) {
arr[arr.length-1][1] += 0.10;
cid[2][1] -= 0.10;
}
else {
arr.push(["DIME", 0.10]);
cid[2][1] -= 0.10;
}
return (getChange(change-0.10, cid));
}
else {
return "Insufficient Funds";
}
}
else if (change >= 0.05) {
if (cid[1][1]) {
if (isInArr("NICKEL")) {
arr[arr.length-1][1] += 0.05;
cid[1][1] -= 0.05;
}
else {
arr.push(["NICKEL", 0.05]);
cid[1][1] -= 0.05;
}
return (getChange(change-0.05, cid));
}
else {
return "Insufficient Funds";
}
}
else if (change > 0.00) {
if (cid[0][1]) {
if (isInArr("PENNY")) {
arr[arr.length-1][1] += 0.01;
cid[0][1] -= 0.01;
}
else {
arr.push(["PENNY", 0.01]);
cid[0][1] -= 0.01;
}
return (getChange(change-0.01, cid));
}
else {
return "Insufficient Funds";
}
}
return arr;
}
function checkCashRegister(price, cash, cid) {
var change = cash - price;
var drawer = 0;
for (i=0; i < cid.length; i++) {
drawer += cid[i][1];
}
if (change > drawer) {
return "Insufficient Funds";
}
else if ( change === drawer) {
return "Closed";
}
return getChange(change, cid);
}
checkCashRegister(19.50, 20.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment