Compare commits
13 Commits
82ba2cfdff
...
06558d778d
Author | SHA1 | Date | |
---|---|---|---|
06558d778d | |||
538833a5a4 | |||
7bee4e3bb4 | |||
0c640d6cab | |||
6d871d77fe | |||
b0267320a1 | |||
a668b6b7be | |||
3cf67a71b6 | |||
6ddc48ec60 | |||
331ee1e584 | |||
24c17debf3 | |||
552fd0aa06 | |||
60faf293d4 |
@ -2,6 +2,7 @@
|
||||
namespace Incoviba\Common\Define\Cartola;
|
||||
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
use Incoviba\Exception\ServiceAction\Read;
|
||||
|
||||
interface Banco
|
||||
{
|
||||
@ -9,6 +10,7 @@ interface Banco
|
||||
* Process bank movements for database inserts
|
||||
* @param UploadedFileInterface $file
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
public function process(UploadedFileInterface $file): array;
|
||||
|
||||
|
@ -3,10 +3,16 @@ namespace Incoviba\Common\Ideal\Cartola;
|
||||
|
||||
use Incoviba\Common\Define;
|
||||
use Incoviba\Common\Ideal\Service;
|
||||
use Incoviba\Exception\ServiceAction\Read;
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
|
||||
abstract class Banco extends Service implements Define\Cartola\Banco
|
||||
{
|
||||
/**
|
||||
* @param UploadedFileInterface $file
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
public function process(UploadedFileInterface $file): array
|
||||
{
|
||||
$filename = $this->processUploadedFile($file);
|
||||
@ -40,6 +46,7 @@ abstract class Banco extends Service implements Define\Cartola\Banco
|
||||
* Process the temp file from getFilename and remove it
|
||||
* @param string $filename
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
protected function processFile(string $filename): array
|
||||
{
|
||||
@ -88,6 +95,7 @@ abstract class Banco extends Service implements Define\Cartola\Banco
|
||||
* Translate uploaded file data to database data
|
||||
* @param string $filename
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
abstract protected function parseFile(string $filename): array;
|
||||
}
|
||||
|
68
app/common/Implement/Log/Processor/Exception.php
Normal file
68
app/common/Implement/Log/Processor/Exception.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
namespace Incoviba\Common\Implement\Log\Processor;
|
||||
|
||||
use Throwable;
|
||||
use Monolog\LogRecord;
|
||||
use Monolog\Processor\ProcessorInterface;
|
||||
|
||||
class Exception implements ProcessorInterface
|
||||
{
|
||||
public function __invoke(LogRecord $record): LogRecord
|
||||
{
|
||||
$context = $record->context;
|
||||
$changed = false;
|
||||
array_walk_recursive($context, function (&$item) use (&$changed) {
|
||||
if (is_a($item, Throwable::class)) {
|
||||
$item = $this->processException($item);
|
||||
$changed = true;
|
||||
}
|
||||
});
|
||||
if ($changed) {
|
||||
$new_record = new LogRecord(
|
||||
$record->datetime,
|
||||
$record->channel,
|
||||
$record->level,
|
||||
$record->message,
|
||||
$context,
|
||||
$record->extra
|
||||
);
|
||||
$record = $new_record;
|
||||
}
|
||||
if (is_a($record->message, Throwable::class)) {
|
||||
$exception = $record->message;
|
||||
$output = $this->processException($exception);
|
||||
$message = $output['message'];
|
||||
if (array_key_exists('exception', $context)) {
|
||||
$context['other_exception'] = $context['exception'];
|
||||
}
|
||||
$context['exception'] = $output;
|
||||
$new_record = new LogRecord(
|
||||
$record->datetime,
|
||||
$record->channel,
|
||||
$record->level,
|
||||
$message,
|
||||
$context,
|
||||
$record->extra
|
||||
);
|
||||
$record = $new_record;
|
||||
}
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
protected function processException(Throwable $exception): array
|
||||
{
|
||||
$output = [
|
||||
'class' => get_class($exception),
|
||||
'code' => $exception->getCode(),
|
||||
'message' => $exception->getMessage(),
|
||||
'file' => $exception->getFile(),
|
||||
'line' => $exception->getLine(),
|
||||
'trace' => $exception->getTraceAsString(),
|
||||
];
|
||||
if ($exception->getPrevious() !== null) {
|
||||
$output['previous'] = $this->processException($exception);
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
}
|
@ -338,6 +338,7 @@
|
||||
data.errors.forEach(errorData => {
|
||||
console.error(errorData)
|
||||
})
|
||||
throw Error('Error al importar cartolas')
|
||||
}
|
||||
this.data.movimientos = data.movimientos.map(movimiento => new Movimiento(movimiento))
|
||||
this.draw().movimientos()
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="header">
|
||||
{{$inmobiliaria->abreviacion}}
|
||||
</div>
|
||||
<div class="description">{{$inmobiliaria->razon}} {{$inmobiliaria->tipoSociedad->descripcion}}</div>
|
||||
<div class="description">{{$inmobiliaria->razon}} {{$inmobiliaria->tipoSociedad?->descripcion ?? ''}}</div>
|
||||
<div class="meta">{{$inmobiliaria->rut()}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -6,7 +6,12 @@
|
||||
|
||||
@section('venta_content')
|
||||
<div class="ui segment">
|
||||
El departamento {{$venta->propiedad()->departamentos()[0]->descripcion}}:<br />
|
||||
@if (count($venta->propiedad()->departamentos()) > 0)
|
||||
El departamento {{$venta->propiedad()->departamentos()[0]->descripcion}}:<br />
|
||||
@else
|
||||
La unidad {{ ucwords($venta->propiedad()->principal()?->proyectoTipoUnidad->tipoUnidad->descripcion) }}
|
||||
{{ $venta->propiedad()->principal()?->descripcion }}:<br />
|
||||
@endif
|
||||
@php
|
||||
$estacionamientos = $venta->propiedad()->estacionamientos();
|
||||
@endphp
|
||||
|
@ -25,6 +25,7 @@ return [
|
||||
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class),
|
||||
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
|
||||
$container->get(Monolog\Processor\UidProcessor::class),
|
||||
$container->get(Incoviba\Common\Implement\Log\Processor\Exception::class),
|
||||
];
|
||||
},
|
||||
'baseDefaultHandlers' => function(ContainerInterface $container) {
|
||||
|
@ -2,6 +2,7 @@
|
||||
namespace Incoviba\Controller\API\Contabilidad;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use Incoviba\Exception\ServiceAction\Read;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Incoviba\Common\Ideal\Controller;
|
||||
@ -117,24 +118,21 @@ class Cartolas extends Controller
|
||||
UPLOAD_ERR_CANT_WRITE => 'No se pudo escribir el archivo',
|
||||
UPLOAD_ERR_EXTENSION => 'Una extensión de PHP detuvo la subida del archivo'
|
||||
];
|
||||
if (is_array($files['file'])) {
|
||||
foreach ($files['file'] as $i => $file) {
|
||||
if ($file->getError() !== UPLOAD_ERR_OK) {
|
||||
$output['errors'] []= ['filename' => $file->getClientFilename(), 'error' => $errors[$file->getError()]];
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
$output['movimientos'] = array_merge($output['movimientos'], $cartolaService->import($body['cuenta_id'][$i], $file));
|
||||
} catch (EmptyResult) {}
|
||||
}
|
||||
} else {
|
||||
$file = $files['file'];
|
||||
if (!is_array($files['file'])) {
|
||||
$files['file'] = [$files['file']];
|
||||
$body['cuenta_id'] = [$body['cuenta_id']];
|
||||
}
|
||||
foreach ($files['file'] as $i => $file) {
|
||||
if ($file->getError() !== UPLOAD_ERR_OK) {
|
||||
$output['errors'][] = ['filename' => $file->getClientFilename(), 'error' => $errors[$file->getError()]];
|
||||
} else {
|
||||
try {
|
||||
$output['movimientos'] = $cartolaService->import($body['cuenta_id'], $file);
|
||||
} catch (EmptyResult) {}
|
||||
$output['errors'] []= ['filename' => $file->getClientFilename(), 'error' => $errors[$file->getError()]];
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
$output['movimientos'] = array_merge($output['movimientos'], $cartolaService->import($body['cuenta_id'][$i], $file));
|
||||
} catch (Read $exception) {
|
||||
$output['errors'] []= ['filename' => $file->getClientFilename(),
|
||||
'error' => ['message' => $exception->getMessage(), 'file' => $exception->getFile(),
|
||||
'line' => $exception->getLine()]];
|
||||
}
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
|
@ -53,7 +53,7 @@ class Money
|
||||
}
|
||||
try {
|
||||
$this->data[$provider] = (array) $this->fetchRedis($redisService, $redisKey);
|
||||
if (!isset($this->data[$provider][$date->format('Y-m-d')])) {
|
||||
if (!isset($this->data[$provider][$date->format('Y-m-d')]) or $this->data[$provider][$date->format('Y-m-d')] === 0) {
|
||||
throw new EmptyRedis($redisKey);
|
||||
}
|
||||
} catch (EmptyRedis) {
|
||||
|
@ -1,18 +1,21 @@
|
||||
<?php
|
||||
namespace Incoviba\Service\Contabilidad;
|
||||
|
||||
use DateMalformedStringException;
|
||||
use PDOException;
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Psr\Http\Message\StreamFactoryInterface;
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use PhpOffice\PhpSpreadsheet;
|
||||
use Incoviba\Common\Define\Cartola\Banco;
|
||||
use Incoviba\Common\Define\Contabilidad\Exporter;
|
||||
use Incoviba\Common\Ideal\Service;
|
||||
use Incoviba\Common\Implement\Exception;
|
||||
use Incoviba\Exception\ServiceAction\Read;
|
||||
use Incoviba\Model;
|
||||
use Incoviba\Repository;
|
||||
use Psr\Http\Message\StreamFactoryInterface;
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class Cartola extends Service
|
||||
{
|
||||
@ -32,6 +35,13 @@ class Cartola extends Service
|
||||
$this->bancos[$name] = $banco;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Model\Contabilidad\Banco $banco
|
||||
* @param UploadedFileInterface $file
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
public function process(Model\Contabilidad\Banco $banco, UploadedFileInterface $file): array
|
||||
{
|
||||
return $this->bancos[strtolower($banco->nombre)]->process($file);
|
||||
@ -93,9 +103,19 @@ class Cartola extends Service
|
||||
return compact('cartola', 'movimientos');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $cuenta_id
|
||||
* @param UploadedFileInterface $file
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
public function import(int $cuenta_id, UploadedFileInterface $file): array
|
||||
{
|
||||
$cuenta = $this->cuentaRepository->fetchById($cuenta_id);
|
||||
try {
|
||||
$cuenta = $this->cuentaRepository->fetchById($cuenta_id);
|
||||
} catch (Exception\EmptyResult $exception) {
|
||||
throw new Read(__CLASS__, $exception);
|
||||
}
|
||||
$movimientos = $this->process($cuenta->banco, $file);
|
||||
|
||||
$inmobiliaria = $cuenta->inmobiliaria;
|
||||
@ -106,15 +126,23 @@ class Cartola extends Service
|
||||
if (array_key_exists('centro_costo', $dataMovimiento) and $dataMovimiento['centro_costo'] !== 0) {
|
||||
$dataMovimiento['centro_costo_id'] = $dataMovimiento['centro_costo'];
|
||||
}
|
||||
$dataMovimiento['fecha'] = new DateTimeImmutable($dataMovimiento['fecha']);
|
||||
try {
|
||||
$dataMovimiento['fecha'] = new DateTimeImmutable($dataMovimiento['fecha']);
|
||||
} catch (DateMalformedStringException) {
|
||||
continue;
|
||||
}
|
||||
if (array_key_exists('rut', $dataMovimiento)) {
|
||||
$ruts = $this->parseRut($dataMovimiento['rut']);
|
||||
if (key_exists('rut', $ruts)) {
|
||||
$dataMovimiento['rut'] = $ruts['rut'];
|
||||
$dataMovimiento['digito'] = $ruts['digito'];
|
||||
if ($dataMovimiento['rut'] === '') {
|
||||
unset($dataMovimiento['rut']);
|
||||
} else {
|
||||
$dataMovimiento['rut'] = $ruts[0]['rut'];
|
||||
$dataMovimiento['digito'] = $ruts[0]['digito'];
|
||||
$ruts = $this->parseRut($dataMovimiento['rut']);
|
||||
if (key_exists('rut', $ruts)) {
|
||||
$dataMovimiento['rut'] = $ruts['rut'];
|
||||
$dataMovimiento['digito'] = $ruts['digito'];
|
||||
} else {
|
||||
$dataMovimiento['rut'] = $ruts[0]['rut'];
|
||||
$dataMovimiento['digito'] = $ruts[0]['digito'];
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
@ -133,14 +161,28 @@ class Cartola extends Service
|
||||
$fechas = array_unique(array_map(function($movimiento) {
|
||||
return $movimiento['fecha']->format('Y-m-d');
|
||||
}, $movimientos));
|
||||
if (count($fechas) === 0) {
|
||||
throw new Read(__CLASS__);
|
||||
}
|
||||
|
||||
foreach ($fechas as $dia) {
|
||||
try {
|
||||
$this->cartolaRepository->fetchByCuentaAndFecha($cuenta->id, new DateTimeImmutable($dia));
|
||||
$dayDate = new DateTimeImmutable($dia);
|
||||
} catch (DateMalformedStringException) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
$this->cartolaRepository->fetchByCuentaAndFecha($cuenta->id, $dayDate);
|
||||
continue;
|
||||
} catch (Exception\EmptyResult) {}
|
||||
|
||||
$movs = array_filter($movimientos, function($movimiento) use ($dia) {
|
||||
return $movimiento['fecha'] === $dia;
|
||||
return $movimiento['fecha']->format('Y-m-d') === $dia;
|
||||
});
|
||||
if (count($movs) === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$cargos = array_sum(array_map(function($movimiento) {
|
||||
return $movimiento['cargo'];
|
||||
}, $movs));
|
||||
@ -153,11 +195,19 @@ class Cartola extends Service
|
||||
'abonos' => $abonos,
|
||||
'saldo' => $saldo
|
||||
];
|
||||
$this->buildCartola($cuenta, new DateTimeImmutable($dia), $cartolaData);
|
||||
$this->buildCartola($cuenta, $dayDate, $cartolaData);
|
||||
}
|
||||
|
||||
$startDate = new DateTimeImmutable(min($fechas));
|
||||
$endDate = new DateTimeImmutable(max($fechas));
|
||||
try {
|
||||
$startDate = new DateTimeImmutable(min($fechas));
|
||||
} catch (DateMalformedStringException $exception) {
|
||||
throw new Read(__CLASS__, $exception);
|
||||
}
|
||||
try {
|
||||
$endDate = new DateTimeImmutable(max($fechas));
|
||||
} catch (DateMalformedStringException $exception) {
|
||||
throw new Read(__CLASS__, $exception);
|
||||
}
|
||||
$movimientosFaltantes = $this->movimientoService->findMissing($cuenta, $addedMovimientos, $startDate, $endDate);
|
||||
$movimientosObsoletos = [];
|
||||
if (count($movimientosFaltantes) > 0) {
|
||||
|
@ -3,6 +3,7 @@ namespace Incoviba\Service\Contabilidad\Cartola;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use Incoviba\Common\Ideal\Cartola\Banco;
|
||||
use Incoviba\Exception\ServiceAction\Read;
|
||||
use PhpOffice\PhpSpreadsheet;
|
||||
use Psr\Http\Message\UploadedFileInterface;
|
||||
|
||||
@ -10,8 +11,8 @@ class Itau extends Banco
|
||||
{
|
||||
use isExcel;
|
||||
|
||||
const CUENTA_CORRIENTE = 0;
|
||||
const ULTIMOS_MOVIMIENTOS = 1;
|
||||
const int CUENTA_CORRIENTE = 0;
|
||||
const int ULTIMOS_MOVIMIENTOS = 1;
|
||||
|
||||
public function processMovimientosDiarios(array $movimientos): array
|
||||
{
|
||||
@ -44,6 +45,12 @@ class Itau extends Banco
|
||||
$ext = pathinfo($uploadedFile->getClientFilename(), PATHINFO_EXTENSION);
|
||||
return "/tmp/cartola.{$ext}";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $filename
|
||||
* @return array
|
||||
* @throws Read
|
||||
*/
|
||||
protected function parseFile(string $filename): array
|
||||
{
|
||||
$ext = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
@ -62,7 +69,7 @@ class Itau extends Banco
|
||||
break;
|
||||
}
|
||||
} catch (PhpSpreadsheet\Exception $exception) {
|
||||
$this->logger->critical($exception);
|
||||
throw new Read(__CLASS__, $exception);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
@ -166,6 +173,11 @@ class Itau extends Banco
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PhpSpreadsheet\Worksheet\Worksheet $sheet
|
||||
* @return int
|
||||
* @throws PhpSpreadsheet\Exception
|
||||
*/
|
||||
protected function identifySheet(PhpSpreadsheet\Worksheet\Worksheet $sheet): int
|
||||
{
|
||||
foreach ($sheet->getRowIterator(1, 10) as $row) {
|
||||
@ -177,7 +189,7 @@ class Itau extends Banco
|
||||
return self::ULTIMOS_MOVIMIENTOS;
|
||||
}
|
||||
}
|
||||
throw new PhpSpreadsheet\Exception();
|
||||
throw new PhpSpreadsheet\Exception('Incorrect type of Worksheet');
|
||||
}
|
||||
protected function getDateRange(PhpSpreadsheet\Worksheet\Row $row): array
|
||||
{
|
||||
|
@ -21,7 +21,7 @@ class IPC
|
||||
$ipcs = [];
|
||||
try {
|
||||
$ipcs = json_decode($this->redisService->get($this->redisKey), JSON_OBJECT_AS_ARRAY);
|
||||
if (!isset($ipcs[$dateKey])) {
|
||||
if (!isset($ipcs[$dateKey]) or $ipcs[$dateKey] === 0) {
|
||||
throw new EmptyRedis($this->redisKey);
|
||||
}
|
||||
} catch (EmptyRedis) {
|
||||
|
@ -48,8 +48,8 @@ class Ine implements Provider
|
||||
]);
|
||||
try {
|
||||
$response = $this->client->get($request_uri);
|
||||
} catch (GuzzleException) {
|
||||
throw new EmptyResponse($request_uri);
|
||||
} catch (GuzzleException $exception) {
|
||||
throw new EmptyResponse($request_uri, $exception);
|
||||
}
|
||||
$body = $response->getBody();
|
||||
$json = json_decode($body->getContents());
|
||||
|
@ -12,6 +12,9 @@ class MiIndicador implements Provider
|
||||
public function __construct(protected ClientInterface $client) {}
|
||||
|
||||
/**
|
||||
* @param string $money_symbol
|
||||
* @param DateTimeInterface|null $dateTime
|
||||
* @return float
|
||||
* @throws EmptyResponse
|
||||
*/
|
||||
public function get(string $money_symbol, ?DateTimeInterface $dateTime = null): float
|
||||
@ -33,7 +36,7 @@ class MiIndicador implements Provider
|
||||
$body = $response->getBody();
|
||||
$json = json_decode($body->getContents());
|
||||
|
||||
if (empty($json) or $json->codigo !== $money_symbol or count($json->serie) === 0) {
|
||||
if (empty($json) or !isset($json->codigo) or !isset($json->serie) or $json->codigo !== $money_symbol or count($json->serie) === 0) {
|
||||
throw new EmptyResponse($request_uri);
|
||||
}
|
||||
return $json->serie[0]->valor;
|
||||
|
@ -79,13 +79,7 @@ class Queue extends Ideal\Service
|
||||
try {
|
||||
$this->jobService->update($job);
|
||||
} catch (Update $exception) {
|
||||
$this->logger->error($exception->getMessage(), ['job' => $job, 'exception' => [
|
||||
'code' => $exception->getCode(),
|
||||
'message' => $exception->getMessage(),
|
||||
'file' => $exception->getFile(),
|
||||
'line' => $exception->getLine(),
|
||||
'trace' => $exception->getTraceAsString(),
|
||||
]]);
|
||||
$this->logger->error($exception->getMessage(), ['job' => $job, 'exception' => $exception]);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ class UF
|
||||
if ($date === null) {
|
||||
$date = new DateTimeImmutable();
|
||||
}
|
||||
if ($date->diff($today)->days < 0) {
|
||||
if ($date->diff($today)->invert === 1) {
|
||||
return 0.0;
|
||||
}
|
||||
/**
|
||||
@ -32,7 +32,7 @@ class UF
|
||||
*/
|
||||
try {
|
||||
$ufs = $this->getRedisUFs();
|
||||
if (!isset($ufs[$date->format('Y-m-d')])) {
|
||||
if (!isset($ufs[$date->format('Y-m-d')]) or $ufs[$date->format('Y-m-d')] === 0) {
|
||||
throw new EmptyRedis($this->redisKey);
|
||||
}
|
||||
return $ufs[$date->format('Y-m-d')];
|
||||
@ -54,12 +54,16 @@ class UF
|
||||
}
|
||||
public function updateMany(array $dates): array
|
||||
{
|
||||
$today = new DateTimeImmutable();
|
||||
$ufs = [];
|
||||
try {
|
||||
$ufs = json_decode($this->redisService->get($this->redisKey), JSON_OBJECT_AS_ARRAY);
|
||||
} catch (EmptyRedis) {}
|
||||
$updated = [];
|
||||
foreach ($dates as $date) {
|
||||
if ($date->diff($today)->invert === 1) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($ufs[$date->format('Y-m-d')]) or $ufs[$date->format('Y-m-d')] === 0) {
|
||||
$uf = $this->moneyService->getUF($date);
|
||||
if ($uf === 0.0) {
|
||||
|
@ -19,7 +19,7 @@ class USD
|
||||
$usds = [];
|
||||
try {
|
||||
$usds = json_decode($this->redisService->get($this->redisKey), JSON_OBJECT_AS_ARRAY);
|
||||
if (!isset($usds[$date->format('Y-m-d')])) {
|
||||
if (!isset($usds[$date->format('Y-m-d')]) or $usds[$date->format('Y-m-d')] === 0) {
|
||||
throw new EmptyRedis($this->redisKey);
|
||||
}
|
||||
$usd = $usds[$date->format('Y-m-d')];
|
||||
|
@ -181,7 +181,8 @@ class Propietario extends Service
|
||||
]);
|
||||
$filtered_data = array_intersect_key($data, $fields);
|
||||
try {
|
||||
$direccion = $this->direccionRepository->fetchByCalleAndNumeroAndExtraAndComuna($filtered_data['calle'], $filtered_data['numero'], $filtered_data['extra'], $filtered_data['comuna']);
|
||||
$direccion = $this->direccionRepository->fetchByCalleAndNumeroAndExtraAndComuna($filtered_data['calle'],
|
||||
$filtered_data['numero'], $filtered_data['extra'], (int) $filtered_data['comuna']);
|
||||
} catch (EmptyResult) {
|
||||
try {
|
||||
$direccion = $this->direccionRepository->create($filtered_data);
|
||||
|
@ -174,7 +174,7 @@ class Reservation extends Ideal\Service\API
|
||||
$this->reservationRepository->getConnection()->getPDO()->commit();
|
||||
}
|
||||
} catch (PDOException $exception) {
|
||||
$this->logger->warning($exception->getMessage(), ['exception' => $exception->getTraceAsString()]);
|
||||
$this->logger->warning($exception->getMessage(), ['exception' => $exception]);
|
||||
if ($this->reservationRepository->getConnection()->getPDO()->inTransaction()) {
|
||||
$this->reservationRepository->getConnection()->getPDO()->rollBack();
|
||||
}
|
||||
|
Reference in New Issue
Block a user