SolicitudAcuseController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\modules\publico\controllers;
  3. use common\data\Respuesta;
  4. use common\rest\JsonController;
  5. use v1\models\SolicitudAcusePersonas;
  6. use yii\db\Expression;
  7. class SolicitudAcuseController extends JsonController {
  8. public $modelClass = 'v1\models\SolicitudAcuse';
  9. public function actionIndex() {
  10. $token = trim($this->req->get("token", ""));
  11. if ($token === '') {
  12. return (new Respuesta())
  13. ->esError(401)
  14. ->mensaje("No se encontró el Acuse esperado.");
  15. }
  16. $query = $this->queryInicial
  17. ->innerJoin('SolicitudAcusePersonas', '{{SolicitudAcuse}}.id = {{SolicitudAcusePersonas}}.[[idSolicitud]] ')
  18. ->andWhere(['tokenRecepcion' => $token]);
  19. return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
  20. }
  21. public function actionConfirmar() {
  22. $token = trim($this->req->getBodyParam("token", ""));
  23. $acuse = null;
  24. if ($token !== "") {
  25. $acuse = SolicitudAcusePersonas::find()
  26. ->andWhere(['tokenRecepcion' => $token])
  27. ->one();
  28. }
  29. try {
  30. if ($acuse !== null) {
  31. $acuse->confirmado = new Expression('now()');
  32. $acuse->load($this->req->getBodyParams(), '');
  33. if (!$acuse->save()) {
  34. return (new Respuesta())->esError()->mensaje("No se pudo confirmar");
  35. }
  36. }
  37. $acuse->refresh();
  38. } catch (\Exception $e) {
  39. return (new Respuesta())
  40. ->esError()
  41. ->mensaje("Hubo un error en el servidor");
  42. }
  43. return (new Respuesta($acuse))
  44. ->mensaje("Se ha confirmado el Acuse.");
  45. }
  46. }