예제 #1
0
 public function save()
 {
     $post = $this->_post(NULL, TRUE);
     try {
         if (is_array($post)) {
             $producto = NomProductoTable::getInstance()->find($post['producto_id']);
             if (!$producto) {
                 $msg = "Producto no encontrado.";
                 return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
             }
             $nivelAct = BalanceAlimTable::getInstance()->find($post['balance_alim_id']);
             if (!$nivelAct) {
                 $msg = "Balance no encontrado.";
                 return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
             }
             if ($post['id']) {
                 $databaseModel = $this->_getTable()->find($post['id']);
                 if (!$databaseModel) {
                     $msg = "BD no encontrado.";
                     return $this->_jsonResponse(array("msg" => $msg), 404, $msg);
                 }
             } else {
                 $databaseModel = new BaseDatos();
             }
             $databaseModel->fromArray($post, false);
             $databaseModel->set('Producto', $producto);
             $databaseModel->set('BalanceAlim', $nivelAct);
             $databaseModel->save();
             $this->_jsonResponse($databaseModel->toArray());
         }
     } catch (Exception $exc) {
         log_message('error', $exc->getMessage());
         log_message('error', $exc->getTraceAsString());
         $this->_jsonResponse(array("msg" => "Ha ocurrido un error mientras se intentaba guardar BD"), 500);
     }
 }