Jump to content

Módulo prestadeliverypro - Limitar fecha mínima y fecha máxima


Manuel Merino

Recommended Posts

Buenas tardes,

Tengo el módulo para seleccionar fechas de entrega llamado pretadeliverypro. Se que la selección de fecha se realiza con una aplicación javascript llamada datepicker. Pero no soy capaz de modificar dicho archivo para que me limite la fecha tope de envío.

En teoría este archivo javascript tiene una variable de configuración maxDate, pero aunque se la ponga no realiza absolutamente nada, me deja elegir fechas hasta el infinito y más allá.

Un saludo

Link to comment
Share on other sites

7 hours ago, Manuel_GT said:

Hola.

Es difícil ayudar sin saber algo más sobre lo que estás haciendo. ¿Como asignas el maxDate? En este foro puede que encuentre salguna pista para solucionar tu problema

https://stackoverflow.com/questions/17647162/maxdate-option-in-datepicker

Un saludo.

 

Hola Manel_GT,

Gracias en contestar y perdón por mi torpe explicación.

El módulo tiene en su apartado modules\prestadeliverypro\views\js tengo estos ficheros js

back.js, daterangepicker.js, front.js y moment.min.js

Solo veo en el fichero daterangepicker.js que la opción maxDate esta false, pero en los otros no lo he visto.

Miraré el enlace que me indicas.

Un saludo y muchas gracias 

Link to comment
Share on other sites

  • Manuel Merino changed the title to Módulo prestadeliverypro - Limitar fecha mínima y fecha máxima

Hola a tod@s,

Después de estar varios días intentando comprender el funcionamiento de este módulo, y sin ser experto ni en jquery ni javascript, al final he podido configurar este módulo para que funcione como mi tienda lo necesita.

Este módulo lo que hace, es que por cada transportista que tengas en tu tienda, le configuras un calendario de fechas de entregas. Puedes bloquearles días de las semanas de repartos, como fechas sueltas, o un rango entre dos fechas, para que en esos días no se pueda entregar el pedido. Además tiene un campo, en el cual, le indicas cuantos días tienes para poder preparar el pedido y que le llegue al cliente, que en mi caso son dos días, es decir, si hacen un pedido el 1 de octubre, el primer día hábil para que te entregue el pedido sería el 3 de octubre.

El módulo, a mi parecer esta muy bien, aunque ya el proveedor no lo tenga en la tienda, pero tenía un gran inconveniente para mí y es que no existía un tope de fecha máxima de entrega. Podías realizar un pedido ahora y poder elegir la fecha de entrega para el año 2030.

Una vez explicado todo este rollo, os explico como he podido modificar el módulo para que limite el día máximo de entrega.

Para limitar el día máximo de entrega, tenéis que editar el fichero daterangepicker.js, que se encuentra en la carpeta modules/prestadeliverypro/views/js. Tenéis que sustituir la línea 40 que pone lo siguiente:

this.maxDate = false; 

Por esta otra:

this.maxDate = moment().add(45, 'day');

Con ello conseguimos que la fecha máxima sea 45 días más que la fecha actual.

Una vez que hagáis el cambio borrar la caché de los navegadores y del prestashop para comprobar que os funciona.

También he conseguido hacer y que nos viene muy bien a nosotros, el poder aumentar en un día más la fecha mínima del pedido si se hace el pedido después de las 12 del mediodía. Para ello tenéis que editar el fichero front.js que se encentra en la misma carpeta que el anterior y allí tenéis que modificar lo siguiente a partir de la línea 83:

minDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();

Por esta otra:

hora = moment().hour(); 
if (hora >= 0 && hora <=11 ) {
        minDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
} else {
        minDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate() + 1);
}

Lo que conseguimos con esto es que si la hora está comprendida entre las 12 de la noche y las 11 del mediodía, pues dejamos la fecha mínima como está, que en mi caso son 2 días, pero si la hora está comprendida entre las 12 del mediodía y las 23 horas, pues lo que hacemos es añadir un día más a la fecha mínima de entrega.

Espero que os sirva a todas las personas que tengan esta problemática en el módulo prestadeliverypro.

Un saludo y perdón por el tostón.

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...