-
Notifications
You must be signed in to change notification settings - Fork 0
/
core.php
266 lines (232 loc) · 10.3 KB
/
core.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
<?php
/**
* LibreDTE
* Copyright (C) SASCO SpA (https://sasco.cl)
*
* Este programa es software libre: usted puede redistribuirlo y/o
* modificarlo bajo los términos de la Licencia Pública General Affero de GNU
* publicada por la Fundación para el Software Libre, ya sea la versión
* 3 de la Licencia, o (a su elección) cualquier versión posterior de la
* misma.
*
* Este programa se distribuye con la esperanza de que sea útil, pero
* SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita
* MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO.
* Consulte los detalles de la Licencia Pública General Affero de GNU para
* obtener una información más detallada.
*
* Debería haber recibido una copia de la Licencia Pública General Affero de GNU
* junto a este programa.
* En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>.
*/
/** ESTE ARCHIVO SE DEBE CONFIGURAR Y RENOMBRAR A core.php */
/**
* @file core.php
* Configuración de la aplicación web de LibreDTE
* @version 2018-01-08
*/
// Configuración depuración
\sowerphp\core\Configure::write('debug', true);
\sowerphp\core\Configure::write('error.level', E_ALL);
// Tiempo máximo de ejecución del script a 10 minutos
ini_set('max_execution_time', 600);
// Tiempo de duración de la sesión en minutos
\sowerphp\core\Configure::write('session.expires', 600);
// Delimitador en archivos CSV
\sowerphp\core\Configure::write('spreadsheet.csv.delimiter', ';');
// Tema de la página (diseño)
\sowerphp\core\Configure::write('page.layout', 'LibreDTE');
// Textos de la página
\sowerphp\core\Configure::write('page.header.title', 'LibreDTE');
\sowerphp\core\Configure::write('page.body.title', 'LibreDTE');
\sowerphp\core\Configure::write('page.footer', [
// los créditos de LibreDTE: autor original y enlaces, se deben mantener visibles en el footer de cada página de la aplicación
// más información en los términos y condiciones de uso en https://wiki.libredte.cl/doku.php/terminos
'left' => '© '.date('Y').' '.\sowerphp\core\Configure::read('page.header.title').' - <a href="/consultar" title="Consultar documentos (incluyendo boletas)">Consultar DTE</a><br/><span class="small">Aplicación de facturación basada en <a href="https://libredte.cl">LibreDTE</a>, el cual es un proyecto de <a href="https://sasco.cl">SASCO SpA</a> que tiene como misión proveer facturación electrónica libre para Chile</span>',
'right' => '',
]);
// Menú principal del sitio web
\sowerphp\core\Configure::write('nav.website', [
'/dte' => ['name'=>'Facturación', 'desc'=>'Accede al módulo de facturación electrónica', 'icon'=>'fa fa-list-alt'],
'/utilidades' => ['name'=>'Utilidades', 'desc'=>'Utilidades y herramientas para generar documentos asociados a la facturación electrónica', 'icon'=>'fa fa-wrench'],
'/soporte' => ['name'=>'Soporte', 'desc'=>'¿Necesitas ayuda o tienes alguna consulta?', 'icon'=>'far fa-life-ring', 'nav'=>[
'https://wiki.libredte.cl/doku.php/faq'=>'Preguntas y respuestas frecuentes',
'https://groups.google.com/forum/#!forum/libredte' => 'Lista de correo en Google Groups',
'https://wiki.libredte.cl'=>'Wiki de documentación',
'https://sasco.cl/servicios/facturacion' => 'Soporte y asesoría entregado por SASCO SpA',
'https://libredte.cl' => 'Aplicación oficial en libredte.cl',
]],
]);
// Menú principal de la aplicación web
\sowerphp\core\Configure::write('nav.app', [
'/dte' => 'Facturación',
'/utilidades' => 'Utilidades',
'/certificacion' => 'Certificación',
'/dte/contribuyentes/seleccionar' => 'Seleccionar empresa',
'/sistema' => 'Sistema',
]);
// Menú por defecto de la empresa si no tiene definido uno personalizado
\sowerphp\core\Configure::write('nav.contribuyente', [
'/dte/documentos/emitir' => '<span class="fas fa-file-invoice"></span> Emitir documento',
'/dte/dte_tmps' => '<span class="far fa-file"></span> Documentos temporales',
'/dte/dte_emitidos/listar' => '<span class="fas fa-sign-out-alt"></span> Documentos emitidos',
'/dte/dte_recibidos/listar' => '<span class="fas fa-sign-in-alt"></span> Documentos recibidos',
'/dte/dte_intercambios/listar' => '<span class="fas fa-exchange-alt"></span> Bandeja intercambio',
'/dte/informes' => '<span class="fa fa-file"></span> Informes facturación',
]);
// Configuración para la base de datos
echo 'TEST: '.getenv('DB_HOST').' '.getenv('DB_PORT').' '.getenv('DB_USER').' '.getenv('DB_PASS').' '.getenv('DB_NAME');
$db_host = getenv('DB_HOST');
$db_port = getenv('DB_PORT');
$db_user = getenv('DB_USER');
$db_pass = getenv('DB_PASS');
$db_name = getenv('DB_NAME');
\sowerphp\core\Configure::write('database.default', array(
'type' => 'PostgreSQL',
'host' => $db_host ? $db_host : 'db',
'port' => $db_port ? $db_port : '5432',
'user' => $db_user ? $db_user : 'postgres',
'pass' => $db_pass ? $db_pass : '',
'name' => $db_name ? $db_name : 'libredte',
));
// Configuración para el correo electrónico
$email_type = getenv('EMAIL_TYPE');
$email_host = getenv('EMAIL_HOST');
$email_port = getenv('EMAIL_PORT');
$email_user = getenv('EMAIL_USER');
$email_pass = getenv('EMAIL_PASS');
$email_from_email = getenv('EMAIL_FROM_EMAIL');
$email_from_name = getenv('EMAIL_FROM_NAME');
$email_to = getenv('EMAIL_TO');
\sowerphp\core\Configure::write('email.default', array(
'type' => $email_type ? $email_type : 'smtp',
'host' => $email_host ? $email_host : 'ssl://smtp.gmail.com',
'port' => $email_port ? $email_port : 465,
'user' => $email_user ? $email_user : '',
'pass' => $email_pass ? $email_pass : '',
'from' => array(
'email' => $email_from_email ? $email_from_email : '',
'name' => $email_from_name ? $email_from_name : 'LibreDTE'
),
'to' => $email_to ? $email_to : '',
));
// Módulos que utiliza la aplicación
\sowerphp\core\Module::uses([
'Dev',
'Dte',
'Dte.Cobranzas',
'Dte.Informes',
'Dte.Admin',
'Dte.Admin.Informes',
'Dte.Admin.Mantenedores',
'Utilidades',
'Sistema.General',
'Sistema.General.DivisionGeopolitica',
]);
// módulos principales (extras a Dte) que sólo funcionan con una empresa registrada
//\sowerphp\core\Configure::write('app.modulos_empresa', []);
// Configuración para autorización secundaria (extensión: sowerphp/app)
/*\sowerphp\core\Configure::write('auth2', [
'name' => 'Latch',
'url' => 'https://latch.elevenpaths.com',
'app_id' => '',
'app_key' => '',
'default' => false,
]);*/
// Configuración para reCAPTCHA (extensión: sowerphp/app)
/*\sowerphp\core\Configure::write('recaptcha', [
'public_key' => '',
'private_key' => '',
]);*/
// Configuración para auto registro de usuarios (extensión: sowerphp/app)
/*\sowerphp\core\Configure::write('app.self_register', [
'groups' => ['usuarios', 'dte_basico'],
'terms' => 'https://wiki.libredte.cl/doku.php/terminos',
]);*/
// configuración de permisos de la empresa en la aplicación
\sowerphp\core\Configure::write('empresa.permisos', [
'admin' => [
'nombre' => 'Administrador',
'descripcion' => 'Incluye editar empresa y otros usuarios, respaldos, descargar CAF, corregir Track ID',
'grupos' => ['dte_plus'],
],
'dte' => [
'nombre' => 'Módulo facturación electrónica',
'descripcion' => 'Emisión de DTE, recepción, informes y libros de compra/venta',
'grupos' => ['dte_plus'],
],
]);
// configuración general del módulo DTE
$dte_pkey = getenv('DTE_PKEY');
\sowerphp\core\Configure::write('dte', [
// contraseña que se usará para encriptar datos sensibles en la BD
'pkey' => $dte_pkey ? $dte_pkey : '', // DEBE ser de 32 chars
// directorio para logos de las empresas (debe tener permisos de escritura)
'logos' => [
'dir' => '/data/logos',
'width' => 150,
'height' => 100,
],
// DTEs autorizados por defecto para ser usados por las nuevas empresas
'dtes' => [33, 56, 61],
// opciones para los PDF
'pdf' => [
// =true se asignará texto por defecto. String al lado izquiero o bien arreglo con índices left y right con sus textos
'footer' => true,
],
// validar SSL de sitios del SII
'verificar_ssl' => true,
// web verificacion boletas (debe ser la ruta completa, incluyendo /boletas)
'web_verificacion' => null,
]);
// configuración para API de contribuyentes
\sowerphp\core\Configure::write('api_contribuyentes', [
'dte_items' => [
'name' => 'Listado de items',
'desc' => 'Consultar los items a través de su código',
'link' => 'https://wiki.libredte.cl/doku.php/sowerphp/integracion/url_items',
],
'dte_pdf' => [
'name' => 'PDF de DTE',
'desc' => 'Servicio que genera el PDF a partir del XML del DTE',
'link' => 'http://blog.libredte.cl/index.php/2017/10/06/personaliza-el-pdf-de-tus-dte-como-quieras'
],
'dte_intercambio_responder' => [
'name' => 'Procesar intercambio',
'desc' => 'Servicio que procesa un intercambio de DTE e indica si se debe aceptar o reclamar',
'link' => 'https://wiki.libredte.cl/doku.php/sowerphp/integracion/procesar_intercambio',
],
]);
// configuración para firma electrónica
$esign_file = getenv('ESIGN_FILE');
$esign_pass = getenv('ESIGN_PASS');
/*\sowerphp\core\Configure::write('firma_electronica.default', [
'file' => '/data/firma_electronica/'.$esign_file,
'pass' => $esign_pass ? $esign_pass : '',
]);*/
// configuración para firma electrónica
/*\sowerphp\core\Configure::write('firma_electronica.default', [
'file' => DIR_PROJECT.'/data/firma_electronica/default.p12',
'pass' => '',
]);*/
// configuración para autenticación en API a usuarios no logueados
/*\sowerphp\core\Configure::write('api.default', [
'token' => '',
]);*/
// configuración para preautenticación
/*\sowerphp\core\Configure::write('preauth', [
'enabled' => false,
]);*/
// configuración para API de Dropbox
/*\sowerphp\core\Configure::write('backup.dropbox', [
'key' => '',
'secret' => '',
]);*/
// configuración autenticación servicios externos
/*\sowerphp\core\Configure::write('proveedores.api', [
'libredte' => '',
]);*/
// handler para triggers de la app
//\sowerphp\core\Configure::write('app.trigger_handler', '');
// directorio para datos estáticos (debe tener permisos de escritura)
define('DIR_STATIC', DIR_PROJECT.'/data/static');