Skip to content

Instantly share code, notes, and snippets.

@AgustinParmisano
Last active January 24, 2016 23:05
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 AgustinParmisano/1962f1bf17d32c89b8ec to your computer and use it in GitHub Desktop.
Save AgustinParmisano/1962f1bf17d32c89b8ec to your computer and use it in GitHub Desktop.
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