Proveedores en movimientos

This commit is contained in:
Juan Pablo Vial
2024-12-03 20:32:29 -03:00
parent 0766cf7e94
commit fe74619482
16 changed files with 158 additions and 286 deletions

View File

@ -42,14 +42,16 @@ class Proveedor extends Ideal\Service
$filteredData = $this->proveedorRepository->filterData($data);
try {
$proveedor = $this->process($this->proveedorRepository->fetchByNombre($filteredData['nombre']));
if ($proveedor->contacto->rut !== $data['contacto']['rut']) {
if (!empty($data['contacto']['rut']) and $proveedor->contacto->rut !== $data['contacto']['rut']) {
$contacto = $this->contactoService->add($data['contacto']);
return $this->proveedorRepository->edit($proveedor, ['contacto_rut' => $contacto->rut]);
}
return $proveedor;
} catch (Implement\Exception\EmptyResult) {
$contacto = $this->contactoService->add($data['contacto']);
$filteredData['contacto_rut'] = $contacto->rut;
if (!empty($data['contacto']['rut'])) {
$contacto = $this->contactoService->add($data['contacto']);
$filteredData['contacto_rut'] = $contacto->rut;
}
$proveedor = $this->proveedorRepository->create($filteredData);
return $this->process($this->proveedorRepository->save($proveedor));
}
@ -61,12 +63,15 @@ class Proveedor extends Ideal\Service
*/
public function edit(Model\Inmobiliaria\Proveedor $proveedor, array $data): Model\Inmobiliaria\Proveedor
{
$filteredData = $this->proveedorRepository->filterData($data);
try {
if ($proveedor->contacto->rut !== $data['contacto']['rut']) {
if (!empty($data['contacto']['rut'])) {
$contacto = $this->contactoService->getById($data['contacto']['rut']);
$this->contactoService->edit($contacto, $data['contacto']);
$contacto = $this->contactoService->edit($contacto, $data['contacto']);
$data['contacto_rut'] = $contacto->rut;
} elseif ($proveedor->contacto !== null) {
$data['contacto_rut'] = $proveedor->contacto->rut;
}
$filteredData = $this->proveedorRepository->filterData($data);
return $this->process($this->proveedorRepository->edit($proveedor, $filteredData));
} catch (Implement\Exception\EmptyResult) {
return $proveedor;