Пример #1
0
 public function listarAction()
 {
     $historico_array = array();
     $movimiento_array = array();
     $admisiones = \AdmisionQuery::create()->find();
     foreach ($admisiones as $admision) {
         $tmp['fecha'] = $admision->getAdmisionFechaadmision('d-m-Y');
         $hora = date("g:i A", strtotime($admision->getAdmisionFechaadmision('h:i')));
         $tmp['hora'] = $hora;
         $tmp['id'] = 'ADM-' . $admision->getIdadmision();
         $tmp['paciente'] = $admision->getPaciente()->getPacienteNombre() . ' ' . $admision->getPaciente()->getPacienteAp() . ' ' . $admision->getPaciente()->getPacienteAm();
         $tmp['medico'] = $admision->getMedico()->getMedicoNombre() . ' ' . $admision->getMedico()->getMedicoApellidopaterno() . ' ' . $admision->getMedico()->getMedicoApellidomaterno();
         $tmp['tipo'] = 'admision';
         $movimiento_array['ADM-' . $admision->getIdadmision()] = 'ADM-' . $admision->getIdadmision();
         $historico_array[] = $tmp;
     }
     $consultas = \ConsultaQuery::create()->find();
     foreach ($consultas as $consulta) {
         $tmp['fecha'] = $consulta->getConsultaFecha('d-m-Y');
         $hora = date("g:i A", strtotime($consulta->getConsultaHora('h:i')));
         $tmp['hora'] = $hora;
         $tmp['id'] = 'CON-' . $consulta->getIdconsulta();
         $tmp['paciente'] = $consulta->getPaciente()->getPacienteNombre() . ' ' . $consulta->getPaciente()->getPacienteAp() . ' ' . $consulta->getPaciente()->getPacienteAm();
         $tmp['medico'] = $consulta->getMedico()->getMedicoNombre() . ' ' . $consulta->getMedico()->getMedicoApellidopaterno() . ' ' . $consulta->getMedico()->getMedicoApellidomaterno();
         $tmp['tipo'] = 'consulta';
         $movimiento_array['CON-' . $consulta->getIdconsulta()] = 'CON-' . $consulta->getIdconsulta();
         $historico_array[] = $tmp;
     }
     return new ViewModel(array('movimientos' => $movimiento_array, 'collection' => $historico_array));
 }
Пример #2
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 Admisions 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|Admision[] List of Admision objects
  */
 public function getAdmisionsJoinMedico($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $query = AdmisionQuery::create(null, $criteria);
     $query->joinWith('Medico', $join_behavior);
     return $this->getAdmisions($query, $con);
 }
Пример #3
0
 /**
  * Get the associated Admision object
  *
  * @param PropelPDO $con Optional Connection object.
  * @param $doQuery Executes a query to get the object if required
  * @return Admision The associated Admision object.
  * @throws PropelException
  */
 public function getAdmision(PropelPDO $con = null, $doQuery = true)
 {
     if ($this->aAdmision === null && $this->idadmision !== null && $doQuery) {
         $this->aAdmision = AdmisionQuery::create()->findPk($this->idadmision, $con);
         /* The following can be used additionally to
               guarantee the related object contains a reference
               to this object.  This level of coupling may, however, be
               undesirable since it could result in an only partially populated collection
               in the referenced object.
               $this->aAdmision->addCargoadmisions($this);
            */
     }
     return $this->aAdmision;
 }
Пример #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(AdmisionPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = AdmisionQuery::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 asignarAction()
 {
     $request = $this->getRequest();
     // Start Alta paciente - consulta alta_consultorio = true
     if ($request->getPost()->alta_consultorio == "true") {
         if (\ConsultorioQuery::create()->filterByIdconsultorio($request->getPost()->idconsultorio)->exists()) {
             $consultorioActualizar = \ConsultorioQuery::create()->filterByIdconsultorio($request->getPost()->idconsultorio)->findOne();
             $consultorioActualizar->setConsultorioEnuso(0)->save();
             $consultorioArray = $consultorioActualizar->toArray(BasePeer::TYPE_FIELDNAME);
             return new JsonModel(array('consultorioArray' => $consultorioArray));
         }
     }
     // End Alta paciente - consulta alta_consultorio = true
     // Start Alta paciente - admision alta_cuarto = true
     if ($request->getPost()->alta_cuarto == "true") {
         if (\CuartoQuery::create()->filterByIdcuarto($request->getPost()->idcuarto)->exists()) {
             $cuartoActualizar = \CuartoQuery::create()->filterByIdcuarto($request->getPost()->idcuarto)->findOne();
             $cuartoActualizar->setCuartoEnuso(0)->save();
             $cuartoArray = $cuartoActualizar->toArray(BasePeer::TYPE_FIELDNAME);
             if (\AdmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->exists()) {
                 $admisionActualizarStatus = \AdmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->findOne();
                 $admisionActualizarStatus->setAdmisionFechasalida(date('Y-m-d H:i:s'))->save();
                 $admisionArray = $admisionActualizarStatus->toArray(BasePeer::TYPE_FIELDNAME);
             } else {
                 $admisionArray = null;
             }
             return new JsonModel(array('cuartoArray' => $cuartoArray, 'admisionArray' => $admisionArray));
         }
     }
     // End Alta paciente - consulta alta_cuarto = true
     // Start Actualizar admision_status = pagada
     if ($request->getPost()->subTotalAdmision == "0") {
         if (\AdmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->exists()) {
             $admisionActualizarStatus = \AdmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->findOne();
             $admisionActualizarStatus->setAdmisionStatus($request->getPost()->admision_status)->setAdmisionTipodepago($request->getPost()->admision_tipodepago)->setAdmisionPagadaen(date('Y-m-d H:i:s'))->setAdmisionFacturada(0)->setAdmisionTotal($request->getPost()->admision_total)->setAdmisionReferenciapago($request->getPost()->admision_referenciapago)->save();
             $admisionArray = $admisionActualizarStatus->toArray(BasePeer::TYPE_FIELDNAME);
             return new JsonModel(array('admisionArray' => $admisionArray));
         }
     }
     // End Actualizar admision_status = pagada
     // Start Actualizar consulta_status = pagada
     if ($request->getPost()->subTotalConsulta == "0") {
         if (\ConsultaQuery::create()->filterByIdconsulta($request->getPost()->idconsulta)->exists()) {
             $consultaActualizarStatus = \ConsultaQuery::create()->filterByIdconsulta($request->getPost()->idconsulta)->findOne();
             $consultaActualizarStatus->setConsultaStatus($request->getPost()->consulta_status)->setConsultaReferenciapago($request->getPost()->consulta_referenciapago)->setConsultaTipodepago($request->getPost()->consulta_tipodepago)->setConsultaFacturada(0)->setConsultaTotal($request->getPost()->consulta_total)->save();
             $consultaArray = $consultaActualizarStatus->toArray(BasePeer::TYPE_FIELDNAME);
             return new JsonModel(array('consultaArray' => $consultaArray));
         }
     }
     // End Actualizar consulta_status = pagada
     // Start Eliminar cargoadmision
     if ($request->getPost()->idcargoadmision) {
         if ($request->getPost()->eliminar_cargoadmision_tipo == 'articulo') {
             if (\CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->exists()) {
                 $cargoadmisionEliminado = \CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->findOne();
                 $lugarinventarioEntity = $cargoadmisionEliminado->getLugarinventario();
                 $cantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                 $lugarinventarioEntity->setLugarinventarioCantidad($cantidad + $request->getPost()->cantidad);
                 $lugarinventarioEntity->save();
                 $cargoadmisionEliminadoArray = array();
                 if ($cargoadmisionEliminado->getIdlugarinventario() != null) {
                     $articulovarianteEliminado = $cargoadmisionEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                     $propiedadvalorNombreEliminado = null;
                     foreach ($articulovarianteEliminado->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEliminado) {
                         $propiedadEliminadoQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEliminado->getIdpropiedad())->findOne();
                         $propiedadvalorEliminadoQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEliminado->getIdpropiedadvalor())->findOne();
                         $propiedadvalorNombreEliminado .= $propiedadEliminadoQuery->getPropiedadNombre() . " " . $propiedadvalorEliminadoQuery->getPropiedadvalorNombre() . " ";
                     }
                     $cargoadmisionEliminado = array('idcargoadmision' => $cargoadmisionEliminado->getIdcargoadmision(), 'idadmision' => $cargoadmisionEliminado->getIdadmision(), 'status' => $cargoadmisionEliminado->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEliminado->getCargoadmisionCantidad(), 'articulo' => $cargoadmisionEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombreEliminado), 'salida' => $cargoadmisionEliminado->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoadmisionEliminado->getCargoadmisionFecha(), 'precio' => $cargoadmisionEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoadmisionEliminado->getCargoadmisionMonto());
                     array_push($cargoadmisionEliminadoArray, $cargoadmisionEliminado);
                 }
                 \CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->delete();
                 $cargoadmisionQuery = \CargoadmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->find();
                 if ($cargoadmisionQuery->getArrayCopy()) {
                     $cargoadmisionArray = array();
                     foreach ($cargoadmisionQuery as $cargoadmisionEntity) {
                         if ($cargoadmisionEntity->getIdlugarinventario() != null) {
                             $articulovarianteEntity = $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                             foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                 $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                 $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                             }
                             foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                 $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                 $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                             }
                             $cargoadmision = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'articulo' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadNombre . " " . $propiedadvalorNombre), 'salida' => $cargoadmisionEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoadmisionEntity->getCargoadmisionFecha(), 'precio' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto());
                             array_push($cargoadmisionArray, $cargoadmision);
                         }
                     }
                 }
                 return new JsonModel(array('cargoadmisionArray' => $cargoadmisionArray, 'cargoadmisionEliminadoArray' => $cargoadmisionEliminadoArray));
             }
         }
         if ($request->getPost()->eliminar_cargoadmision_tipo == 'servicio') {
             if (\CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->exists()) {
                 $cargoadmisionEliminado = \CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->findOne();
                 $cargoadmisionEliminadoArray = array();
                 if ($cargoadmisionEliminado->getIdservicio() != null) {
                     $cargoadmisionEliminado = array('idcargoadmision' => $cargoadmisionEliminado->getIdcargoadmision(), 'idadmision' => $cargoadmisionEliminado->getIdadmision(), 'status' => $cargoadmisionEliminado->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEliminado->getCargoadmisionCantidad(), 'servicio' => $cargoadmisionEliminado->getServicio()->getServicioNombre(), 'descripcion' => $cargoadmisionEliminado->getServicio()->getServicioDescripcion(), 'precio' => $cargoadmisionEliminado->getServicio()->getServicioPrecio(), 'subtotal' => $cargoadmisionEliminado->getCargoadmisionMonto(), 'fechahora' => $cargoadmisionEliminado->getCargoadmisionFecha());
                     array_push($cargoadmisionEliminadoArray, $cargoadmisionEliminado);
                 }
                 \CargoadmisionQuery::create()->filterByIdcargoadmision($request->getPost()->idcargoadmision)->delete();
                 $cargoadmisionQuery = \CargoadmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->find();
                 if ($cargoadmisionQuery->getArrayCopy()) {
                     $cargoadmisionArray = array();
                     foreach ($cargoadmisionQuery as $cargoadmisionEntity) {
                         if ($cargoadmisionEntity->getIdservicio() != null) {
                             $cargoadmision = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'servicio' => $cargoadmisionEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoadmisionEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoadmisionEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto(), 'fechahora' => date('Y-m-d H:i:s'));
                             array_push($cargoadmisionArray, $cargoadmision);
                         }
                     }
                 }
                 return new JsonModel(array('cargoadmisionArray' => $cargoadmisionArray, 'cargoadmisionEliminadoArray' => $cargoadmisionEliminadoArray));
             }
         }
     }
     // End Eliminar cargoadmision
     // Start Ver admisionanticipo
     if ($request->getPost()->ver_admisionanticipo == "true") {
         $admisionanticipoQuery = \AdmisionanticipoQuery::create()->filterByIdadmision($request->getPost()->idadmision)->find();
         if ($admisionanticipoQuery->count() != 0) {
             $admisionanticipoArray = array();
             foreach ($admisionanticipoQuery as $admisionanticipoEntity) {
                 $admisionanticipo = array('idadmisionanticipo' => $admisionanticipoEntity->getIdadmisionanticipo(), 'idadmision' => $admisionanticipoEntity->getIdadmision(), 'admisionanticipo_fecha' => $admisionanticipoEntity->getAdmisionanticipoFecha(), 'admisionanticipo_cantidad' => $admisionanticipoEntity->getAdmisionanticipoCantidad(), 'admisionanticipo_nota' => $admisionanticipoEntity->getAdmisionanticipoNota(), 'admisionanticipo_tipo' => $admisionanticipoEntity->getAdmisionanticipoTipo());
                 array_push($admisionanticipoArray, $admisionanticipo);
             }
         }
         return new JsonModel(array('admisionanticipoArray' => $admisionanticipoArray));
     }
     // End Ver admisionanticipo
     // Start Eliminar admisionanticipo
     if ($request->getPost()->eliminar_admisionanticipo == "true") {
         if (\AdmisionanticipoQuery::create()->filterByIdadmisionanticipo($request->getPost()->idadmisionanticipo)->exists()) {
             $admisionanticipoEliminado = \AdmisionanticipoQuery::create()->filterByIdadmisionanticipo($request->getPost()->idadmisionanticipo)->findOne();
             $admisionanticipoEliminadoArray = array();
             $admisionanticipoEliminado = array('idadmisionanticipo' => $admisionanticipoEliminado->getIdadmisionanticipo(), 'idadmision' => $admisionanticipoEliminado->getIdadmision(), 'admisionanticipo_fecha' => $admisionanticipoEliminado->getAdmisionanticipoFecha(), 'admisionanticipo_cantidad' => $admisionanticipoEliminado->getAdmisionanticipoCantidad(), 'admisionanticipo_nota' => $admisionanticipoEliminado->getAdmisionanticipoNota());
             array_push($admisionanticipoEliminadoArray, $admisionanticipoEliminado);
             \AdmisionanticipoQuery::create()->filterByIdadmisionanticipo($request->getPost()->idadmisionanticipo)->delete();
             $cargoadmisionQuery = \CargoadmisionQuery::create()->filterByIdadmision($request->getPost()->idadmision)->find();
             if ($cargoadmisionQuery->getArrayCopy()) {
                 $cargoadmisionArray = array();
                 foreach ($cargoadmisionQuery as $cargoadmisionEntity) {
                     if ($cargoadmisionEntity->getIdservicio() != null) {
                         $cargoadmision = array('subtotal' => $cargoadmisionEntity->getCargoadmisionMonto());
                         array_push($cargoadmisionArray, $cargoadmision);
                     }
                 }
             }
             return new JsonModel(array('cargoadmisionArray' => $cargoadmisionArray, 'admisionanticipoEliminadoArray' => $admisionanticipoEliminadoArray));
         }
     }
     // End Eliminar admisionanticipo
     // Start Eliminar cargoconsulta
     if ($request->getPost()->idcargoconsulta) {
         if ($request->getPost()->eliminar_cargoconsulta_tipo == 'articulo') {
             if (\CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->exists()) {
                 $cargoconsultaEliminado = \CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->findOne();
                 $lugarinventarioEntity = $cargoconsultaEliminado->getLugarinventario();
                 $cantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                 $lugarinventarioEntity->setLugarinventarioCantidad($cantidad + $request->getPost()->cantidad);
                 $lugarinventarioEntity->save();
                 $cargoconsultaEliminadoArray = array();
                 if ($cargoconsultaEliminado->getIdlugarinventario() != null) {
                     $articulovarianteEliminado = $cargoconsultaEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                     $propiedadvalorNombreEliminado = null;
                     foreach ($articulovarianteEliminado->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEliminado) {
                         $propiedadEliminadoQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEliminado->getIdpropiedad())->findOne();
                         $propiedadvalorEliminadoQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEliminado->getIdpropiedadvalor())->findOne();
                         $propiedadvalorNombreEliminado .= $propiedadEliminadoQuery->getPropiedadNombre() . " " . $propiedadvalorEliminadoQuery->getPropiedadvalorNombre() . " ";
                     }
                     $cargoconsultaEliminado = array('idcargoconsulta' => $cargoconsultaEliminado->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEliminado->getIdconsulta(), 'status' => $cargoconsultaEliminado->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEliminado->getCantidad(), 'articulo' => $cargoconsultaEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombreEliminado), 'salida' => $cargoconsultaEliminado->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoconsultaEliminado->getCargoconsultaFecha(), 'precio' => $cargoconsultaEliminado->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoconsultaEliminado->getMonto());
                     array_push($cargoconsultaEliminadoArray, $cargoconsultaEliminado);
                 }
                 \CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->delete();
                 $cargoconsultaQuery = \CargoconsultaQuery::create()->filterByIdconsulta($request->getPost()->idconsulta)->find();
                 if ($cargoconsultaQuery->getArrayCopy()) {
                     $cargoconsultaArray = array();
                     foreach ($cargoconsultaQuery as $cargoconsultaEntity) {
                         if ($cargoconsultaEntity->getIdlugarinventario() != null) {
                             $articulovarianteEntity = $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                             $propiedadvalorNombre = null;
                             foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                 $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                 $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                 $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                             }
                             $cargoconsulta = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'articulo' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombre), 'salida' => $cargoconsultaEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoconsultaEntity->getCargoconsultaFecha(), 'precio' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoconsultaEntity->getMonto());
                             array_push($cargoconsultaArray, $cargoconsulta);
                         }
                     }
                 }
                 return new JsonModel(array('cargoconsultaArray' => $cargoconsultaArray, 'cargoconsultaEliminadoArray' => $cargoconsultaEliminadoArray));
             }
         }
         if ($request->getPost()->eliminar_cargoconsulta_tipo == 'servicio') {
             if (\CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->exists()) {
                 $cargoconsultaEliminado = \CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->findOne();
                 $cargoconsultaEliminadoArray = array();
                 if ($cargoconsultaEliminado->getIdservicio() != null) {
                     $cargoconsultaEliminado = array('idcargoconsulta' => $cargoconsultaEliminado->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEliminado->getIdconsulta(), 'status' => $cargoconsultaEliminado->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEliminado->getCantidad(), 'servicio' => $cargoconsultaEliminado->getServicio()->getServicioNombre(), 'descripcion' => $cargoconsultaEliminado->getServicio()->getServicioDescripcion(), 'precio' => $cargoconsultaEliminado->getServicio()->getServicioPrecio(), 'subtotal' => $cargoconsultaEliminado->getMonto(), 'fechahora' => $cargoconsultaEliminado->getCargoconsultaFecha());
                     array_push($cargoconsultaEliminadoArray, $cargoconsultaEliminado);
                 }
                 \CargoconsultaQuery::create()->filterByIdcargoconsulta($request->getPost()->idcargoconsulta)->delete();
                 $cargoconsultaQuery = \CargoconsultaQuery::create()->filterByIdconsulta($request->getPost()->idconsulta)->find();
                 if ($cargoconsultaQuery->getArrayCopy()) {
                     $cargoconsultaArray = array();
                     foreach ($cargoconsultaQuery as $cargoconsultaEntity) {
                         if ($cargoconsultaEntity->getIdservicio() != null) {
                             $cargoconsulta = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'servicio' => $cargoconsultaEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoconsultaEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoconsultaEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoconsultaEntity->getMonto(), 'fechahora' => date('Y-m-d H:i:s'));
                             array_push($cargoconsultaArray, $cargoconsulta);
                         }
                     }
                 }
                 return new JsonModel(array('cargoconsultaArray' => $cargoconsultaArray, 'cargoconsultaEliminadoArray' => $cargoconsultaEliminadoArray));
             }
         }
     }
     // End Eliminar cargoconsulta
     // Inicio Anticipo Admision
     //Intanciamos nuestro formulario admisionanticipo
     $admisionanticipoForm = new AdmisionanticipoForm();
     //Instanciamos nuestro filtro
     $admisionanticipoFilter = new AdmisionanticipoFilter();
     //Le ponemos nuestro filtro a nuesto fromulario
     $admisionanticipoForm->setInputFilter($admisionanticipoFilter->getInputFilter());
     //Le ponemos los datos a nuestro formulario
     $admisionanticipoForm->setData($request->getPost());
     //Validamos nuestro formulario
     if ($admisionanticipoForm->isValid()) {
         $admisionanticipo = new \Admisionanticipo();
         //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Admisionanticipo
         foreach ($admisionanticipoForm->getData() as $admisionanticipoKey => $admisionanticipoValue) {
             $admisionanticipo->setByName($admisionanticipoKey, $admisionanticipoValue, \BasePeer::TYPE_FIELDNAME);
         }
         $admisionanticipo->setAdmisionanticipoFecha(date('Y-m-d H:i:s'));
         //Guardamos en nuestra base de datos
         $admisionanticipo->save();
         $admisionanticipoArray = \AdmisionanticipoQuery::create()->filterByIdadmisionanticipo($admisionanticipo->getIdadmisionanticipo())->findOne()->toArray(\BasePeer::TYPE_FIELDNAME);
         return new JsonModel(array('admisionanticipoArray' => $admisionanticipoArray));
     }
     // Fin Anticipo Admision
     // Inicio Pago Admision
     //Intanciamos nuestro formulario admisionanticipo
     $admisionanticipoForm = new AdmisionanticipoForm();
     //Instanciamos nuestro filtro
     $admisionanticipoFilter = new AdmisionanticipoFilter();
     //Le ponemos nuestro filtro a nuesto fromulario
     $admisionanticipoForm->setInputFilter($admisionanticipoFilter->getInputFilter());
     //Le ponemos los datos a nuestro formulario
     $admisionanticipoForm->setData($request->getPost());
     //Validamos nuestro formulario
     if ($admisionanticipoForm->isValid()) {
         $admisionanticipo = new \Admisionanticipo();
         //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Admisionanticipo
         foreach ($admisionanticipoForm->getData() as $admisionanticipoKey => $admisionanticipoValue) {
             $admisionanticipo->setByName($admisionanticipoKey, $admisionanticipoValue, \BasePeer::TYPE_FIELDNAME);
         }
         $admisionanticipo->setAdmisionanticipoFecha(date('Y-m-d H:i:s'));
         //Guardamos en nuestra base de datos
         $admisionanticipo->save();
         $admisionanticipoArray = \AdmisionanticipoQuery::create()->filterByIdadmisionanticipo($admisionanticipo->getIdadmisionanticipo())->findOne()->toArray(\BasePeer::TYPE_FIELDNAME);
         return new JsonModel(array('admisionanticipoArray' => $admisionanticipoArray));
     }
     // Fin Pago Admision
     // Inicio Pago Consulta
     //Intanciamos nuestro formulario consultaanticipo
     $consultaanticipoForm = new ConsultaanticipoForm();
     //Instanciamos nuestro filtro
     $consultaanticipoFilter = new ConsultaanticipoFilter();
     //Le ponemos nuestro filtro a nuesto fromulario
     $consultaanticipoForm->setInputFilter($consultaanticipoFilter->getInputFilter());
     //Le ponemos los datos a nuestro formulario
     $consultaanticipoForm->setData($request->getPost());
     //Validamos nuestro formulario
     if ($consultaanticipoForm->isValid()) {
         $consultaanticipo = new \Consultaanticipo();
         //Recorremos nuestro formulario y seteamos los valores a nuestro objeto consultaanticipo
         foreach ($consultaanticipoForm->getData() as $consultaanticipoKey => $consultaanticipoValue) {
             $consultaanticipo->setByName($consultaanticipoKey, $consultaanticipoValue, \BasePeer::TYPE_FIELDNAME);
         }
         $consultaanticipo->setConsultaanticipoFecha(date('Y-m-d H:i:s'));
         //Guardamos en nuestra base de datos
         $consultaanticipo->save();
         $consultaanticipoArray = \ConsultaanticipoQuery::create()->filterByIdconsultaanticipo($consultaanticipo->getIdconsultaanticipo())->findOne()->toArray(\BasePeer::TYPE_FIELDNAME);
         return new JsonModel(array('consultaanticipoArray' => $consultaanticipoArray));
     }
     // Fin Pago Consulta
     $id = (int) $this->params()->fromRoute('id', 0);
     if ($id) {
         $paciente = PacienteQuery::create()->filterByIdpaciente($id)->findOne();
         $fechaNacimiento = date('m/d/Y', strtotime($paciente->getPacienteFechanacimiento()));
         // Inicio Preparando Form Admision
         // Almacenamos en un array los registros de todos los medicos existentes en la base de datos
         $medicoCollection = \MedicoQuery::create()->find();
         $medicoArray = array();
         foreach ($medicoCollection as $medicoEntity) {
             $medicoArray[$medicoEntity->getIdmedico()] = $medicoEntity->getMedicoNombre() . " " . $medicoEntity->getMedicoApellidopaterno() . " " . $medicoEntity->getMedicoApellidomaterno();
         }
         // Almacenamos en un array los registros de todos los cuartos existentes en la base de datos
         $cuartoCollection = \CuartoQuery::create()->filterByCuartoEnuso(false)->find();
         $cuartoArray = array();
         foreach ($cuartoCollection as $cuartoEntity) {
             $cuartoArray[$cuartoEntity->getIdcuarto()] = $cuartoEntity->getCuartoNombre();
         }
         //Intanciamos nuestro formulario admision y le mandamos por parametro los medicos y cuartos existentes
         $admisionForm = new AdmisionForm($medicoArray, $cuartoArray);
         //Instanciamos un nuevo objeto de nuestro objeto Paciente
         $admision = new \Admision();
         // Fin Preparando Form Admision
         // Inicio Preparando Form Consultorio
         // Almacenamos en un array los registros de todos los consultorios existentes en la base de datos
         $consultorioCollection = \ConsultorioQuery::create()->filterByConsultorioEnuso(false)->find();
         $consultorioArray = array();
         foreach ($consultorioCollection as $consultorioEntity) {
             $consultorioArray[$consultorioEntity->getIdconsultorio()] = $consultorioEntity->getConsultorioNombre();
         }
         //Intanciamos nuestro formulario consulta y le mandamos por parametro los medicos y consultorios existentes
         $consultaForm = new ConsultaForm($medicoArray, $consultorioArray);
         //Instanciamos un nuevo objeto de nuestro objeto Paciente
         $consulta = new \Consulta();
         // Fin Preparando Form Consultorio
         //Intanciamos nuestro formulario cargoconsulta "SIN PARAMETROS"
         $cargoconsultaForm = new CargoconsultaForm();
         if ($request->getPost()->cargoconsultaarticulo_by != null) {
             if ($request->getPost()->cargoconsultaarticulo_by == 'nombre') {
                 if ($request->getPost()->busquedaArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useArticulovarianteQuery()->useArticuloQuery()->filterBy(BasePeer::translateFieldname('articulo', 'articulo_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaArticulo . '%', \Criteria::LIKE)->endUse()->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($request->getPost()->cargoconsultaarticulo_by == 'código de barras') {
                 if ($request->getPost()->busquedaArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useArticulovarianteQuery()->filterBy(BasePeer::translateFieldname('articulovariante', 'articulovariante_codigobarras', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaArticulo . '%', \Criteria::LIKE)->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($request->getPost()->cargoconsultaarticulo_by == 'proveedor') {
                 if ($request->getPost()->busquedaArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useOrdencompraQuery()->useProveedorQuery()->filterBy(BasePeer::translateFieldname('proveedor', 'proveedor_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaArticulo . '%', \Criteria::LIKE)->endUse()->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($ordencompradetalleQuery->getArrayCopy()) {
                 $ordencompradetalleArray = array();
                 $lugarNombre = null;
                 foreach ($ordencompradetalleQuery as $ordencompradetalleEntity) {
                     /*
                     foreach($ordencompradetalleEntity->getLugarinventarios()->getArrayCopy() as $lugarinventarioEntity){
                         $idlugarinventario = $lugarinventarioEntity->getIdlugarinventario();
                         $lugarNombre = $lugarinventarioEntity->getLugar()->getLugarNombre();
                         $lugarinventarioCantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                         $articuloNombre = $ordencompradetalleEntity->getArticulovariante()->getArticulo()->getArticuloNombre();
                     
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                         }
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                         }
                     }
                     */
                     foreach ($ordencompradetalleEntity->getLugarinventarios()->getArrayCopy() as $lugarinventarioEntity) {
                         $idlugarinventario = $lugarinventarioEntity->getIdlugarinventario();
                         $lugarNombre = $lugarinventarioEntity->getLugar()->getLugarNombre();
                         $lugarinventarioCantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                         $articuloNombre = $ordencompradetalleEntity->getArticulovariante()->getArticulo()->getArticuloNombre();
                         /*
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                             array_push($propiedadArray, $propiedadNombre);
                         
                         }
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                             array_push($propiedadValorArray, $propiedadvalorNombre);
                         }
                         */
                         $propiedadvalorNombre = null;
                         foreach ($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                         }
                     }
                     $ordencompradetalle = array('idordencompradetalle' => $ordencompradetalleEntity->getIdordencompradetalle(), 'idlugarinventario' => $idlugarinventario, 'cargoconsulta_tipo' => 'articulo', 'cargoconsulta_fecha' => date('Y-m-d H:i:s'), 'ordencompradetalle_caducidad' => $ordencompradetalleEntity->getOrdencompradetalleCaducidad(), 'existencia' => $lugarinventarioCantidad, 'articulo' => $articuloNombre, 'descripcion' => utf8_encode($propiedadvalorNombre), 'precio' => $ordencompradetalleEntity->getArticulovariante()->getArticulovariantePrecio(), 'salida' => $lugarNombre);
                     array_push($ordencompradetalleArray, $ordencompradetalle);
                 }
             }
             return new JsonModel(array('ordencompradetalleArray' => $ordencompradetalleArray));
         }
         if ($request->getPost()->cargoconsultaservicio_by != null) {
             if ($request->getPost()->cargoconsultaservicio_by == 'nombre') {
                 if ($request->getPost()->busquedaServicio != null) {
                     $servicioQuery = \ServicioQuery::create()->filterBy(BasePeer::translateFieldname('servicio', 'servicio_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaServicio . '%', \Criteria::LIKE)->find();
                 } else {
                     $servicioQuery = \ServicioQuery::create()->find();
                 }
             }
             if ($servicioQuery->getArrayCopy()) {
                 $servicioArray = array();
                 foreach ($servicioQuery as $servicioEntity) {
                     $servicio = array('idservicio' => $servicioEntity->getIdservicio(), 'cargoconsulta_tipo' => 'servicio', 'cargoconsulta_fecha' => date('Y-m-d H:i:s'), 'servicio_nombre' => $servicioEntity->getServicioNombre(), 'servicio_descripcion' => $servicioEntity->getServicioDescripcion(), 'servicio_precio' => $servicioEntity->getServicioPrecio());
                     array_push($servicioArray, $servicio);
                 }
             }
             return new JsonModel(array('servicioArray' => $servicioArray));
         }
         // Fin Preparando Form Cargoconsulta
         //Intanciamos nuestro formulario cargoadmision "SIN PARAMETROS"
         $cargoadmisionForm = new CargoadmisionForm();
         if ($request->getPost()->cargoadmisionarticulo_by != null) {
             if ($request->getPost()->cargoadmisionarticulo_by == 'nombre') {
                 if ($request->getPost()->busquedaAdmisionArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useArticulovarianteQuery()->useArticuloQuery()->filterBy(BasePeer::translateFieldname('articulo', 'articulo_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaAdmisionArticulo . '%', \Criteria::LIKE)->endUse()->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($request->getPost()->cargoadmisionarticulo_by == 'código de barras') {
                 if ($request->getPost()->busquedaAdmisionArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useArticulovarianteQuery()->filterBy(BasePeer::translateFieldname('articulovariante', 'articulovariante_codigobarras', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaAdmisionArticulo . '%', \Criteria::LIKE)->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($request->getPost()->cargoadmisionarticulo_by == 'proveedor') {
                 if ($request->getPost()->busquedaAdmisionArticulo != null) {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->useOrdencompraQuery()->useProveedorQuery()->filterBy(BasePeer::translateFieldname('proveedor', 'proveedor_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaAdmisionArticulo . '%', \Criteria::LIKE)->endUse()->endUse()->find();
                 } else {
                     $ordencompradetalleQuery = \OrdencompradetalleQuery::create()->find();
                 }
             }
             if ($ordencompradetalleQuery->getArrayCopy()) {
                 $ordencompradetalleArray = array();
                 $lugarNombre = null;
                 foreach ($ordencompradetalleQuery as $ordencompradetalleEntity) {
                     /*
                     foreach($ordencompradetalleEntity->getLugarinventarios()->getArrayCopy() as $lugarinventarioEntity){
                         $idlugarinventario = $lugarinventarioEntity->getIdlugarinventario();
                         $lugarNombre = $lugarinventarioEntity->getLugar()->getLugarNombre();
                         $lugarinventarioCantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                         $articuloNombre = $ordencompradetalleEntity->getArticulovariante()->getArticulo()->getArticuloNombre();
                     
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                         }
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                         }
                     }
                     */
                     foreach ($ordencompradetalleEntity->getLugarinventarios()->getArrayCopy() as $lugarinventarioEntity) {
                         $idlugarinventario = $lugarinventarioEntity->getIdlugarinventario();
                         $lugarNombre = $lugarinventarioEntity->getLugar()->getLugarNombre();
                         $lugarinventarioCantidad = $lugarinventarioEntity->getLugarinventarioCantidad();
                         $articuloNombre = $ordencompradetalleEntity->getArticulovariante()->getArticulo()->getArticuloNombre();
                         /*
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadNombre = $propiedadQuery->getPropiedadNombre();
                             array_push($propiedadArray, $propiedadNombre);
                         
                         }
                         foreach($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity){
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre = $propiedadvalorQuery->getPropiedadvalorNombre();
                             array_push($propiedadValorArray, $propiedadvalorNombre);
                         }
                         */
                         $propiedadvalorNombre = null;
                         foreach ($ordencompradetalleEntity->getArticulovariante()->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                             $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                             $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                             $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                         }
                     }
                     $ordencompradetalle = array('idordencompradetalle' => $ordencompradetalleEntity->getIdordencompradetalle(), 'idlugarinventario' => $idlugarinventario, 'cargoadmision_tipo' => 'articulo', 'cargoadmision_fecha' => date('Y-m-d H:i:s'), 'ordencompradetalle_caducidad' => $ordencompradetalleEntity->getOrdencompradetalleCaducidad(), 'existencia' => $lugarinventarioCantidad, 'articulo' => $articuloNombre, 'descripcion' => utf8_encode($propiedadvalorNombre), 'precio' => $ordencompradetalleEntity->getArticulovariante()->getArticulovariantePrecio(), 'salida' => $lugarNombre);
                     array_push($ordencompradetalleArray, $ordencompradetalle);
                 }
             }
             return new JsonModel(array('ordencompradetalleArray' => $ordencompradetalleArray));
         }
         if ($request->getPost()->cargoadmisionservicio_by != null) {
             if ($request->getPost()->cargoadmisionservicio_by == 'nombre') {
                 if ($request->getPost()->busquedaAdmisionServicio != null) {
                     $servicioQuery = \ServicioQuery::create()->filterBy(BasePeer::translateFieldname('servicio', 'servicio_nombre', BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_PHPNAME), '%' . $request->getPost()->busquedaAdmisionServicio . '%', \Criteria::LIKE)->find();
                 } else {
                     $servicioQuery = \ServicioQuery::create()->find();
                 }
             }
             if ($servicioQuery->getArrayCopy()) {
                 $servicioArray = array();
                 foreach ($servicioQuery as $servicioEntity) {
                     $servicio = array('idservicio' => $servicioEntity->getIdservicio(), 'cargoadmision_tipo' => 'servicio', 'cargoadmision_fecha' => date('Y-m-d H:i:s'), 'servicio_nombre' => $servicioEntity->getServicioNombre(), 'servicio_descripcion' => $servicioEntity->getServicioDescripcion(), 'servicio_precio' => $servicioEntity->getServicioPrecio());
                     array_push($servicioArray, $servicio);
                 }
             } else {
                 $servicioArray = null;
             }
             return new JsonModel(array('servicioArray' => $servicioArray));
         }
         // Fin Preparando Form Cargoadmision
         if ($request->isPost()) {
             //Si hicieron POST
             //Instanciamos nuestro filtro
             $consultaFilter = new ConsultaFilter();
             //Le ponemos nuestro filtro a nuesto fromulario
             $consultaForm->setInputFilter($consultaFilter->getInputFilter());
             //Le ponemos los datos a nuestro formulario
             $consultaForm->setData($request->getPost());
             //Validamos nuestro formulario
             if ($consultaForm->isValid()) {
                 //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Consulta
                 foreach ($consultaForm->getData() as $consultaKey => $consultaValue) {
                     $consulta->setByName($consultaKey, $consultaValue, \BasePeer::TYPE_FIELDNAME);
                     $consulta->setConsultaStatus('no pagada');
                 }
                 //Guardamos en nuestra base de datos
                 $consulta->save();
                 $consultorio = $consulta->getConsultorio();
                 $consultorio->setConsultorioEnuso(1);
                 $consultorio->save();
                 $consultaArray = \ConsultaQuery::create()->filterByIdconsulta($consulta->getIdconsulta())->findOne()->toArray(BasePeer::TYPE_FIELDNAME);
                 return new JsonModel(array('consultaArray' => $consultaArray));
                 //Redireccionamos a nuestro list
                 //return $this->redirect()->toRoute('pacientes');
             }
             //Instanciamos nuestro filtro
             $cargoconsultaFilter = new CargoconsultaFilter();
             //Le ponemos nuestro filtro a nuesto fromulario
             $cargoconsultaForm->setInputFilter($cargoconsultaFilter->getInputFilter());
             //Le ponemos los datos a nuestro formulario
             $cargoconsultaForm->setData($request->getPost());
             //Validamos nuestro formulario
             if ($cargoconsultaForm->isValid()) {
                 $cargoconsultaArray = array();
                 if ($request->getPost()->cargoconsulta_tipo == 'articulo') {
                     //Instanciamos un nuevo objeto de nuestro objeto Paciente
                     $cargoconsulta = new \Cargoconsulta();
                     //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Consulta
                     foreach ($cargoconsultaForm->getData() as $cargoconsultaKey => $cargoconsultaValue) {
                         if ($cargoconsultaKey != 'cargoconsultaarticulo_by' && $cargoconsultaKey != 'cargoconsultaservicio_by' && $cargoconsultaKey != 'busquedaArticulo' && $cargoconsultaKey != 'busquedaServicio') {
                             $cargoconsulta->setByName($cargoconsultaKey, $cargoconsultaValue, \BasePeer::TYPE_FIELDNAME);
                         }
                     }
                     // Validar precio, caducidad y existencia de ordencompradetalle
                     $existencia = $cargoconsulta->getLugarinventario()->getLugarinventarioCantidad();
                     $caducidad = $cargoconsulta->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleCaducidad();
                     $precio = $cargoconsulta->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio();
                     if ($existencia > 0) {
                         if ($caducidad < date('Y-m-d')) {
                             $cargoconsulta->setMonto($request->getPost()->cantidad * $precio);
                         }
                     }
                     //Guardamos en nuestra base de datos
                     $cargoconsulta->save();
                     $lugarinventarioQuery = $cargoconsulta->getLugarinventario();
                     $lugarinventarioQuery->setLugarinventarioCantidad($lugarinventarioQuery->getLugarinventarioCantidad() - $cargoconsulta->getCantidad());
                     $lugarinventarioQuery->save();
                     $cargoconsultaQuery = \CargoconsultaQuery::create()->filterByIdconsulta($cargoconsulta->getIdconsulta())->find();
                     if ($cargoconsultaQuery->getArrayCopy()) {
                         foreach ($cargoconsultaQuery as $cargoconsultaEntity) {
                             if ($cargoconsultaEntity->getIdlugarinventario() != null) {
                                 $articulovarianteEntity = $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                                 $propiedadvalorNombre = null;
                                 foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                     $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                     $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                     $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                                 }
                                 $cargoconsulta = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'articulo' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombre), 'salida' => $cargoconsultaEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoconsultaEntity->getCargoconsultaFecha(), 'precio' => $cargoconsultaEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoconsultaEntity->getMonto());
                                 array_push($cargoconsultaArray, $cargoconsulta);
                             }
                         }
                     }
                 }
                 if ($request->getPost()->cargoconsulta_tipo == 'servicio') {
                     //Instanciamos un nuevo objeto de nuestro objeto Paciente
                     $cargoconsulta = new \Cargoconsulta();
                     //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Consulta
                     foreach ($cargoconsultaForm->getData() as $cargoconsultaKey => $cargoconsultaValue) {
                         if ($cargoconsultaKey != 'cargoconsultaarticulo_by' && $cargoconsultaKey != 'cargoconsultaservicio_by' && $cargoconsultaKey != 'busquedaArticulo' && $cargoconsultaKey != 'busquedaServicio') {
                             $cargoconsulta->setByName($cargoconsultaKey, $cargoconsultaValue, \BasePeer::TYPE_FIELDNAME);
                         }
                     }
                     $precio = $cargoconsulta->getServicio()->getServicioPrecio();
                     $cargoconsulta->setMonto($request->getPost()->cantidad * $precio);
                     //Guardamos en nuestra base de datos
                     $cargoconsulta->save();
                     $cargoconsultaQuery = \CargoconsultaQuery::create()->filterByIdconsulta($cargoconsulta->getIdconsulta())->find();
                     if ($cargoconsultaQuery->getArrayCopy()) {
                         foreach ($cargoconsultaQuery as $cargoconsultaEntity) {
                             if ($cargoconsultaEntity->getIdservicio() != null) {
                                 $cargoconsulta = array('idcargoconsulta' => $cargoconsultaEntity->getIdcargoconsulta(), 'idconsulta' => $cargoconsultaEntity->getIdconsulta(), 'status' => $cargoconsultaEntity->getConsulta()->getConsultaStatus(), 'cantidad' => $cargoconsultaEntity->getCantidad(), 'servicio' => $cargoconsultaEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoconsultaEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoconsultaEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoconsultaEntity->getMonto(), 'fechahora' => date('Y-m-d H:i:s'));
                                 array_push($cargoconsultaArray, $cargoconsulta);
                             }
                         }
                     }
                 }
                 return new JsonModel(array('cargoconsultaArray' => $cargoconsultaArray));
             }
             /* else {
                    $messageArray = array();
                    foreach ($cargoconsultaForm->getMessages() as $key => $value){
                        foreach($value as $val){
                            //Obtenemos el valor de la columna con error
                            $message = $key.' '.$val;
                            array_push($messageArray, $message);
                        }
                    }
                    var_dump($messageArray);
                    return new ViewModel(array(
                        'input_error' => $messageArray
                    ));
                }*/
             //Instanciamos nuestro filtro
             $admisionFilter = new AdmisionFilter();
             //Le ponemos nuestro filtro a nuesto fromulario
             $admisionForm->setInputFilter($admisionFilter->getInputFilter());
             //Le ponemos los datos a nuestro formulario
             $admisionForm->setData($request->getPost());
             //Validamos nuestro formulario
             if ($admisionForm->isValid()) {
                 //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Admision
                 foreach ($admisionForm->getData() as $admisionKey => $admisionValue) {
                     $admision->setByName($admisionKey, $admisionValue, \BasePeer::TYPE_FIELDNAME);
                     if ($admisionKey == 'admision_fechaadmision') {
                         $admision->setAdmisionFechaadmision($admisionValue . " " . date('H:i:s'));
                     }
                     $admision->setAdmisionStatus('no pagada');
                 }
                 //Guardamos en nuestra base de datos
                 $admision->save();
                 $cuarto = $admision->getCuarto();
                 $cuarto->setCuartoEnuso(1);
                 $cuarto->save();
                 $admisionArray = \AdmisionQuery::create()->filterByIdadmision($admision->getIdadmision())->findOne()->toArray(BasePeer::TYPE_FIELDNAME);
                 return new JsonModel(array('admisionArray' => $admisionArray));
                 //Redireccionamos a nuestro list
                 //return $this->redirect()->toRoute('pacientes');
             }
             /*else {
                   $messageArray = array();
                   foreach ($cargoadmisionForm->getMessages() as $key => $value){
                       foreach($value as $val){
                           //Obtenemos el valor de la columna con error
                           $message = $key.' '.$val;
                           array_push($messageArray, $message);
                       }
                   }
                   var_dump($messageArray);
                   return new JsonModel(array(
                       'error' => $messageArray,
                   ));
               }*/
             //Instanciamos nuestro filtro
             $cargoadmisionFilter = new CargoadmisionFilter();
             //Le ponemos nuestro filtro a nuesto fromulario
             $cargoadmisionForm->setInputFilter($cargoadmisionFilter->getInputFilter());
             //Le ponemos los datos a nuestro formulario
             $cargoadmisionForm->setData($request->getPost());
             //Validamos nuestro formulario
             if ($cargoadmisionForm->isValid()) {
                 $cargoadmisionArray = array();
                 if ($request->getPost()->cargoadmision_tipo == 'articulo') {
                     //Instanciamos un nuevo objeto de nuestro objeto Paciente
                     $cargoadmision = new \Cargoadmision();
                     //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Admision
                     foreach ($cargoadmisionForm->getData() as $cargoadmisionKey => $cargoadmisionValue) {
                         if ($cargoadmisionKey != 'cargoadmisionarticulo_by' && $cargoadmisionKey != 'cargoadmisionservicio_by' && $cargoadmisionKey != 'busquedaAdmisionArticulo' && $cargoadmisionKey != 'busquedaAdmisionServicio') {
                             $cargoadmision->setByName($cargoadmisionKey, $cargoadmisionValue, \BasePeer::TYPE_FIELDNAME);
                         }
                     }
                     // Validar precio, caducidad y existencia de ordencompradetalle
                     $existencia = $cargoadmision->getLugarinventario()->getLugarinventarioCantidad();
                     $caducidad = $cargoadmision->getLugarinventario()->getOrdencompradetalle()->getOrdencompradetalleCaducidad();
                     $precio = $cargoadmision->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio();
                     if ($existencia > 0) {
                         if ($caducidad < date('Y-m-d')) {
                             $cargoadmision->setCargoadmisionMonto($request->getPost()->cargoadmision_cantidad * $precio);
                         }
                     }
                     //Guardamos en nuestra base de datos
                     $cargoadmision->save();
                     $lugarinventarioQuery = $cargoadmision->getLugarinventario();
                     $lugarinventarioQuery->setLugarinventarioCantidad($lugarinventarioQuery->getLugarinventarioCantidad() - $cargoadmision->getCargoadmisionCantidad());
                     $lugarinventarioQuery->save();
                     $cargoadmisionQuery = \CargoadmisionQuery::create()->filterByIdadmision($cargoadmision->getIdadmision())->find();
                     if ($cargoadmisionQuery->getArrayCopy()) {
                         foreach ($cargoadmisionQuery as $cargoadmisionEntity) {
                             if ($cargoadmisionEntity->getIdlugarinventario() != null) {
                                 $articulovarianteEntity = $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante();
                                 $propiedadvalorNombre = null;
                                 foreach ($articulovarianteEntity->getArticulovariantevalors()->getArrayCopy() as $articulovariantevalorEntity) {
                                     $propiedadQuery = \PropiedadQuery::create()->filterByIdpropiedad($articulovariantevalorEntity->getIdpropiedad())->findOne();
                                     $propiedadvalorQuery = \PropiedadvalorQuery::create()->filterByIdpropiedadvalor($articulovariantevalorEntity->getIdpropiedadvalor())->findOne();
                                     $propiedadvalorNombre .= $propiedadQuery->getPropiedadNombre() . " " . $propiedadvalorQuery->getPropiedadvalorNombre() . " ";
                                 }
                                 $cargoadmision = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'articulo' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulo()->getArticuloNombre(), 'descripcion' => utf8_encode($propiedadvalorNombre), 'salida' => $cargoadmisionEntity->getLugarinventario()->getLugar()->getLugarNombre(), 'fechahora' => $cargoadmisionEntity->getCargoadmisionFecha(), 'precio' => $cargoadmisionEntity->getLugarinventario()->getOrdencompradetalle()->getArticulovariante()->getArticulovariantePrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto());
                                 array_push($cargoadmisionArray, $cargoadmision);
                             }
                         }
                     }
                 }
                 if ($request->getPost()->cargoadmision_tipo == 'servicio') {
                     //Instanciamos un nuevo objeto de nuestro objeto Paciente
                     $cargoadmision = new \Cargoadmision();
                     //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Admision
                     foreach ($cargoadmisionForm->getData() as $cargoadmisionKey => $cargoadmisionValue) {
                         if ($cargoadmisionKey != 'cargoadmisionarticulo_by' && $cargoadmisionKey != 'cargoadmisionservicio_by' && $cargoadmisionKey != 'busquedaAdmisionArticulo' && $cargoadmisionKey != 'busquedaAdmisionServicio') {
                             $cargoadmision->setByName($cargoadmisionKey, $cargoadmisionValue, \BasePeer::TYPE_FIELDNAME);
                         }
                     }
                     $precio = $cargoadmision->getServicio()->getServicioPrecio();
                     $cargoadmision->setCargoadmisionMonto($request->getPost()->cargoadmision_cantidad * $precio);
                     //Guardamos en nuestra base de datos
                     $cargoadmision->save();
                     $cargoadmisionQuery = \CargoadmisionQuery::create()->filterByIdadmision($cargoadmision->getIdadmision())->find();
                     if ($cargoadmisionQuery->getArrayCopy()) {
                         foreach ($cargoadmisionQuery as $cargoadmisionEntity) {
                             if ($cargoadmisionEntity->getIdservicio() != null) {
                                 $cargoadmision = array('idcargoadmision' => $cargoadmisionEntity->getIdcargoadmision(), 'idadmision' => $cargoadmisionEntity->getIdadmision(), 'status' => $cargoadmisionEntity->getAdmision()->getAdmisionStatus(), 'cargoadmision_cantidad' => $cargoadmisionEntity->getCargoadmisionCantidad(), 'servicio' => $cargoadmisionEntity->getServicio()->getServicioNombre(), 'descripcion' => $cargoadmisionEntity->getServicio()->getServicioDescripcion(), 'precio' => $cargoadmisionEntity->getServicio()->getServicioPrecio(), 'subtotal' => $cargoadmisionEntity->getCargoadmisionMonto(), 'fechahora' => date('Y-m-d H:i:s'));
                                 array_push($cargoadmisionArray, $cargoadmision);
                             }
                         }
                     }
                 }
                 return new JsonModel(array('cargoadmisionArray' => $cargoadmisionArray));
             }
             /* else {
                    $messageArray = array();
                    foreach ($cargoadmisionForm->getMessages() as $key => $value){
                        foreach($value as $val){
                            //Obtenemos el valor de la columna con error
                            $message = $key.' '.$val;
                            array_push($messageArray, $message);
                        }
                    }
                    return new JsonModel(array(
                        'error' => $messageArray,
                    ));
                }*/
         }
         return new ViewModel(array('pacienteEntity' => $paciente, 'edad' => $this->calculaEdad($fechaNacimiento), 'consultaForm' => $consultaForm, 'admisionForm' => $admisionForm, 'cargoconsultaForm' => $cargoconsultaForm, 'cargoadmisionForm' => $cargoadmisionForm));
     } else {
         return $this->redirect()->toRoute('pacientes');
     }
 }
Пример #6
0
 /**
  * Returns a new AdmisionQuery object.
  *
  * @param     string $modelAlias The alias of a model in the query
  * @param   AdmisionQuery|Criteria $criteria Optional Criteria to build the query from
  *
  * @return AdmisionQuery
  */
 public static function create($modelAlias = null, $criteria = null)
 {
     if ($criteria instanceof AdmisionQuery) {
         return $criteria;
     }
     $query = new AdmisionQuery(null, null, $modelAlias);
     if ($criteria instanceof Criteria) {
         $query->mergeWith($criteria);
     }
     return $query;
 }
Пример #7
0
 public function getmovimientosAction()
 {
     $admisiones = \AdmisionQuery::create()->orderByIdadmision('asc')->find();
     $consultas = \ConsultaQuery::create()->orderByIdconsulta('asc')->find();
     $movimientos_array = array();
     foreach ($admisiones as $admision) {
         $id = 'ADM-' . $admision->getIdadmision();
         $movimientos_array[$id] = 'ADM-' . $admision->getIdadmision();
     }
     foreach ($consultas as $consulta) {
         $id = 'CON-' . $consulta->getIdconsulta();
         $movimientos_array[$id] = 'CON-' . $consulta->getIdconsulta();
     }
     return $this->getResponse()->setContent(\Zend\Json\Json::encode($movimientos_array));
 }
Пример #8
0
 public function generarAction()
 {
     if ($this->params()->fromQuery('id')) {
         $param = $this->params()->fromQuery('id');
         $type = explode('-', $param);
         $type = $type[0];
         $idmovimiento = explode('-', $param);
         $idmovimiento = $idmovimiento[1];
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $admision_detalles_servicios = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('servicio')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $admision['detalles'][] = $item;
                 }
                 $admision_detalles_articulo = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('articulo')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $admision['detalles'][] = $item;
                 }
                 $generalOrder = $admision;
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $consulta_detalles_servicios = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('servicio')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $consulta['detalles'][] = $item;
                 }
                 $consulta_detalles_articulo = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('articulo')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $consulta['detalles'][] = $item;
                 }
                 $generalOrder = $consulta;
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $venta_detalles_servicios = \CargoventaQuery::create()->filterByCargoventaTipo('servicio')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $venta['detalles'][] = $item;
                 }
                 $venta_detalles_articulo = \CargoventaQuery::create()->filterByCargoventaTipo('articulo')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $venta['detalles'][] = $item;
                 }
                 $generalOrder = $venta;
                 break;
         }
         //PDF
         $filePathPDF = '/tmp/pdf/notaremision_' . $param . '.pdf';
         $pdf = new \Notasremision\PdfGenerator\PdfGenerator($generalOrder);
         $pdf->AliasNbPages();
         $pdf->AddPage();
         $pdf->FancyTable();
         $pdf->Output($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F');
         $base64_pdf = base64_encode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F'));
         return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true, 'base64' => $base64_pdf, 'base64_name' => $filePathPDF)));
     }
 }
Пример #9
0
 public function generarAction()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $cerpem = file_get_contents(__DIR__ . '/../Certificados/aad990814bp7_1210261233s.cer.pem');
         $this->emisorArr['cerpem'] = $cerpem;
         $keypem = file_get_contents(__DIR__ . '/../Certificados/aad990814bp7_1210261233s.key.pem');
         $this->emisorArr['keypem'] = $keypem;
         $receptorArr = \PacientefacturacionQuery::create()->findPk($post_data['idpacientefacturacion'])->toArray(\BasePeer::TYPE_FIELDNAME);
         $idmovimiento = $post_data['idmovimiento'];
         $type = explode('-', $idmovimiento);
         $idmovimiento = $type[1];
         $type = $type[0];
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $admision_detalles_servicios = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('servicio')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $admision['detalles'][] = $item;
                 }
                 $admision_detalles_articulo = \CargoadmisionQuery::create()->filterByCargoadmisionTipo('articulo')->filterByIdadmision($idmovimiento)->find();
                 foreach ($admision_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $admision['detalles'][] = $item;
                 }
                 $generalOrder = $admision;
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $consulta_detalles_servicios = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('servicio')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $consulta['detalles'][] = $item;
                 }
                 $consulta_detalles_articulo = \CargoconsultaQuery::create()->filterByCargoconsultaTipo('articulo')->filterByIdconsulta($idmovimiento)->find();
                 foreach ($consulta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $consulta['detalles'][] = $item;
                 }
                 $generalOrder = $consulta;
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($idmovimiento)->toArray(\BasePeer::TYPE_FIELDNAME);
                 //Los "items"
                 $venta_detalles_servicios = \CargoventaQuery::create()->filterByCargoventaTipo('servicio')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_servicios as $detalle) {
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $servicio_nombre = $detalle->getServicio()->getServicioNombre();
                     $servicio_valorunitario = $detalle->getServicio()->getServicioPrecio();
                     $item['servicio_tasa'] = $detalle->getServicio()->getServicioIva();
                     $item['servicio_nombre'] = $servicio_nombre;
                     $item['servicio_valorunitario'] = $servicio_valorunitario;
                     $item['servicio_unidad'] = 'No aplica';
                     $venta['detalles'][] = $item;
                 }
                 $venta_detalles_articulo = \CargoventaQuery::create()->filterByCargoventaTipo('articulo')->filterByIdventa($idmovimiento)->find();
                 foreach ($venta_detalles_articulo as $detalle) {
                     $articulo = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante()->getArticulo();
                     $articulo_variante = $detalle->getLugarinventario()->getOrdencompradetalle()->getArticuloVariante();
                     $articulo_nombre = '';
                     $articulo_nombre .= $articulo->getArticuloNombre() . ' ';
                     //Descripcion
                     $articuloVarianteValorCollection = \ArticulovariantevalorQuery::create()->filterByIdarticulovariante($articulo_variante->getIdarticulovariante())->find();
                     $propiedadCount = 0;
                     foreach ($articuloVarianteValorCollection as $kavv => $vavv) {
                         $propiedadCount++;
                         $articulo_nombre .= \PropiedadQuery::create()->findOneByIdpropiedad($vavv->getIdpropiedad())->getPropiedadNombre();
                         //Propiedad
                         $articulo_nombre .= ':' . \PropiedadvalorQuery::create()->findOneByIdpropiedadvalor($vavv->getIdpropiedadvalor())->getPropiedadvalorNombre();
                         //PropiedadValor
                         if ($propiedadCount < $articuloVarianteValorCollection->count()) {
                             $articulo_nombre .= ' - ';
                         }
                     }
                     $item = $detalle->toArray(\BasePeer::TYPE_FIELDNAME);
                     $item['articulo_nombre'] = $articulo_nombre;
                     $item['articulo_unidad'] = 'pieza';
                     $item['articulo_valorunitario'] = $articulo_variante->getArticulovariantePrecio();
                     $item['articulo_tasa'] = $articulo_variante->getArticulovarianteIva();
                     $venta['detalles'][] = $item;
                 }
                 $generalOrder = $venta;
                 break;
         }
         // Aqui hacer conexion con el timbrador
         $bridgeFacturas = new \Facturacion\Timbradores\BridgeFacturas('finkok');
         //// A la pasarela  ------------------------------------------------------------
         $res = $bridgeFacturas->timbrar('factura', $type, $generalOrder, $this->emisorArr, $receptorArr);
         //Verificamos que no exista error al timbrar
         if (isset($res['error']) && $res['error'] != '') {
             $details = $res['error'];
             return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => false, 'details' => $details)));
         } else {
             $xmlTimbrado = $res['response'];
             $filePathXML = '/tmp/xml/' . $res['xmlId'] . '.xml';
             $filePathPDF = '/tmp/pdf/' . $res['xmlId'] . '.pdf';
             //Generamos la url del qrcode
             $qr_main = 'http://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=';
             $qr_url .= 're=' . $this->emisorArr['rfc'];
             //Emisor
             $qr_url .= '&rr=' . $receptorArr['pacientefacturacion_rfc'];
             //Receptor
             $qr_url .= '&tt=' . $this->numberTo17Digits($xmlArray["Comprobante"]["total"]);
             $qr_url .= '&id=' . $xmlArray['TimbreFiscalDigital']['UUID'];
             $qr_url = $qr_main . urlencode($qr_url) . '.png';
             //http://chart.googleapis.com/chart?cht=qr&chl=Hello+world&choe=UTF-8&chs=200x200
             //EL PDF
             $cfdi = $xmlTimbrado['xml'];
             $cadena_original = $xmlTimbrado['cadenaOriginal'];
             $qrcode = $qr_url;
             $pdf = new \Facturacion\PdfGenerator\PdfGenerator($cfdi, $cadena_original, $qrcode);
             $pdf->AliasNbPages();
             $pdf->AddPage();
             $pdf->FancyTable();
             $pdf->QrCode();
             $pdf->Output($_SERVER['DOCUMENT_ROOT'] . $filePathPDF, 'F');
             //Guardamos los datos de la factura
             $factura = new \Factura();
             $factura->setIddatosfacturacion($post_data['idpacientefacturacion']);
             if ($type == 'ADM') {
                 $factura->setIdadmision($idmovimiento);
                 $admision = \AdmisionQuery::create()->findPk($idmovimiento);
                 $admision->setAdmisionFacturada(1);
                 $admision->save();
             } else {
                 if ($type == 'CON') {
                     $factura->setIdconsulta($idmovimiento);
                     $consulta = \ConsultaQuery::create()->findPk($idmovimiento);
                     $consulta->setConsultaFacturada(1);
                     $consulta->save();
                 } else {
                     $factura->setIdventa($idmovimiento);
                     $venta = \VentaQuery::create()->findPk($idmovimiento);
                     $venta->setVentaFacturada(1);
                     $venta->save();
                 }
             }
             $factura->setFacturaUrlXml($filePathXML);
             $factura->setFacturaUrlPdf($filePathPDF);
             $factura->setFacturaFecha($xmlTimbrado['fecha']);
             $factura->setFacturaSellosat($xmlTimbrado['SatSeal']);
             $factura->setFacturaCertificadosat($xmlTimbrado['NoCertificadoSAT']);
             $factura->setFacturaCfdi($xmlTimbrado['uuid']);
             $factura->setFacturaMensaje($xmlTimbrado['codEstatus']);
             $factura->setFacturaTipodepago('unico');
             $factura->setFacturaTipo('ingreso');
             $factura->setFacturaStatus('creada');
             $factura->setFacturaQrcode($qr_url);
             $factura->save();
             $this->flashMessenger()->addMessage('Factura emitida exitosamente!');
             return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => true)));
         }
     }
     if ($this->params()->fromRoute('id')) {
         $id = $this->params()->fromRoute('id');
         $type = explode('-', $id);
         $id = $type[1];
         $type = $type[0];
         $factura_info = array();
         switch ($type) {
             case 'ADM':
                 $admision = \AdmisionQuery::create()->findPk($id);
                 $factura_info['fecha'] = $admision->getAdmisionFechaadmision('d-m-Y H:i');
                 $factura_info['id'] = 'ADM-' . $admision->getIdadmision();
                 $factura_info['paciente'] = $admision->getPaciente()->getPacienteNombre() . ' ' . $admision->getPaciente()->getPacienteAp() . ' ' . $admision->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $admision->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = $admision->getMedico()->getMedicoNombre() . ' ' . $admision->getMedico()->getMedicoApellidopaterno() . ' ' . $admision->getMedico()->getMedicoApellidomaterno();
                 $factura_info['pagada'] = $admision->getAdmisionPagadaen('d-m-Y H:i');
                 $factura_info['tipo_pago'] = $admision->getAdmisionTipodepago();
                 $factura_info['total'] = $admision->getAdmisionTotal();
                 $factura_info['tipo'] = 'admision';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente($admision->getPaciente()->getIdpaciente())->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
             case 'CON':
                 $consulta = \ConsultaQuery::create()->findPk($id);
                 $factura_info['fecha'] = $consulta->getConsultaFecha('d-m-Y');
                 $factura_info['fecha'] .= ' ' . $consulta->getConsultaHora();
                 $factura_info['id'] = 'CON-' . $consulta->getIdconsulta();
                 $factura_info['paciente'] = $consulta->getPaciente()->getPacienteNombre() . ' ' . $consulta->getPaciente()->getPacienteAp() . ' ' . $consulta->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $consulta->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = $consulta->getMedico()->getMedicoNombre() . ' ' . $consulta->getMedico()->getMedicoApellidopaterno() . ' ' . $consulta->getMedico()->getMedicoApellidomaterno();
                 $factura_info['pagada'] = $consulta->getConsultaFecha('d-m-Y');
                 $factura_info['pagada'] .= ' ' . $consulta->getConsultaHora();
                 $factura_info['tipo_pago'] = $consulta->getConsultaTipodepago();
                 $factura_info['total'] = $consulta->getConsultaTotal();
                 $factura_info['tipo'] = 'consulta';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente($consulta->getPaciente()->getIdpaciente())->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
             case 'VP':
                 $venta = \VentaQuery::create()->findPk($id);
                 $factura_info['fecha'] = $venta->getVentaFecha('d-m-Y H:i');
                 $factura_info['id'] = 'VP-' . $venta->getIdventa();
                 $factura_info['paciente'] = $venta->getPaciente()->getPacienteNombre() . ' ' . $venta->getPaciente()->getPacienteAp() . ' ' . $venta->getPaciente()->getPacienteAm();
                 $factura_info['idpaciente'] = $venta->getPaciente()->getIdpaciente();
                 $factura_info['medico'] = 'N/A';
                 $factura_info['pagada'] = $venta->getVentaFecha('d-m-Y H:i');
                 $factura_info['tipo_pago'] = $venta->getVentaTipodepago();
                 $factura_info['total'] = $venta->getVentaTotal();
                 $factura_info['tipo'] = 'venta al publico';
                 $direcciones = \PacientefacturacionQuery::create()->filterByIdpaciente(1)->find()->toArray(null, false, \BasePeer::TYPE_FIELDNAME);
                 break;
         }
         return new ViewModel(array('general_info' => $factura_info, 'facturacion_info' => $direcciones));
     }
     $this->getResponse()->setStatusCode(404);
     return;
 }