Facturacion y Terreno
This commit is contained in:
@ -66,7 +66,11 @@ class Nubox extends Ideal\Service
|
||||
{
|
||||
if (!isset($this->sistemas[$inmobiliaria_rut])) {
|
||||
$redisKey = "nubox:{$inmobiliaria_rut}";
|
||||
$this->sistemas[$inmobiliaria_rut] = json_decode($this->redisService->get($redisKey));
|
||||
try {
|
||||
$this->sistemas[$inmobiliaria_rut] = json_decode($this->redisService->get($redisKey));
|
||||
} catch (Exception\EmptyRedis) {
|
||||
$this->getToken($inmobiliaria_rut);
|
||||
}
|
||||
}
|
||||
return $this->sistemas[$inmobiliaria_rut];
|
||||
}
|
||||
@ -80,6 +84,34 @@ class Nubox extends Ideal\Service
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCuentas(int $inmobiliaria_rut): array
|
||||
{
|
||||
$redisKey = "nubox:cuentas:{$inmobiliaria_rut}";
|
||||
try {
|
||||
return json_decode($this->redisService->get($redisKey));
|
||||
} catch (Exception\EmptyRedis) {
|
||||
$today = new DateTimeImmutable();
|
||||
$libro = $this->getLibroMayor($inmobiliaria_rut, new DateTimeImmutable($today->format('Y-m-1')), new DateTimeImmutable($today->format('Y-m-t')));
|
||||
$cuentas = array_map(function($cuenta) {
|
||||
$full = $cuenta['Cuenta'];
|
||||
$space = strpos($full, ' ');
|
||||
return ['codigo' => substr($full, 0, $space), 'nombre' => substr($full, $space + 1)];
|
||||
}, $libro);
|
||||
$this->redisService->set($redisKey, json_encode($cuentas));
|
||||
return $cuentas;
|
||||
}
|
||||
}
|
||||
public function getCuenta(int $inmobiliaria_rut, string $cuentaNombre): string
|
||||
{
|
||||
$cuentas = $this->getCuentas($inmobiliaria_rut);
|
||||
$validas = array_filter($cuentas, function($cuenta) use ($cuentaNombre) {
|
||||
return strtolower($cuenta->nombre) === strtolower($cuentaNombre);
|
||||
});
|
||||
if (count($validas) === 0) {
|
||||
throw new Exception\EmptyResult('Cuenta no encontrada');
|
||||
}
|
||||
return array_values($validas)[0]->codigo;
|
||||
}
|
||||
public function getLibroMayor(int $inmobiliaria_rut, DateTimeInterface $from, DateTimeInterface $to): array
|
||||
{
|
||||
$inmobiliaria = $this->nuboxRepository->fetchByInmobiliaria($inmobiliaria_rut);
|
||||
@ -131,7 +163,7 @@ class Nubox extends Ideal\Service
|
||||
}
|
||||
return json_decode($response->getBody()->getContents(), JSON_OBJECT_AS_ARRAY);
|
||||
}
|
||||
public function getSaldoCuenta(int $inmobiliaria_rut, string $cuenta, DateTimeInterface $mes, bool $acumuladoAnual = false): array
|
||||
public function getMesCuenta(int $inmobiliaria_rut, string $cuenta, DateTimeInterface $mes): array
|
||||
{
|
||||
$inmobiliaria = $this->nuboxRepository->fetchByInmobiliaria($inmobiliaria_rut);
|
||||
$from = new DateTimeImmutable($mes->format('Y-m-1'));
|
||||
|
Reference in New Issue
Block a user