Merge branch 'develop'

This commit is contained in:
2022-03-07 12:07:51 -03:00
28 changed files with 342 additions and 209 deletions

2
.adminer.env.sample Normal file
View File

@ -0,0 +1,2 @@
ADMINER_DESIGN=dracula
ADMINER_PLUGINS=dump-json

4
.db.env.sample Normal file
View File

@ -0,0 +1,4 @@
MYSQL_DATABASE=
MYSQL_PASSWORD=
MYSQL_ROOT_PASSWORD=
MYSQL_USER=

2
.env.sample Normal file
View File

@ -0,0 +1,2 @@
BASE_URL=
MYSQL_HOST=

19
.gitignore vendored
View File

@ -1,9 +1,10 @@
.env **/*.env
/vendor/ **/vendor/
composer.lock **/composer.lock
/node_modules/ **/node_modules/
package-lock.json **/package-lock.json
Pipfile.lock **/Pipfile.lock
/logs/ **/logs/
/cache/ **/cache/
/modules/ **/modules/
**/.idea/

View File

@ -1,6 +1,12 @@
FROM php:7.4-fpm FROM php:7.4-fpm
RUN docker-php-ext-install pdo pdo_mysql RUN apt-get update && apt-get install -y libzip-dev libicu-dev git
RUN docker-php-ext-install pdo pdo_mysql zip intl
RUN pecl install xdebug-3.0.3 \ RUN pecl install xdebug-3.0.3 \
&& docker-php-ext-enable xdebug && docker-php-ext-enable xdebug
COPY --from=composer /usr/bin/composer /usr/bin/composer
WORKDIR /code

View File

@ -3,8 +3,8 @@
"description" : "Asset manager module for my apps", "description" : "Asset manager module for my apps",
"type" : "library", "type" : "library",
"require" : { "require" : {
"aldarien/config" : "dev-master", "aldarien/config" : "*",
"aldarien/contract" : "dev-master" "aldarien/contract" : "*"
}, },
"require-dev" : { "require-dev" : {
"phpunit/phpunit" : "^6.3" "phpunit/phpunit" : "^6.3"

View File

@ -10,8 +10,8 @@
} }
], ],
"require": { "require": {
"aldarien/contract": "dev-master", "aldarien/contract": "*",
"aldarien/root": "dev-master", "aldarien/root": "*",
"symfony/yaml": "^3.3" "symfony/yaml": "^3.3"
}, },
"autoload": { "autoload": {

View File

@ -4,7 +4,7 @@
"type" : "library", "type" : "library",
"require-dev" : { "require-dev" : {
"phpunit/phpunit" : "^6", "phpunit/phpunit" : "^6",
"aldarien/config": "dev-master" "aldarien/config": "*"
}, },
"license" : "MIT", "license" : "MIT",
"authors" : [{ "authors" : [{

View File

@ -4,7 +4,7 @@
"type" : "library", "type" : "library",
"require" : { "require" : {
"wixel/gump" : "^1.5", "wixel/gump" : "^1.5",
"aldarien/contract" : "dev-master" "aldarien/contract" : "*"
}, },
"require-dev" : { "require-dev" : {
"phpunit/phpunit" : "^6.3" "phpunit/phpunit" : "^6.3"

View File

@ -4,7 +4,7 @@
"type": "library", "type": "library",
"require": { "require": {
"aura/session": "^2.1", "aura/session": "^2.1",
"aldarien/contract": "dev-master" "aldarien/contract": "*"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^6.3" "phpunit/phpunit": "^6.3"

View File

@ -3,8 +3,8 @@
"description" : "Get relative path uri", "description" : "Get relative path uri",
"type" : "library", "type" : "library",
"require" : { "require" : {
"aldarien/contract" : "dev-master", "aldarien/contract" : "*",
"aldarien/root" : "dev-master", "aldarien/root" : "*",
"league/uri": "^5.2", "league/uri": "^5.2",
"sabre/uri": "^2.1" "sabre/uri": "^2.1"
}, },

View File

@ -4,8 +4,8 @@
"type": "library", "type": "library",
"require": { "require": {
"philo/laravel-blade": "^3.1", "philo/laravel-blade": "^3.1",
"aldarien/contract": "dev-master", "aldarien/contract": "*",
"aldarien/config": "dev-master" "aldarien/config": "*"
}, },
"license": "MIT", "license": "MIT",
"authors": [ "authors": [

View File

@ -1,6 +1,7 @@
<?php <?php
include_once dirname(__DIR__) . '/vendor/autoload.php'; include_once dirname(__DIR__) . '/vendor/autoload.php';
include_once 'errors.php'; include_once 'errors.php';
include_once 'dotenv.php';
include_once 'database.php'; include_once 'database.php';
include_once 'routes.php'; include_once 'routes.php';
?> ?>

12
bootstrap/dotenv.php Normal file
View File

@ -0,0 +1,12 @@
<?php
use Dotenv\Dotenv;
$folder = dirname(__DIR__);
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir() or $file->getExtension() != 'env') {
continue;
}
$env = Dotenv::createImmutable($file->getPath(), $file->getBasename());
$env->load();
}

View File

@ -3,26 +3,27 @@
"description" : "Intranet portal for Incoviba", "description" : "Intranet portal for Incoviba",
"type" : "project", "type" : "project",
"require" : { "require" : {
"aldarien/config" : "dev-master", "aldarien/config" : "*",
"aldarien/asset" : "dev-master", "aldarien/asset" : "*",
"aldarien/format" : "dev-master", "aldarien/format" : "*",
"aldarien/response" : "dev-master", "aldarien/response" : "*",
"aldarien/view" : "dev-master", "aldarien/view" : "*",
"aldarien/session" : "dev-master", "aldarien/session" : "*",
"aldarien/url": "*",
"j4mie/paris" : "^1.5", "j4mie/paris" : "^1.5",
"danielstjules/stringy" : "^3.1", "danielstjules/stringy" : "^3.1",
"phpoffice/phpspreadsheet": "1-beta", "phpoffice/phpspreadsheet": "1-beta",
"aldarien/url": "dev-master",
"nesbot/carbon": "^2", "nesbot/carbon": "^2",
"phpoffice/phpword": "^0.14.0", "phpoffice/phpword": "^0.14.0",
"slam/php-excel": "^4.4", "slam/php-excel": "^4.4",
"fabpot/goutte": "^3.2", "fabpot/goutte": "^3.2",
"incoviba/modelos": "dev-master", "incoviba/modelos": "*",
"slim/slim": "4.x-dev", "slim/slim": "4.x-dev",
"php-di/slim-bridge": "dev-master", "php-di/slim-bridge": "dev-master",
"rubellum/slim-blade-view": "dev-master", "rubellum/slim-blade-view": "dev-master",
"nyholm/psr7": "1.4.x-dev", "nyholm/psr7": "1.4.x-dev",
"nyholm/psr7-server": "dev-master" "nyholm/psr7-server": "dev-master",
"vlucas/phpdotenv": "^5.3"
}, },
"require-dev" : { "require-dev" : {
"phpunit/phpunit" : "^6.3", "phpunit/phpunit" : "^6.3",
@ -51,15 +52,12 @@
"type": "path", "type": "path",
"url": "./aldarien/**", "url": "./aldarien/**",
"options": { "options": {
"symlink": false "symlink": false
} }
}, },
{ {
"type": "path", "type": "path",
"url": "./incoviba/modelos", "url": "./incoviba/modelos"
"options": {
"symlink": false
}
} }
] ]
} }

View File

@ -1,11 +1,13 @@
<?php <?php
include_once dirname(__DIR__) . '/bootstrap/dotenv.php';
return [ return [
'mysql' => [ 'mysql' => [
'host' => 'localhost', 'host' => $_ENV['MYSQL_HOST'],
//'port' => 3306, //'port' => 3306,
'database' => 'incoviba', 'database' => $_ENV['MYSQL_DATABASE'],
'username' => 'incoviba', 'username' => $_ENV['MYSQL_USER'],
'password' => '5GQYFvRjVw2A4KcD' 'password' => $_ENV['MYSQL_PASSWORD']
], ],
'mysql_copy' => [ 'mysql_copy' => [
'host' => 'localhost', 'host' => 'localhost',

View File

@ -13,8 +13,6 @@ services:
php: php:
build: . build: .
container_name: php container_name: php
ports:
- 9123:9000
volumes: volumes:
- .:/code - .:/code
@ -22,8 +20,6 @@ services:
container_name: db container_name: db
image: mariadb:latest image: mariadb:latest
restart: unless-stopped restart: unless-stopped
ports:
- 3308:3306
env_file: .db.env env_file: .db.env
volumes: volumes:
- dbdata:/var/lib/mysql - dbdata:/var/lib/mysql

View File

@ -20,5 +20,10 @@ class Escritura extends Model
{ {
return $this->belongs_to(Pago::class, 'pago')->findOne(); return $this->belongs_to(Pago::class, 'pago')->findOne();
} }
public function valor(string $tipo = 'pesos')
{
return $this->pago()->valor($tipo);
}
} }
?> ?>

Submodule modules/operadores updated: 71e10c52bd...4f7241e146

View File

@ -5,32 +5,32 @@ use DI\Bridge\Slim\Bridge;
include_once 'composer.php'; include_once 'composer.php';
$folders = [ $folders = [
'env', 'settings',
'common',
$__environment
];
$files = [
'config',
'setups' 'setups'
]; ];
$builder = new Builder(); $builder = new Builder();
foreach ($files as $file) { foreach ($folders as $f) {
foreach ($folders as $folder) { $folder = implode(DIRECTORY_SEPARATOR, [
$filename = implode(DIRECTORY_SEPARATOR, [ __DIR__,
__DIR__, $f
$folder, ]);
$file . '.php' if (!file_exists($folder)) {
]); continue;
if (!file_exists($filename)) { }
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir() or $file->getExtension() != 'php') {
continue; continue;
} }
$builder->addDefinitions($filename); $builder->addDefinitions($file->getRealPath());
} }
} }
$container = $builder->build(); $container = $builder->build();
$app = Bridge::create($container); $app = Bridge::create($container);
$app->setBasePath($app->getContainer()->get('base_url')); if ($app->getContainer()->has('base_url') and $app->getContainer()->get('base_url') != '') {
$app->setBasePath($app->getContainer()->get('base_url'));
}
$app->addRoutingMiddleware(); $app->addRoutingMiddleware();
foreach ($folders as $folder) { foreach ($folders as $folder) {

View File

@ -10,11 +10,11 @@ return [
'databases' => function() { 'databases' => function() {
$arr = [ $arr = [
'mysql' => [ 'mysql' => [
'host' => 'localhost', 'host' => $_ENV['MYSQL_HOST'],
//'port' => 3306, //'port' => 3306,
'database' => 'incoviba', 'database' => $_ENV['MYSQL_DATABASE'],
'username' => 'incoviba', 'username' => $_ENV['MYSQL_USER'],
'password' => '5GQYFvRjVw2A4KcD' 'password' => $_ENV['MYSQL_PASSWORD']
], ],
'mysql_copy' => [ 'mysql_copy' => [
'host' => 'localhost', 'host' => 'localhost',

16
setup/env/config.php vendored
View File

@ -1,6 +1,18 @@
<?php <?php
use Dotenv\Dotenv;
$folder = dirname(__DIR__, 2);
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir() or $file->getExtension() != 'env') {
continue;
}
$env = Dotenv::createImmutable($file->getPath(), $file->getBasename());
$env->load();
}
return [ return [
'debug' => false, 'debug' => $_ENV['DEBUG'] ?? false,
'benchmark' => false, 'benchmark' => false,
'base_url' => '/incoviba' 'base_url' => $_ENV['BASE_URL']//'/incoviba'
]; ];

18
setup/settings/01_env.php Normal file
View File

@ -0,0 +1,18 @@
<?php
use Dotenv\Dotenv;
$folder = dirname(__DIR__, 2);
$files = new DirectoryIterator($folder);
foreach ($files as $file) {
if ($file->isDir() or $file->getExtension() != 'env') {
continue;
}
$env = Dotenv::createImmutable($file->getPath(), $file->getBasename());
$env->load();
}
return [
'debug' => $_ENV['DEBUG'] ?? false,
'benchmark' => false,
'base_url' => $_ENV['BASE_URL'] ?? '/incoviba'
];

View File

@ -0,0 +1,40 @@
<?php
return [
'timezone' => 'America/Santiago',
'locale' => 'es',
'database' => 'mysql',
'login_hours' => 5*24,
'cierres' => [
'caducidad' => 30
],
'databases' => function() {
$arr = [
'mysql' => [
'host' => $_ENV['MYSQL_HOST'],
//'port' => 3306,
'database' => $_ENV['MYSQL_DATABASE'],
'username' => $_ENV['MYSQL_USER'],
'password' => $_ENV['MYSQL_PASSWORD']
],
'mysql_copy' => [
'host' => 'localhost',
'database' => 'incoviba3',
'username' => 'incoviba',
'password' => '5GQYFvRjVw2A4KcD'
]
];
return $arr;
},
'locations' => function() {
$arr = ['base' => dirname(__DIR__, 2)];
$arr['public'] = $arr['base'] . '/public';
$arr['resources'] = $arr['base'] . '/resources';
$arr['routes'] = $arr['resources'] . '/routes';
$arr['src'] = $arr['base'] . '/src';
$arr['app'] = $arr['base'] . '/app';
$arr['controllers'] = $arr['app'] . '/Controller';
$arr['money'] = 'http://provm.cl/optimus/money';
$arr['api'] = 'http://localhost:8080/api';
return (object) $arr;
}
];

View File

@ -0,0 +1,8 @@
<?php
use Psr\Container\ContainerInterface as Container;
return [
'base_url' => DI\decorate(function($prev, Container $c) {
return $prev . '/api';
})
];

11
setup/settings/04_ui.php Normal file
View File

@ -0,0 +1,11 @@
<?php
use Psr\Container\ContainerInterface as Container;
return [
'locations' => DI\decorate(function($prev, Container $c) {
$arr = (array) $prev;
$arr['cache'] = $prev->base . '/cache';
$arr['views'] = $prev->resources . '/views';
return (object) $arr;
})
];

15
setup/setups/04_ui.php Normal file
View File

@ -0,0 +1,15 @@
<?php
use Psr\Container\ContainerInterface as Container;
return [
Slim\Views\Blade::class => function(Container $c) {
return new Slim\Views\Blade(
$c->get('locations')->views,
$c->get('locations')->cache,
null,
[
'locations' => $c->get('locations')
]
);
}
];