Last active
January 24, 2016 23:05
-
-
Save AgustinParmisano/1962f1bf17d32c89b8ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function obtenerDatosFormulario1() { | |
// Open a form by ID and log the responses to each question. | |
var form = FormApp.openById('1105rmyoqy3f1pVsLluoupyZaVuCynlHfvsQxW3trdyI'); | |
var formResponses = form.getResponses(); | |
var lastResponsse = (parseInt(formResponses.length) - 1); | |
var formResponse = formResponses[lastResponsse]; | |
var itemResponses = formResponse.getItemResponses(); | |
var response = { | |
checkIn: itemResponses[0].getResponse(), | |
checkOut: itemResponses[1].getResponse(), | |
personas: itemResponses[2].getResponse(), | |
tipoHab: itemResponses[3].getResponse(), | |
correo: itemResponses[4].getResponse() | |
}; | |
Logger.log(response); | |
var disponibilidad = verDisponibilidad(response); | |
Logger.log(disponibilidad); | |
} | |
function findInRow(data, rows) { | |
for (var r=0; r<rows.length; r++) { | |
if ( rows[r].join("#").indexOf(data) !== -1 ) { | |
return r+1; | |
} | |
} | |
return -1; | |
} | |
function findInColumn(column, data) { | |
var sheet = SpreadsheetApp.getActiveSpreadsheet(); | |
var column = sheet.getRange(column + ":" + column); // like A:A | |
var values = column.getValues(); | |
var row = 0; | |
while ( values[row] && values[row][0] !== data ) { | |
row++; | |
} | |
if (values[row][0] === data) | |
return row+1; | |
else | |
return -1; | |
} | |
function findColumnByValue(value){ | |
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MapaDisponibilidadTorre"); | |
var valueColumn; | |
var dateCheckin = value; | |
for(i=2;i<ss.getLastColumn();i++) { | |
var ssRangeValue = ss.getRange(1,i).getValue(); | |
var yyyy = ssRangeValue.getFullYear().toString(); | |
var mm = (ssRangeValue.getMonth()+1).toString(); // getMonth() is zero-based | |
var dd = ssRangeValue.getDate().toString(); | |
var ssDate = yyyy + "-" + (mm[1]?mm:"0"+mm[0]) + "-" + (dd[1]?dd:"0"+dd[0]); // padding | |
if (ssDate == dateCheckin) { | |
valueColumn = i; | |
return valueColumn; | |
break; | |
} | |
} | |
} | |
function verDisponibilidad(reserva){ | |
//Obtener Planillas | |
var disponibilidad = false; | |
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets(); | |
//Planilla mapa de disponibilidad de camas | |
var sheetDisponibilidad = sheets[0]; | |
//Valores de Planilla de Disponibilidad | |
var dataDisponibilidad = sheetDisponibilidad.getDataRange().getValues(); | |
//Intento Reserva | |
//Se fija si hay disponibilidad para esa cantidad de camas cada día desde el checkIn al CheckOut | |
var fechaIngreso = reserva.checkIn; | |
var fechaEgreso = reserva.checkOut; | |
var cantidadCamasReserva = reserva.personas; | |
//Mapa de Disponibilidad de Camas | |
var fechaIteracion = fechaIngreso; | |
Logger.log(fechaIteracion < fechaEgreso); | |
while(fechaIteracion < fechaEgreso){ | |
var dia = fechaIteracion.slice(8, 10); | |
var mes = fechaIteracion.slice(5, 7); | |
var anio = fechaIteracion.slice(0, 4); | |
var diaSiguiente = parseInt(dia) + 1; | |
var fechaIteracion = anio + "-" + mes + "-" + diaSiguiente; | |
Logger.log(fechaIteracion); | |
} | |
var columnaFecha = findColumnByValue(fechaIngreso); | |
var libresFechaIngreso = sheetDisponibilidad.getRange(91,columnaFecha).getValue(); | |
if(cantidadCamasReserva > libresFechaIngreso){ | |
Logger.log("No hay suficientes camas libres para la fecha: " + fechaIngreso); | |
MailApp.sendEmail(reserva.correo, "Disponibilidad", "No hay disponibilidad para " + reserva.personas + " para la fecha " + reserva.checkIn); | |
}else if(cantidadCamasReserva > libresFechaIngreso + 1){ | |
Logger.log("Hay suficientes camas si se tira un colchón en alguna habitación para la fecha: " + fechaIngreso); | |
disponibilidad = "Con Colchón"; | |
}else{ | |
Logger.log("Hay suficientes camas para la reserva de la fecha: " + fechaIngreso); | |
MailApp.sendEmail(reserva.correo, "Disponibilidad", "Hay disponibilidad para " + reserva.personas + " para la fecha " + reserva.checkIn + " Para continuar con la reserva ingrese al siguiente vínculo: " + 'https://docs.google.com/forms/d/15Ygc05dJwam_5G3X0EziVLHyFYGOKHCqMSztHZHJfRs/viewform'); | |
disponibilidad = true; | |
} | |
//return disponibilidad; | |
} | |
function main(){ | |
//Obtener Planillas | |
Logger.clear(); | |
//ScriptApp.newTrigger("verRangoDias").forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet()).onEdit().create(); | |
//var form = FormApp.openById('1105rmyoqy3f1pVsLluoupyZaVuCynlHfvsQxW3trdyI'); | |
//ScriptApp.newTrigger('obtenerDatosFormulario1').forForm(form).onFormSubmit().create(); // FUNCIONA!!!!!!!!!!!!!!!!! | |
// Obtiene los campos del FORM: FORM RESPONSE: https://developers.google.com/apps-script/reference/forms/form-response | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment