Evaluando propuestas

Creación de macros o scripts en Google sheets y ajustes de documento

Publicado el 14 Septiembre, 2022 en Programación y Tecnología

Sobre este proyecto

Abierto

Resumen: Se requiere realizar macros o scritps en google sheets para ingresar datos a una planilla mediante formulario o popup. Se desea que se mantenga bloqueada la planilla donde se guardan los datos, y que en ciertas condiciones se envíen correos electrónicos de forma automática.

Descripción:
Hoy Cuento con una planilla en Google sheets con el seguimiento de pagos de un préstamo. La misma tiene los datos del préstamo en el encabezado, fila 3. Con esos datos se hacen cálculos de forma automática en el resto de la planilla.  El trabajo requerido es llevar la planilla desde su estado actual, al estado descripto a continuación.
Lo deseado es que la pestaña llamada “flujo” y otra llamada “emails” estén protegidas, y no sea posible hacerles modificaciones directamente. Se desea que en la pestaña “flujo” solo sea posible agregar datos a través de un par de botones que abran un pop-up, en el cual se ingresen los datos a ingresar en la planilla y al confirmar, esos datos sean agregados a la planilla. Deberían existir 2 tipos de pop-up . Uno de ellos (pop-up 1) sería para cargar los datos de la fila 3 (eso normalmente solo se haría una vez en cada planilla). El otro (pop-up 2), sería para cargar datos en las columnas D y E (Aportes/retiros ja o jc).
El archivo será utilizado por dos usuarios con cuentas de Google distintas (llamemoslos ja y jc).
La planilla enviada fue completada a modo de ejemplo. Se desea que el producto terminado sea una planilla que esté en blanco a modo de template. Al hacer un nuevo préstamo esa planilla se copiará. Luego de copiada, se hará clic en un botón llamado "agregar datos préstamo". Al hacerlo, aparecerá el pop-up 1.

Pop-up 1.
En él, deben aparecer los siguientes campos para completar.
Nombre del préstamo
Prestador
Fecha firma
Monto inicial
Duración en meses.
Tasa interés anual

Al darle aceptar, esos datos deben ir a los correspondientes de la fila 3. Debe enviarse un email, con esos datos en el cuerpo del mismo. El asunto debe ser “Datos de préstamo modificados en ‘nombre del archivo’. ”
Las direcciones de correo electrónico a donde se envíen notificaciones estan en otra pestaña del documento (llamada Anexo). Debe estar programado de forma tal que si se modifica esa lista de la pestaña, las nuevas acciones tomen en cuenta esos cambios, y envíen los correos a los destinatarios de la lista modificada.
Debe escribirse en la columna A una numeración consecutiva que empieza en 0 y debe seguir hasta el número asignado en el pop-up 1, duración en meses (en la planilla del ejemplo es 36).
Además, debe escribirse en la columna B las fechas de pago. La primera debe ser la fecha puesta en el pop-up 1. Y las siguientes deben ser el mismo día del mes, de los meses siguientes. Ese proceso debe repetirse hasta alcanzar la cantidad de meses mencionado en el pop-up. En el ejemplo de la planilla, 22/4/2025.
En caso de volver a ejecutar el botón y el pop-up 1, los datos ingresados deben sobre escribir los existentes. Si por ejemplo los datos anteriores eran de 36 meses y se ingresan nuevos datos por 24 meses, deben borrarse los correspondientes entre los meses 24 y 36.

Pop-up 2.
Este pop-up será utilizado para ingresar datos en las columnas D y E. Esos datos corresponden a depósitos o retiros, realizados por ja o jc en las fechas correspondientes a las columna b.
Se desea que solo ellos puedan usar esos pop-up. Se desea que en el  pop-up 2 el usuario JA solo pueda agregar datos a la columna E, y que JC solo pueda en la columna D. La planilla debe poder compartirse como solo lectura con otros usuarios.
Este pop-up debe abrirse al presionar un botón llamado "agregar depósito/retiro". Al abrirse debe tener los siguientes campos:
-Lista desplegable donde muestre las fechas de la columna B y se pueda seleccionar una de ellas.
-Lista desplegable donde elegir entre las opciones "depósitos" o "retiro". (El monto debe sumarse o restarse respectivamente en las columnas D o E respectivamente.)
-Campo monto, donde se escribe el monto.

El pop-up Debe tener un botón de aceptar para ingresar los datos. Los datos de este pop-up deben ir a la columna D o E, dependiendo del usuario que lo realiza.
Una vez aceptado el pop-up e ingresado los datos a la planilla, debe registrarse en la planilla, en la columna J y K respectivamente dependiendo del usuario, los siguientes datos. Fecha del nuevo registro, fecha seleccionada en el menú desplegable, si fue deposito o retiro, monto.
También debe enviar un email a la lista de distribución avisando del nuevo registro, con los mismos datos recién mencionados, y que usuario lo hizo.
Debe ser posible hacer más de un registro para la misma fecha. El mismo debe ser sumado o restado del registro que ya exista. En las columnas J y K debe agregar los datos del nuevo registro, sin borrar lo del anterior.

Otros
Exceptuando lo que se dijo anteriormente, las columnas "comentarios ja/jc" son las únicas que no deben estar nunca bloqueadas, y poder ser modificadas libremente por el usuario correspondiente.

Modificaciones planillas
Si bien la idea va a ser no modificar la pestaña flujo por fuera de lo mencionado, se desea que haya alguna forma de modificarla si es necesario. También para modificar la pestaña “emails”. Debe haber un botón en la planilla que se llame “desbloquear planilla”. Al tocarlo debe salir un pop-up de confirmación, advirtiendo que se desbloqueará la planilla. Al confirmarlo, debe generar una advertencia en la planilla que indique que la planilla está desbloqueada (por ejemplo, una celda en amarillo que lo indique). Debe además enviar un email avisando que ha sido desbloqueada. La pestaña “emails” también debe estar bloqueada, y solo ser posible modificarla con la planilla desbloqueda. La pestaña Otros debe estar siempre desbloqueada.
Luego de las modificaciones, debe presionar se botón llamado "bloquear". Si es posible, se debería enviar un email a la misma lista de distribución, indicando que se ha vuelto a bloquear y los cambios realizados.

Requisitos extra:
Se requiere que se entregue el código de la programación, abierto, debidamente comentado, de forma que quede claro que tareas se realizan en cada parte del código.
Debe ser explicado como poder acceder al código de la planilla en caso de querer realizar alguna modificación.
Este trabajo debe incluir la posibilidad de, posterior a la entrega, el desarrollador realice algunas pequeñas modificaciones, por algún mal entendido de interpretación que haya habido.
Desconozco si es posible, pero se valorará si el código es realizado en lenguajes C++, visual básic, o similares.

https://docs.google.com/spreadsheets/d/1zXGS8fEdq449dIxIiHI_jhFch6ZBJWDkcG21dHHjlNE/edit?usp=sharing

Contexto general del proyecto

Hoy Cuento con una planilla en Google sheets con el seguimiento de pagos de un préstamo. La misma tiene los datos del préstamo en el encabezado, fila 3. Con esos datos se hacen cálculos de forma automática en el resto de la planilla. Lo deseado es que la pestaña llamada “flujo” y otra llamada “emails” estén protegidas, y no sea posible hacerles modificaciones directamente. Se desea que en la pestaña “flujo” solo sea posible agregar datos a través de un par de botones que abran un pop-up, en el cual se ingresen los datos a ingresar en la planilla y al confirmar, esos datos sean agregados a la planilla. Deberían existir 2 tipos de pop-up . Uno de ellos (pop-up 1) sería para cargar los datos de la fila 3 (eso normalmente solo se haría una vez en cada planilla). El otro (pop-up 2), sería para cargar datos en las columnas D y E (Aportes/retiros ja o jc). El archivo será utilizado por dos usuarios con cuentas de Google distintas (llamemoslos ja y jc).

Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Cambio mediano
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Integraciones de API Cloud Storage (Dropbox, Google Drive, etc.)
Roles necesarios Programador

Plazo de Entrega: 23 Septiembre, 2022

Habilidades necesarias

Otros proyectos publicados por J. L.