Here you would probably need an onEdit() function that would check if 'y' is entered in the first column:
function onEdit(e) {
var ss = e.source;
if (e.range.getColumn() === 1 && e.value === "y") {
...some code here....
}
}
Then you get the values from the row in which 'y' was input:
var checkOutArray = checkOutSheet.getRange(e.range.getRow(), 2, 1, 6).getValues()[0];
getValues() always returns a two-dimensional array that's why you need to specify that you want the its first element even though there's only one.
In the same manner you're taking all the values from the check-in sheet:
var checkInArray = checkInSheet.getRange(2, 1, checkInSheet.getLastRow() - 1, checkInSheet.getLastColumn()).getValues();
Then comes the checking part. I thought it might be safer to compare all the arrays' values instead of just dates:
for (var i = 0; i < checkInArray.length; i++) {
if (arraysEqual(checkInArray[i], checkOutArray) == true) {
checkInSheet.deleteRow(i + 2); //i + 2 is the row in which same values have been found
return true;
}
else continue;
}
Where arraysEqual is:
function arraysEqual(arr1, arr2) {
if(arr1.length !== arr2.length) {
return false;
}
for(var i = arr1.length; i--;) {
if(arr1[i].toString() !== arr2[i].toString()) {
return false;
}
}
return true;
}
Altogether it looks like this:
function onEdit(e) {
var ss = e.source;
var checkOutSheet = ss.getSheets()[0];
var checkInSheet = ss.getSheets()[1];
if (e.range.getColumn() === 1 && e.value === "y") {
var checkOutArray = checkOutSheet.getRange(e.range.getRow(), 2, 1, 6).getValues()[0]; //getting the values from the row where "y" was entered (e.range.getRow())
var checkInArray = checkInSheet.getRange(2, 1, checkInSheet.getLastRow() - 1, checkInSheet.getLastColumn()).getValues(); //getting all the values from check out sheet
for (var i = 0; i < checkInArray.length; i++) {
if (arraysEqual(checkInArray[i], checkOutArray) == true) {
checkInSheet.deleteRow(i + 2); //i + 2 is the row in which same values have been found
return true;
}
else continue;
}
}
}
function arraysEqual(arr1, arr2) {
if(arr1.length !== arr2.length) {
return false;
}
for(var i = arr1.length; i--;) {
if(arr1[i].toString() !== arr2[i].toString()) {
return false;
}
}
return true;
}