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) {
$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['fecha'] = new DateTimeImmutable($dataMovimiento['fecha']);
if (array_key_exists('rut', $dataMovimiento)) {
list($rut, $digito) = explode('-', $dataMovimiento['rut']);
$dataMovimiento['rut'] = trim(preg_replace('/\D+/', '', $rut));
$dataMovimiento['digito'] = trim($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'];
}
}
$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)];
}
}