|
@@ -2,8 +2,10 @@
|
|
|
|
|
|
namespace v1\controllers;
|
|
|
|
|
|
+use app\models\ServicioTipoServicio;
|
|
|
use common\data\Respuesta;
|
|
|
use common\rest\AuthController;
|
|
|
+use Yii;
|
|
|
use yii\db\Expression;
|
|
|
|
|
|
class ServicioController extends AuthController {
|
|
@@ -61,28 +63,52 @@ class ServicioController extends AuthController {
|
|
|
|
|
|
public function actionGuardar() {
|
|
|
$id = trim($this->req->getBodyParam("id", ""));
|
|
|
+ $tipoServicio = $this->req->getBodyParam("tipoServicio", []);
|
|
|
$modelo = null;
|
|
|
|
|
|
- if($id !== "") {
|
|
|
- $modelo = $this->modelClass::findOne($id);
|
|
|
- }
|
|
|
- if($modelo === null) {
|
|
|
- $modelo = new $this->modelClass();
|
|
|
- $modelo->uuid();
|
|
|
- $modelo->creado = new Expression('now()');
|
|
|
- } else {
|
|
|
- $modelo->modificado = new Expression('now()');
|
|
|
- }
|
|
|
-
|
|
|
- $modelo->load($this->req->getBodyParams(), '');
|
|
|
- if (!$modelo->save()) {
|
|
|
+ $transaccion = \Yii::$app->db->beginTransaction();
|
|
|
+ try {
|
|
|
+
|
|
|
+ if ($id !== "") {
|
|
|
+ $modelo = $this->modelClass::findOne($id);
|
|
|
+ }
|
|
|
+ if ($modelo === null) {
|
|
|
+ $modelo = new $this->modelClass();
|
|
|
+ $modelo->uuid();
|
|
|
+ $modelo->creado = new Expression('now()');
|
|
|
+ } else {
|
|
|
+ $modelo->modificado = new Expression('now()');
|
|
|
+ }
|
|
|
+
|
|
|
+ $modelo->load($this->req->getBodyParams(), '');
|
|
|
+ if (!$modelo->save()) {
|
|
|
+ return (new Respuesta($modelo))
|
|
|
+ ->mensaje("Hubo un problema al guardar el Servicio");
|
|
|
+ }
|
|
|
+
|
|
|
+ ServicioTipoServicio::deleteAll(['id' => $modelo->id]);
|
|
|
+
|
|
|
+ foreach ($tipoServicio as $idTipoServicio) {
|
|
|
+ $tipoServicios = new ServicioTipoServicio();
|
|
|
+ $tipoServicios->uuid();
|
|
|
+ $tipoServicios->idServicio = $modelo->id;
|
|
|
+ $tipoServicios->idTipoServicio = $idTipoServicio;
|
|
|
+ if (!$tipoServicios->save()) {
|
|
|
+ return (new Respuesta($tipoServicios))
|
|
|
+ ->mensaje("Hubo un problema al guardar el Tipo de Servicio");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $transaccion->commit();
|
|
|
+ $modelo->refresh();
|
|
|
+ return (new Respuesta($modelo))
|
|
|
+ ->mensaje("Servicio ha sido guardado de manera exitosa");
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $transaccion->rollBack();
|
|
|
return (new Respuesta($modelo))
|
|
|
- ->mensaje("Hubo un problema al guardar el Servicio");
|
|
|
+ ->esError()
|
|
|
+ ->mensaje($e->getMessage());
|
|
|
}
|
|
|
-
|
|
|
- $modelo->refresh();
|
|
|
- return (new Respuesta($modelo))
|
|
|
- ->mensaje("Servicio guardado");
|
|
|
}
|
|
|
|
|
|
public function actionEliminar() {
|