diff --git a/app/src/Service/Contabilidad/Cartola.php b/app/src/Service/Contabilidad/Cartola.php index 8ab75d5..61a29f4 100644 --- a/app/src/Service/Contabilidad/Cartola.php +++ b/app/src/Service/Contabilidad/Cartola.php @@ -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)]; + } }