Parse rut and 0 centro_costo

This commit is contained in:
Juan Pablo Vial
2024-09-03 00:07:06 -04:00
parent 6e4dd8180e
commit 5983a4b20f

View File

@ -98,14 +98,19 @@ class Cartola extends Service
foreach ($movimientos as $dataMovimiento) { foreach ($movimientos as $dataMovimiento) {
$dataMovimiento['cuenta_id'] = $cuenta->id; $dataMovimiento['cuenta_id'] = $cuenta->id;
if (array_key_exists('centro_costo', $dataMovimiento)) { if (array_key_exists('centro_costo', $dataMovimiento) and $dataMovimiento['centro_costo'] !== 0) {
$dataMovimiento['centro_costo_id'] = $dataMovimiento['centro_costo']; $dataMovimiento['centro_costo_id'] = $dataMovimiento['centro_costo'];
} }
$dataMovimiento['fecha'] = new DateTimeImmutable($dataMovimiento['fecha']); $dataMovimiento['fecha'] = new DateTimeImmutable($dataMovimiento['fecha']);
if (array_key_exists('rut', $dataMovimiento)) { if (array_key_exists('rut', $dataMovimiento)) {
list($rut, $digito) = explode('-', $dataMovimiento['rut']); $ruts = $this->parseRut($dataMovimiento['rut']);
$dataMovimiento['rut'] = trim(preg_replace('/\D+/', '', $rut)); if (key_exists('rut', $ruts)) {
$dataMovimiento['digito'] = trim($digito); $dataMovimiento['rut'] = $ruts['rut'];
$dataMovimiento['digito'] = $ruts['digito'];
} else {
$dataMovimiento['rut'] = $ruts[0]['rut'];
$dataMovimiento['digito'] = $ruts[0]['digito'];
}
} }
$this->movimientoService->add($dataMovimiento); $this->movimientoService->add($dataMovimiento);
} }
@ -250,4 +255,17 @@ class Cartola extends Service
} }
} }
} }
protected function parseRut(string $rut): array
{
if (str_contains($rut, '/')) {
$ruts = explode('/', $rut);
$output = [];
foreach ($ruts as $rut) {
$output []= $this->parseRut($rut);
}
return $output;
}
list($rut, $digito) = explode('-', $rut);
return ['rut' => trim(preg_replace('/\D+/', '', $rut)), 'digito' => trim($digito)];
}
} }