Entradas

Dias domingos y feriados entre dos fechas MYSQL

Imagen
Calculo de los días domingos y festivos en Mysql. Suponiendo que DIASFESTIVOS es una tabla como la siguiente +-------------+----------------+------------------+ | Id_diafestivo | Dia_festivo | Fecha | +-------------+----------------+------------------+ | 1 | un dia festivo | 2017 - 12 - 21 | | 2 | navidad | 2017 - 12 - 25 | | 3 | muertos | 2017 - 10 - 02 | +-------------+----------------+------------------+ SET @Inicio := '2017-12-01'; SET @Fin := '2017-12-26'; SELECT @Inicio, @Fin, DATEDIFF(@Fin, @Inicio) AS Dias ,IFNULL(ROUND(((UNIX_TIMESTAMP(@Fin) - UNIX_TIMESTAMP(@Inicio)) / (24 * 60 * 60) - 7 + WEEKDAY(@Inicio) - WEEKDAY(@Fin)) / 7) + IF(WEEKDAY(@Inicio) <= 6, 1, 0) + IF(WEEKDAY(@Fin) >= 6, 1, 0), '0') AS Domingos ,(SELECT COUNT(Fecha) FROM DIASFESTIVOS WHERE...

Simple explicación sobre get_instance() CODEIGNITER

En algunos casos queremos escribir nuestras propias clases separadas de nuestros controladores pero cuando esto pasa perdemos algunos recursos que Codeigniter nos ofrece por medio de la variable $this, sin embargo no está todo perdido ya que es posible gracias a la función auxiliar get_instance() la cual retorna el SuperObjeto Codeigniter. Ejemplo práctico de la situación que comento Normalmente desde mi controlador puedo llamar a cualquier metodo disponible de la siguiente forma $this -> load -> helper ( 'url' ); $this -> load -> library ( 'session' ); $this -> config -> item ( 'base_url' ); Pero, ¿qué pasa cuando creo un helper o una clase que igual necesita acceder a estos metodos? simplemente la variable $this no puede hacer referencia a ningun constructor porque no existe. Solución sencilla, la función get_instance() nos ayuda con esto pues sirve para acceder a una instancia del superobjeto CodeIgniter, con la que podremos re...

Problemas de audifonos en Ubuntu 17.04

El problema es que no se escuchan los audifonos en ubuntu, la solución es la siguiente. En terminal editamos el siguiente archivo sudo nano /etc/modprobe.d/alsa-base.conf Añadimos la siguiente línea de acuerdo al hardware de nuestra computadora, en mi caso una Acer TravelMate options snd-hda-intel model= asus-mode5 El valor de la línea de acuerdo a lo siguiente: mario (para el audio ALC892 de las portátiles Google Chromebook),  asus-mode1 , asus-mode2 , asus-mode3 , (para equipos con sólo 3 salidas de audio, hasta un máximo de surround 5.1) asus-mode4 , asus-mode5 , (para salidas de hasta 4.0) asus-mode6 , asus-mode7 , asus-mode8 , (para salidas de audio hasta 7.1 digital y 5.1 analógicas) inv-dmic y dell-headset-multi (para portátiles que empleen micrófonos internos incorporados y entrada de micrófonos externos independizadas). Happy coding!   

Días hábiles entre dos fechas MYSQL

Qué tal, aquí dejo un pedazo de código sql para calcular los días domingos entre dos fechas. Si quieres solo obtener los días laborales, simplemente realiza una resta de un DATEDIFF entre las fechas y a ese resultado se le resta los domingos, cosa de lógica. Puede ser una función o un simple select, en mi opinión una función sería más conveniente. Ahí va: Set @fechaTermino = '2017-03-21'; Set @fechaInicio = '2017-03-11'; SELECT ROUND(((unix_timestamp(@fechaTermino) - unix_timestamp(@fechaInicio) ) /(24*60*60)-7+WEEKDAY(@fechaInicio)-WEEKDAY(@fechaTermino))/7)  + if(WEEKDAY(@fechaInicio) <= 6, 1, 0)  + if(WEEKDAY(@fechaTermino) >= 6, 1, 0) as diasDomingos Resultado +-----------------+ | diasDomingos | +-----------------+ |  2                    | +-----------------+ Happy Coding!

Class 'Form' not found en Laravel 5.5

Este error deriva de nuestro composer.json ya que no está incluido el paquete de nuestro amigos de https://laravelcollective.com entonces solo bastará realizar lo siguiente. Añadimos un require en al composer.json y actualizamos composer require "laravelcollective/html":"^5.5" composer update También en nuestro config/app.php habrá modificaciones. Añadimos las siguientes lineas en  providers y aliases . 'providers' => [     // ...     Collective\Html\HtmlServiceProvider::class,     // ...   ], 'aliases' => [     // ...       'Form' => Collective\Html\FormFacade::class,       'Html' => Collective\Html\HtmlFacade::class,     // ...   ], En mi caso esto fue la solución al error, espero te sirva de algo. Happy coding!

openGTS en Ubuntu 17.04

Me dispuse a crear esta guía que facilite la instalación de un servidor que realiza tracking GPS de N dispositivos android nada más por pura diversión :) Comencemos... Para comenzar necesitamos JAVA, LAMP, ANT y UNZIP, entonces utilizamos los siguientes comandos sudo apt-get update sudo apt-get install apache2 php mysql-server libmysql-java ant unzip sudo /etc/init.d/mysql start *En mi caso instalé PHP en sus versiones 6 y 7 y Mysql 5.7 *Puede que algunos paquetes no estén disponibles, si es así busca alternativas de versiones JAVA Los siguientes comandos para instalar JAVA en su versión 7, la 8 también funciona sudo apt-get install openjdk-7-jdk  export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64  echo "export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64" >> ~/.bashrc TOMCAT Los siguientes comandos para instalar TOMCAT en su version 7.0.57 VER=7.0.57 cd /tmp wget -c http://apache.mirror.uber.com.au/tomcat/tomcat-7/v${VER}/bin/apache-t...

@ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`

@ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js` Se me presentó dicho error al momento de ejecutar  los dos comandos siguientes npm run dev npm run watch -poll dichos comandos para uso del paquete laravel-mix, tras una búsqueda de horas llegué a este link donde explica que todo el problema  es debido a que probablemente está mal configurado la ruta absoluta para los assets en tu webpack.mix.js en mi caso estaba de la siguiente manera: mix.setPublicPath('./'); Anyways, la solución para mi fué: 1.- Eliminar la carpeta de node_modules 2.- Eliminar la siguiente linea de mi webpack.mix.js mix.setPublicPath('./'); 2.- Modificar mi package.json por lo siguiente {     "private": true,     "scripts": {         "dev": "npm run development",         "development": "cross-env NODE_ENV...