Пример #1
0
 /**
  * Returns a new CitaQuery object.
  *
  * @param     string $modelAlias The alias of a model in the query
  * @param   CitaQuery|Criteria $criteria Optional Criteria to build the query from
  *
  * @return CitaQuery
  */
 public static function create($modelAlias = null, $criteria = null)
 {
     if ($criteria instanceof CitaQuery) {
         return $criteria;
     }
     $query = new CitaQuery(null, null, $modelAlias);
     if ($criteria instanceof Criteria) {
         $query->mergeWith($criteria);
     }
     return $query;
 }
Пример #2
0
 public function nuevoAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $cita_hora = date("H:i", strtotime($post_data['cita_hora']));
         $cita = new \Cita();
         $cita->setIdpaciente($post_data['idpaciente'])->setCitaFecha($post_data['cita_fecha_submit'])->setCitaHora($cita_hora)->setCitaDescripcion($post_data['cita_descripcion']);
         if (!empty($post_data['idmedico'])) {
             $cita->setIdmedico($post_data['idmedico']);
             $citasCollection = \CitaQuery::create()->filterByIdmedico($post_data['idmedico'])->filterByCitaFecha($post_data['cita_fecha_submit'])->find();
             $disponibilidad = true;
             foreach ($citasCollection as $citaEntity) {
                 $time = strtotime($citaEntity->getCitaHora());
                 $endTime = date("H:i", strtotime('+10 minutes', $time));
                 if (strtotime($cita_hora) >= $time && strtotime($cita_hora) <= strtotime('+10 minutes', $time)) {
                     $disponibilidad = false;
                 }
             }
             if (!$disponibilidad) {
                 //Agregamos un mensaje
                 $medico = \MedicoQuery::create()->findPk($post_data['idmedico']);
                 $this->flashMessenger()->addMessage('Los sentimos, pero el medico ' . $medico->getMedicoNombre() . ' ' . $medico->getMedicoApellidopaterno() . ' ' . $medico->getMedicoApellidomaterno() . ' no tiene disponibilidad para la fecha y hora seleccionada');
                 return $this->redirect()->toUrl('/pacientes/agendarcita/nuevo/' . $post_data['idpaciente']);
             } else {
                 $cita->save();
                 //Agregamos un mensaje
                 $this->flashMessenger()->addMessage('Cita Agendada exitosamente!');
                 //Redireccionamos a nuestro list
                 return $this->redirect()->toRoute('citas');
             }
         } else {
             $cita->save();
             //Agregamos un mensaje
             $this->flashMessenger()->addMessage('Cita Agendada exitosamente!');
             //Redireccionamos a nuestro list
             return $this->redirect()->toRoute('citas');
         }
     }
     //Cachamos el valor desde nuestro params
     $id = (int) $this->params()->fromRoute('id');
     $paciente = \PacienteQuery::create()->findPk($id)->toArray(\BasePeer::TYPE_FIELDNAME);
     $medicos = \MedicoQuery::create()->find();
     $medicos_array = array();
     if (!empty($medicos)) {
         foreach ($medicos as $medico) {
             $idmedico = $medico->getIdmedico();
             $medicos_array[$idmedico] = $medico->getMedicoNombre() . ' ' . $medico->getMedicoApellidopaterno() . ' ' . $medico->getMedicoApellidomaterno();
         }
     }
     //Instanciamos nuestro fomrulario
     $form = new CitasForm($medicos_array);
     $form->get('idpaciente')->setValue($id);
     $collection = \PacienteQuery::create()->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
     return new ViewModel(array('paciente' => $paciente, 'form' => $form, 'flashMessages' => $this->flashMessenger()->getMessages()));
 }
Пример #3
0
 /**
  * If this collection has already been initialized with
  * an identical criteria, it returns the collection.
  * Otherwise if this Paciente is new, it will return
  * an empty collection; or if this Paciente has previously
  * been saved, it will retrieve related Citas from storage.
  *
  * This method is protected by default in order to keep the public
  * api reasonable.  You can provide public methods for those you
  * actually need in Paciente.
  *
  * @param Criteria $criteria optional Criteria object to narrow the query
  * @param PropelPDO $con optional connection object
  * @param string $join_behavior optional join type to use (defaults to Criteria::LEFT_JOIN)
  * @return PropelObjectCollection|Cita[] List of Cita objects
  */
 public function getCitasJoinMedico($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $query = CitaQuery::create(null, $criteria);
     $query->joinWith('Medico', $join_behavior);
     return $this->getCitas($query, $con);
 }
Пример #4
0
 /**
  * Removes this object from datastore and sets delete attribute.
  *
  * @param PropelPDO $con
  * @return void
  * @throws PropelException
  * @throws Exception
  * @see        BaseObject::setDeleted()
  * @see        BaseObject::isDeleted()
  */
 public function delete(PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("This object has already been deleted.");
     }
     if ($con === null) {
         $con = Propel::getConnection(CitaPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = CitaQuery::create()->filterByPrimaryKey($this->getPrimaryKey());
         $ret = $this->preDelete($con);
         if ($ret) {
             $deleteQuery->delete($con);
             $this->postDelete($con);
             $con->commit();
             $this->setDeleted(true);
         } else {
             $con->commit();
         }
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
 }
Пример #5
0
 public function eliminarAction()
 {
     $request = $this->getRequest();
     //Cachamos el valor desde nuestro params
     $id = (int) $this->params()->fromRoute('id');
     //Verificamos que el Id lugar que se quiere modificar exista
     if (!\CitaQuery::create()->filterByIdcita($id)->exists()) {
         $id = 0;
     }
     //Instanciamos nuestro lugar
     $entity = \CitaQuery::create()->findPk($id);
     $entity->delete();
     //Agregamos un mensaje
     $this->flashMessenger()->addMessage('Cita eliminada exitosamente!');
     //Redireccionamos a nuestro list
     return $this->redirect()->toRoute('citas');
 }