SIU-Sanaviron-Quilmes/version1.0.0/instalar sq produccion
En esta sección se va a encontrar información sobre:
- Requisitos para la instalación.
- Instalación de los distintos sub módulos de SIU Sanaviron Quilmes.
- Configuración para establecer la comunicación entre los distintos sub módulos y otros módulos (SIU Pilagá, SIU Guaraní, MercadoPago)
Requisitos
Herramientas | Nucleo | Unidad de venta | SQ Pagos | G.C.O. |
---|---|---|---|---|
Git | Si | Si | Si | Si |
Postgres | >=9.5 | >=9.5 | ||
PHP | >= 5.5 | >= 5.5 | >= 5.5 | >= 5.5 |
Extensiones PHP | php5-pgsql, php5-gd | php5-pgsql, php5-gd | php5-curl | |
Redis | >= 3.2 | >= 3.2 | ||
PHP-Composer | Si | Si | Si | |
NodeJS | SI |
- Nota: La base de datos debe tener la codificación es_AR.UTF8
Si no tiene instalado Apache y los módulos puede ejecutarlos con la siguiente linea:
apt-get install apache2 libapache2-mod-php5 php5-cli php5-pgsql php5-gd php5-curl
Iniciar módulo rewrite
a2enmod rewrite
PHP Composer: https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx
Redis: https://redis.io/topics/quickstart
NodeJs: https://nodejs.org/en/download/package-manager
Instalación
SQ Núcleo
- Posicionarse en la ubicación deseada para la instalación del proyecto:
- cd /usr/local/proyectos/sanaviron_quilmes/
El proyecto está disponible en https://hub.siu.edu.ar
- Ahora tenemos el path:
- /usr/local/proyectos/sanaviron_quilmes/nucleo/
- Nota: en lo sucesivo denominaremos esta carpeta como <path proyecto NUCLEO>.
Una vez descargado, ejecutar en la raíz del mismo:
composer siu:instalar --no-dev
En el caso de querer instalarlo en modo desarrollo, quitar el flag --no-dev
- y completar o ENTER utiliza los valores por defecto
- > Incenteev\ParameterHandler\ScriptHandler::buildParameters
Creating the "config/parameters-only-install.yml" file
Some parameters are missing. Please provide them.
database_host (localhost):
database_port (5432):
database_name (sq_nucleo):
database_name_toba (toba_sq_nucleo):
database_user (postgres):
database_password (postgres):
url_base ('http://localhost'):
url_port (null):
sqnucleo_usuario (admin):
sqnucleo_password (admin):
sqnucleo_id_desarrollador (0):
sqnucleo_alias (/sq_nucleo):
Luego hay que publicar en el servidor web, en el caso de apache se deja la configuración en el archivo config/toba.conf
- ln -s <path proyecto NUCLEO>/config/toba.conf /etc/apache2/sites-enabled/toba_nucleo.conf
- y luego reiniciar Apache
SQ Unidades de ventas (Cursos)
- Posicionarse en la ubicación deseada para la instalación del proyecto:
- cd /usr/local/proyectos/sanaviron_quilmes/
El proyecto está disponible en https://hub.siu.edu.ar
- Ahora tenemos el path:
- /usr/local/proyectos/sanaviron_quilmes/unidad-venta/
- Nota: en lo sucesivo denominaremos esta carpeta como <path proyecto UV>.
Una vez descargado, ejecutar en la raíz del mismo:
composer siu:instalar --no-dev
En el caso de querer instalarlo en modo desarrollo, quitar el flag --no-dev
- y completar o ENTER utiliza los valores por defecto
- > Incenteev\ParameterHandler\ScriptHandler::buildParameters
Creating the "config/parameters-only-install.yml" file
Some parameters are missing. Please provide them.
database_host (localhost):
database_port (5432):
database_name (sq_uv):
database_name_toba (toba_sq_uv):
database_user (postgres):
database_password (postgres):
url_base ('http://localhost'):
url_port (null):
squv_usuario (admin):
squv_password (admin):
squv_id_desarrollador (0):
squv_alias (/sq_uv):
Luego hay que publicar en el servidor web, en el caso de apache se deja la configuración en el archivo config/toba.conf
- ln -s <path proyecto UV>/config/toba.conf /etc/apache2/sites-enabled/toba_uv.conf
- y luego reiniciar Apache
SQ Pagos
- Posicionarse en la ubicación deseada para la instalación del proyecto:
- cd /usr/local/proyectos/sanaviron_quilmes/
El proyecto está disponible en https://hub.siu.edu.ar
- Ahora tenemos el path:
- /usr/local/proyectos/sanaviron_quilmes/sq_pagos/
- Nota: en lo sucesivo denominaremos esta carpeta como <path proyecto SQP>.
Entrar en la carpeta <path proyecto SQP>/config y editar el archivo angular-config.json:
"entorno": "desarrollo",
"desarrollo": {
"config": {
"api_backend_url": "http://localhost/sq_pagos_backend/",
"titulo": "Universidad de prueba :: Plataforma de pagos :: SIU-Sanaviron-Quilmes"
}
},
"produccion": {
"config": {
"api_backend_url": "http://sq_server.edu.ar/sq_pagos_backend/",
"titulo": "Universidad de prueba :: Plataforma de pagos :: SIU-Sanaviron-Quilmes"
}
}
}
Una vez descargado, ejecutar en la raíz del mismo:
- npm install
Luego hay que publicar en el servidor web, en el caso de apache se deja la configuración en el archivo config/sq_pagos.conf
- ln -s <path proyecto SQP>/config/sq_pagos.conf /etc/apache2/sites-enabled/sq_pagos.conf
- y luego reiniciar Apache
SQ G.C.O.
- Posicionarse en la ubicación deseada para la instalación del proyecto:
- cd /usr/local/proyectos/sanaviron_quilmes/
El proyecto está disponible en https://hub.siu.edu.ar
- Ahora tenemos el path:
- /usr/local/proyectos/sanaviron_quilmes/gco/
- Nota: en lo sucesivo denominaremos esta carpeta como <path proyecto SQGCO>.
Una vez descargado, ejecutar en la raíz del mismo:
Luego hay que publicar en el servidor web, en el caso de apache se deja la configuración en el archivo config/sq_pagos_backend.conf
- ln -s <path proyecto SQGCO>/config/sq_pagos_backend.conf /etc/apache2/sites-enabled/sq_gco.conf
- y luego reiniciar Apache
Configuración
SQ Núcleo
Cambiar el propietario de la carpeta para que el usuario Apache pueda escribir:
chown -R www-data:www-data <path proyecto NUCLEO>
Configurar accesos API Rest
Editar los siguientes archivos:
- <path proyecto NUCLEO>/config/i__desarrollo/p__sq_nucleo/rest/servidor.ini
- <path proyecto NUCLEO>/config/i__desarrollo/p__sq_nucleo/rest/servidor_usuarios.ini
password = pass_api_sq_nucleo
;api_key= APIKEY_CAMBIAR
- <path proyecto NUCLEO>/config/sq.ini
db="desarrollo sq_nucleo sq_nucleo"
db_test="desarrollo sq_nucleo sq_nucleo"
[mailer]
;;-----------------------------------------------------
; Directivas generales de funcionamiento
ENVIA_EMAILS = '0' ; Indica si envío los correos o actúa como "dummy" ("1" = Sí, "0" = No).
EMAIL_ENVIOS_DESARROLLO = '' ; Es la cuenta a la cual enviar los correos cuando es una instalación de desarrollo.
ES_DESARROLLO = '1'
;-----------------------------------------------------
; Configuración general de SMTP
SMTP_HOST = 'smtp.googlemail.com' ; Es el host del SMTP por el cual saldrá el envï¿œo definitivo.
SMTP_PUERTO = '465' ; Puerto por el cual se enviará el correo.
SMTP_PROTOCOLO_SEGURIDAD = 'ssl' ; Se indica el protocolo de seguridad. Este valor se usa como prefijo de conexión ("", "ssl" o "tls").
;-----------------------------------------------------
; Configuración de la autenticación SMTP
SMTP_AUTENTICAR = '1' ; Si autentificación con usuario y clave, y tipo de autorización ("1" = Sí, "0" = No).
SMTP_USUARIO = '' ; El usuario para autorizar el envío.
SMTP_CLAVE = '' ; La clave del usuario.
;SMTP_AUTO_TLS = ; habilita tls si el server lo soporta incluso si SMTP_PROTOCOLO_SEGURIDAD no esta seteado en tls ("1" = Sí, "0" = No)
;si se deja comentado por defecto esta en true
[unidad_venta]
base_url = "http://127.0.0.1/sq_uv/rest/"
auth_usuario = "usuario_api_sq_uv"
auth_password = "pass_api_sq_uv"
auth_method = "basic"
[sq_pagos_backend]
base_url = "http://127.0.0.1/sq_pagos_backend/"
auth_usuario = "sq_nucleo"
auth_password = "123456"
auth_method = "basic"
[pilaga]
base_url = "http://127.0.0.1/pilaga/rest/"
auth_usuario = "toba"
auth_password = "toba"
auth_method = "basic"
[arai]
base_url=""
auth_usuario=""
auth_password=""
auth_method=""
[redis]
host="127.0.0.1"
port="6379"
Configurar el cron
Ejecutar en la consola:
crontab -e
Para que el planificador de tareas se ejecute cada un minuto en búsqueda de tareas programadas hay que agregar al crontab la siguiente línea:
* * * * * <path proyecto NUCLEO>/bin/sq tareas_planificadas
- Nota: Se ponen los 5 asteriscos para que este comando se ejecute cada un minuto.
Este comando se encarga de verificar cada minuto si es el momento de ejecutar determinada tarea según se haya configurado en la operación toba Procesos > Planificador de tareas.
Luego guardar el archivo y reiniciar la pc.
Configurar la ejecución programada de procesos
En toba hay que ir a la operación Procesos > Planificador de tareas. Por cada proceso se agrega una fila en el formulario multilínea.
La idea es que elijan como frecuencia DIARIO y los programen con 30 minutos de separación entre cada proceso.
SQ Unidad de venta
Cambiar el propietario de la carpeta para que el usuario Apache pueda escribir:
chown -R www-data:www-data <path proyecto UV>
Configurar accesos API Rest
Editar los siguientes archivos:
- <path proyecto UV>/config/i__desarrollo/p__sq_uv/rest/servidor.ini
- <path proyecto UV>/config/i__desarrollo/p__sq_uv/rest/servidor_usuarios.ini
password = pass_api_sq_uv
;api_key= APIKEY_CAMBIAR
- <path proyecto UV>/config/sq.ini
db="desarrollo sq_uv sq_uv"
db_test="desarrollo sq_uv sq_uv"
[nucleo]
base_url = "http://127.0.0.1/sq_nucleo/rest/"
auth_usuario = "usuario_api_sq_nucleo"
auth_password = "pass_api_sq_nucleo"
auth_method = "basic"
[arai]
base_url=""
auth_usuario=""
auth_password=""
auth_method=""
[guarani]
base_url = "http://127.0.0.1/guarani_gestion/rest/"
auth_usuario = "toba"
auth_password = "toba"
auth_method = "digest"
[sq_pagos_backend]
base_url = "http://127.0.0.1/sq_pagos_backend/"
auth_usuario = "sq_uv"
auth_password = "123456"
auth_method = "basic"
[redis]
host="127.0.0.1"
port="6379"
[mailer]
;;-----------------------------------------------------
; Directivas generales de funcionamiento
ENVIA_EMAILS = '0' ; Indica si envía los correos o actúa como "dummy" ("1" = Sí, "0" = No).
EMAIL_ENVIOS_DESARROLLO = '' ; Es la cuenta a la cual enviar los correos cuando es una instalación de desarrollo.
ES_DESARROLLO = '1'
;-----------------------------------------------------
; Configuración general de SMTP
SMTP_HOST = 'smtp.googlemail.com' ; Es el host del SMTP por el cual saldrá el envío definitivo.
SMTP_PUERTO = '465' ; Puerto por el cual se enviará el correo.
SMTP_PROTOCOLO_SEGURIDAD = 'ssl' ; Se indica el protocolo de seguridad. Este valor se usa como prefijo de conexión ("", "ssl" o "tls").
;-----------------------------------------------------
; Configuración de la autenticación SMTP
SMTP_AUTENTICAR = '1' ; Si autentificará con usuario y clave, y tipo de autorización ("1" = Sí, "0" = No).
SMTP_USUARIO = '' ; El usuario para autorizar el envío.
SMTP_CLAVE = '' ; La clave del usuario.
;SMTP_AUTO_TLS = ; habilita tls si el server lo soporta incluso si SMTP_PROTOCOLO_SEGURIDAD no esta seteado en tls ("1" = Sí, "0" = No)
;si se deja comentado por defecto esta en true
Configurar el cron
Ejecutar en la consola:
crontab -e
Para que el planificador de tareas se ejecute cada un minuto en búsqueda de tareas programadas hay que agregar al crontab la siguiente línea:
* * * * * <PATH_HASTA_EL_PROYECTO>unidad-venta/bin/sq tareas_planificadas
Nota: se ponen los 5 asteriscos para que este comando se ejecute cada un minuto. Este comando se encarga de verificar cada minuto si es el momento de ejecutar determinada tarea según se haya configurado en la operación toba Procesos > Planificador de tareas.
luego guardar el archivo y reiniciar la pc.
Configurar la ejecución programada de procesos
En toba hay que ir a la operación Procesos > Planificador de tareas.
Por cada proceso se agrega una fila en el formulario multilínea.
Los procesos que deberías configurar son los siguientes en este orden:
- Generar_reporte_cobranzas_recibidas (Guarda en la tabla rep_cobranzas_recibidas los payments de MP. necesario para la operación de conciliaciones)
- Vencer ventas
- Anular inscripciones g3 (Anula las inscripciones que quedaron en estado inicio_cobro_digital o pendiente si pasaron 6 hs desde la generación de la misma. Anula las inscripciones que quedaron en pendiente_cobro_digital si pasaron 3 días desde la generación de la misma.)
- Notificar morosos a g3 (Notifica a guarSe deben editar:ani todos los ids de los clientes que no pagaron pasada la fecha de vencimiento)
- Enviar notificaciones por email a clientes
- Notificar ventas al nucleo (Envía al núcleo las ventas que se encuentran cobradas y que la comisión a la que pertenecen está confirmada)
- La idea es que elijan como frecuencia DIARIO y los programen con 30 minutos de separación entre cada proceso.
- El proceso generar_reporte_cobranzas_recibidas se podría configurar para que se ejecute cada media hora y mantener lo más actualizado posible el informe de Conciliaciones.
SQ Pagos
SQ G.C.O.
Se debe crear una carpeta llamada logs en la raíz del proyecto y darle permisos a la carpeta para que el usuario Apache pueda escribir.
mkdir logs
chmod -R 777 logs
Generar archivo de configuración
cp <path proyecto SQGCO>/config/_config.ini <path proyecto SQGCO>/config/config.ini
Configurar accesos API Rest y Credenciales
[debug]
debug_mode = 0
; opciones del backend de sq_pagos. Estos parámetros no deben editarse.
[sq_pagos_backend]
elige_gestor = 0
gestor_pago_por_defecto = 'mercado_pago'
; Configuración de la API REST de SQ_UV
[sq_uv_api]
base_url = 'http://127.0.0.1/sq_uv/rest/'
user = 'usuario_api_sq_uv'
pass = 'pass_api_sq_uv'
; Credenciales de la API de Mercado Pago.
; Las mismas se encuentran en la pestaña BASIC CHECKOUT en la url:
; https://www.mercadopago.com/mla/account/credentials
[mercado_pago]
client_id = ''
client_secret = ''
;url de callback para configurar al momento de generar la preferencia de pago
back_url = 'http://127.0.0.1/sq_pagos_backend/mercado_pago/'
;url completa de la imagen default para mostrar en la página de mercadopago, puede ser el logo de la universidad
imagen_producto_default = 'http://www.siu.edu.ar/rd/Logos/SIU/logo_siu_sin_bajada_1.png'
;url para configurar las notificaciones que envía mercado pago
url_notificaciones = 'http://127.0.0.1/sq_pagos_backend/mercado_pago/notificacion'
; SQ UV Auth (usuario y contraseña con los que debe autenticarse la unidad de venta)
; la clave es el usuario y el valor la contraseña.
[sq_uv_users]
sq_uv = '123456'
sq_nucleo = '123456'
; IP de la unidad de venta que informará las bajas de los cupones de pagos
; de mercadopago
[sq_uv_ips]
ip1 = '127.0.0.1'
;especificar en segundos el tiempo maxima de espera
;de respuesta de una conexion a un servicio
[opciones_conexion]
connect_timeout = ''
timeout = ''
Se deben editar:
- Las credenciales de mercadopago de la cuenta a la que irá el dinero cobrado, la url de callback y la imagen default para mostrar en la página de mercadopago
- La url, usuario y contraseña de la API REST de la Unidad de Venta.
- Usuario y contraseña con los que debe autenticarse la unidad de venta para dar de baja los cupones de pago.
- IP de la unidad de venta que informará las bajas de los cupones de pago