<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.

Yii::setPathOfAlias('bootstrap', dirname(__FILE__).'/../extensions/bootstrap');
Yii::setPathOfAlias('mailer', dirname(__FILE__).'/../extensions/mailer');
include dirname(__FILE__).'/database.php';

return [
    'basePath' => dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name' => 'SAICA',
    'defaultController' => 'cruge/ui/login',

    // preloading 'log' component
    'preload' => ['log'],

    // autoloading model and component classes
    'import' => [
        'application.models.*',
        'application.components.*',
        'application.controllers.*',
        'application.extensions.*',
        'application.modules.cruge.components.*',
        'application.modules.cruge.extensions.crugemailer.*',
        'application.modules.aportes.models.*',
    ],
    'theme' => 'bootstrap',
    'modules' => [
        'gii' => [
            'class' => 'system.gii.GiiModule',
            'password' => '1',
            'generatorPaths' => ['bootstrap.gii'],
            // 'ipFilters'=>array('186.89.11.73','::1'),
        ],
        'contable',
        'reembolso',
        'asociado',
        'aportes',
        'reportes',
        'retiro',
        'configuracion',
        'prestamo',
        'ayudas',
        'montepio',
        'pagos',
        'cobro',
        'ajustehaberes',
        'cruge' => [
            'tableprefix' => 'cruge_',

            // para que utilice a protected.modules.cruge.models.auth.CrugeAuthDefault.php
            //
            // en vez de 'default' pon 'authdemo' para que utilice el demo de autenticacion alterna
            // para saber mas lee documentacion de la clase modules/cruge/models/auth/AlternateAuthDemo.php
            //
            'availableAuthMethods' => ['default'],

            'availableAuthModes' => ['username', 'email'],

            // url base para los links de activacion de cuenta de usuario
            'baseUrl' => 'http://coco.com/',

            // NO OLVIDES PONER EN FALSE TRAS INSTALAR
            'debug' => false,
            'rbacSetupEnabled' => true,
            'allowUserAlways' => false,

            // MIENTRAS INSTALAS..PONLO EN: false
            // lee mas abajo respecto a 'Encriptando las claves'
            //
            'useEncryptedPassword' => true,

            // Algoritmo de la función hash que deseas usar
            // Los valores admitidos están en: http://www.php.net/manual/en/function.hash-algos.php
            'hash' => 'md5',

            // Estos tres atributos controlan la redirección del usuario. Solo serán son usados si no
            // hay un filtro de sesion definido (el componente MiSesionCruge), es mejor usar un filtro.
            //  lee en la wiki acerca de:
            //   "CONTROL AVANZADO DE SESIONES Y EVENTOS DE AUTENTICACION Y SESION"
            //
            // ejemplo:
            //		'afterLoginUrl'=>array('/site/welcome'),  ( !!! no olvidar el slash inicial / )
            //		'afterLogoutUrl'=>array('/site/page','view'=>'about'),
            //
            'afterLoginUrl' => null,
            'afterLogoutUrl' => null,
            'afterSessionExpiredUrl' => ['/cruge/ui/login'],

            // manejo del layout con cruge.
            //
            'loginLayout' => '//layouts/column2',
            'registrationLayout' => '//layouts/column2',
            'activateAccountLayout' => '//layouts/column2',
            'editProfileLayout' => '//layouts/column2',
            // en la siguiente puedes especificar el valor "ui" o "column2" para que use el layout
            // de fabrica, es basico pero funcional.  si pones otro valor considera que cruge
            // requerirá de un portlet para desplegar un menu con las opciones de administrador.
            //
            'generalUserManagementLayout' => 'ui',

            // permite indicar un array con los nombres de campos personalizados,
            // incluyendo username y/o email para personalizar la respuesta de una consulta a:
            // $usuario->getUserDescription();
            'userDescriptionFieldsArray' => ['email'],
        ],
    ],

    // application components
    'components' => [
        'bootstrap' => [
            'class' => 'bootstrap.components.Bootstrap',
        ],
        'mailer' => [
            'class' => 'mailer.phpmailer',
        ],
        'user' => [
            // enable cookie-based authentication
            'allowAutoLogin' => true,
        ],
        // uncomment the following to enable URLs in path-format
        // 'urlManager' => [
        //     'urlFormat' => 'path',
        //     'rules' => [
        //         '<controller:\w+>/<id:\d+>' => '<controller>/view',
        //         '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        //         '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        //     ],
        // ],

        'db' => getDatabases('db'),
        'db2' => getDatabases('db2'),

        'session' => [
            'autoStart' => false,
            'timeout' => 36000, //timeout after 20 mins
            //set other properties of Session component below this line
        ],
        'errorHandler' => [
            // use 'site/error' action to display errors
            'errorAction' => 'site/error',
        ],

        // 'log' => [
        //     'class' => 'CLogRouter',
        //     'routes' => [
        //         [
        //             'class' => 'CFileLogRoute',
        //             'levels' => 'error, warning, info',
        //         ],
        //         [
        //             'class' => 'CWebLogRoute',
        //             'levels' => 'error',
        //         ],
        //     ],
        // ],

        'user' => [
            'allowAutoLogin' => true,
            'class' => 'application.modules.cruge.components.CrugeWebUser',
            'loginUrl' => ['/cruge/ui/login'],
        ],
        'authManager' => [
            'class' => 'application.modules.cruge.components.CrugeAuthManager',
        ],
        'crugemailer' => [
            'class' => 'application.modules.cruge.components.CrugeMailer',
            'mailfrom' => 'email-desde-donde-quieres-enviar-los-mensajes@xxxx.com',
            'subjectprefix' => 'Tu Encabezado del asunto - ',
            'debug' => true,
        ],
        'format' => [
            'datetimeFormat' => 'd-m-Y h:i:s a',
            'dateFormat' => 'd-m-Y',
            'numberFormat' => [
                'decimals' => 2,
                'decimalSeparator' => ',',
                'thousandSeparator' => '.',
            ],
        ],
    ],
    'language' => 'es',
    'sourceLanguage' => 'en',

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params' => [
        // this is used in contact page

        //'defaultController'=>'asociado/admin',
        'adminEmail' => 'webmaster@example.com',
        'rutaNominaAportes' => 'doc/carga_masiva_aportes/',
        'rutaErroresNominaAportes' => 'doc/errores/',
        'rutaTxtPagos' => 'doc/pagos/',
        'rutaRecaudos' => 'doc/recaudos_mpma/',
        'rutaOrdenPago' => 'doc/carga_masiva_orden_pago/',
        'rutaAjusteHaberes' => 'doc/carga_masiva_ajuste_haberes/',
        //'adminEmail'=>'webmaster@example.com',
    ],
];
