public function presente($id)
 {
     try {
         $modelo = $this->modelo->findOrFail($id);
         $modelo->presente = $modelo->presente == 1 ? 0 : 1;
         if ($modelo->save() !== false) {
             $this->eventoAuditar($modelo);
             return Response::json(array('error' => false, 'listado' => array($modelo->toArray())), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($modelo->validator), 'listado' => $modelo->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function tomar_turno($paciente_prepaga_id)
 {
     $params = Input::all();
     unset($params['apikey']);
     $turno_id = $params["turno_id"];
     $tipo = isset($params["tipo"]) && !empty($params["tipo"]) ? $params["tipo"] : "T";
     $user_id = Auth::user()->id;
     $paciente_prepaga = PacientePrepaga::findOrFail($paciente_prepaga_id);
     $turnos = explode(",", $turno_id);
     //si son muchos turnos
     if (count($turnos) > 1) {
         $objTurnos = Turno::whereIn('id', $turnos)->where('estado', 'L')->get();
         if (count($objTurnos) == count($turnos)) {
             $affectedRows = Turno::whereIn('id', $turnos)->where('estado', 'L')->update(array('estado' => 'A', 'paciente_prepaga_id' => $paciente_prepaga->id, 'user_id' => $user_id));
             if ($affectedRows == count($turnos)) {
                 foreach ($objTurnos as $cadaTurno) {
                     $this->eventoAuditar($cadaTurno);
                 }
                 $turno = Turno::findOrFail($turnos[0]);
                 return Response::json(array('error' => false, 'listado' => array($turno->find($turno->id)->toArray())), 200);
             } else {
                 return Response::json(array('error' => true, 'mensaje' => 'No se pudieron asignar los turnos', 'envio' => $params), 200);
             }
         } else {
             return Response::json(array('error' => true, 'mensaje' => "alguno de los turnos está tomado"), 200);
         }
     } else {
         //es un solo turno
         $turno = Turno::findorFail($turno_id);
         //chequea entreturno
         if ($tipo == 'E') {
             $otros_entreturnos = Turno::where('padre', '=', $turno->id)->get();
             $new_turno = new Turno();
             $new_turno->fill($turno->toArray());
             $new_turno->id = null;
             $new_turno->padre = $turno->id;
             $turno = $new_turno;
             $turno->tipo_turno = 'E';
             $desde = strtotime(substr($turno->hora_desde, 0, 2) . ":" . substr($turno->hora_desde, -2));
             $hasta = strtotime(substr($turno->hora_hasta, 0, 2) . ":" . substr($turno->hora_hasta, -2));
             if (count($otros_entreturnos) == 0) {
                 $n_desde = $desde + ($hasta - $desde) / 2;
                 $turno->hora_desde = date('Hi', $n_desde);
             } else {
                 $intervalo = ($hasta - $desde) / (2 + count($otros_entreturnos));
                 $n_desde = $desde + $intervalo;
                 foreach ($otros_entreturnos as $entreturno) {
                     $entreturno->hora_desde = date('Hi', $n_desde);
                     $entreturno->save();
                     $n_desde += $intervalo;
                 }
                 $turno->hora_desde = date('Hi', $n_desde);
             }
             $turno->estado = 'L';
         }
         //falta verificar turno bloqueado x mismo usuario
         if ($turno->estado == 'L') {
             $turno->estado = 'A';
             $turno->paciente_prepaga_id = $paciente_prepaga->id;
             $turno->user_id = $user_id;
             if ($turno->save()) {
                 $this->eventoAuditar($turno);
                 return Response::json(array('error' => false, 'listado' => array($turno->find($turno->id)->toArray())), 200);
             } else {
                 return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($turno->validator), 'envio' => $params), 200);
             }
         } else {
             return Response::json(array('error' => true, 'mensaje' => "turno tomado"), 200);
         }
     }
 }
 public function actualizar($id)
 {
     DB::beginTransaction();
     try {
         $data = Input::all();
         $new = $data;
         unset($new['apikey']);
         unset($new['session_key']);
         $items = array();
         $new = array_map(function ($n) {
             return $n == 'NULL' ? NULL : $n;
         }, $new);
         if (isset($new["items"])) {
             foreach ($new["items"] as $i => $item) {
                 $items[$i] = array_map(function ($n) {
                     return $n == 'NULL' ? NULL : $n;
                 }, $item);
             }
             unset($new["items"]);
         }
         $modelo_fichado = new Fichado();
         $F = $modelo_fichado->find($id);
         $F->fill($new);
         if ($F->save()) {
             $this->eventoAuditar($F);
             if (count($items)) {
                 $lineas = $F->items()->get();
                 foreach ($lineas as $l) {
                     $l->delete();
                 }
                 foreach ($items as $item) {
                     $F_lin = new FichadoItem();
                     $item['fichado_id'] = $F->id;
                     $o_lin = $F_lin->create($item);
                     if (!$o_lin->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($o_lin->validator), 'listado' => $data), 200);
                     }
                 }
             }
             DB::commit();
             return Response::json(array('error' => false, 'listado' => $F->where('id', '=', $F->id)->get()->toArray()), 200);
         } else {
             DB::rollback();
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($F->validator), 'listado' => $data), 200);
         }
     } catch (\Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function responder()
 {
     try {
         DB::beginTransaction();
         $data = Input::all();
         $new = $data;
         unset($new['apikey']);
         unset($new['session_key']);
         if (isset($new["respuesta"])) {
             foreach ($new["respuesta"] as $i => $r) {
                 $respuesta = array("paciente_id" => $new["paciente_id"], "anamnesis_pregunta_id" => $new["pregunta"][$i], "respuesta" => $r);
                 $AR = AnamnesisRespuesta::create($respuesta);
                 if ($AR->save()) {
                     $this->eventoAuditar($AR);
                 } else {
                     DB::rollback();
                     return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($AR->validator), 'listado' => $data), 200);
                 }
             }
             DB::commit();
             return Response::json(array('error' => false, 'listado' => $new), 200);
         }
     } catch (\Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
Пример #5
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     try {
         $modelo = $this->modelo->find($id);
         $data = Input::all();
         unset($data['apikey']);
         //hash passwords for users
         if (isset($data["password"]) && !empty($data["password"])) {
             $data["password"] = Hash::make($data["password"]);
         }
         //cambiar 'NUUL? por NULL
         $data = array_map(function ($n) {
             return $n == 'NULL' ? NULL : $n;
         }, $data);
         $modelo->fill($data);
         DB::enableQueryLog();
         if ($modelo->save() !== false) {
             $this->eventoAuditar($modelo);
             return Response::json(array('error' => false, 'listado' => array($modelo->toArray())), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($modelo->validator), 'listado' => $modelo->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function cancelarRecepcion()
 {
     try {
         $data = Input::all();
         $new = $data;
         unset($new['apikey']);
         unset($new['session_key']);
         $OT_lin = OrdenTrabajoItem::findOrfail($new["item"]);
         $OT_lin->fecha_devolucion = NULL;
         $OT_lin->estado_devolucion = NULL;
         $OT_lin->remito_devolucion = NULL;
         $OT_lin->user_id_recibido = NULL;
         $OT_lin->precio = NULL;
         if (!$OT_lin->save()) {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($OT_lin->validator), 'listado' => $data), 200);
         }
         return Response::json(array('error' => false, 'listado' => $OT_lin->toArray()), 200);
     } catch (\Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
Пример #7
0
 public function esvip($id)
 {
     $C = Paciente::findOrFail($id);
     try {
         $C->vip = Input::get('vip');
         if ($C->save()) {
             return Response::json(array('error' => false, 'listado' => $C->toArray()), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($C->validator), 'listado' => $C->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function crear()
 {
     DB::beginTransaction();
     try {
         $data = Input::all();
         $new = $data;
         unset($new['apikey']);
         unset($new['session_key']);
         $items = array();
         $pagos = array();
         $new = array_map(function ($n) {
             return $n == 'NULL' ? NULL : $n;
         }, $new);
         if (isset($new["items"])) {
             foreach ($new["items"] as $i => $item) {
                 $items[$i] = array_map(function ($n) {
                     return $n == 'NULL' ? NULL : $n;
                 }, $item);
             }
             unset($new["items"]);
         }
         if (isset($new["pago"])) {
             foreach ($new["pago"] as $p => $pago) {
                 $pagos[$p] = array_map(function ($n) {
                     return $n == 'NULL' ? NULL : $n;
                 }, $pago);
             }
             unset($new["pago"]);
         }
         $new["user_id"] = Auth::user()->id;
         $modelo_ctacte = new Ctacte();
         $ctacte = $modelo_ctacte->create($new);
         if ($ctacte->save()) {
             $this->eventoAuditar($ctacte);
             if (count($items)) {
                 foreach ($items as $item) {
                     $ctacte_fac_lin = new CtacteFacLin();
                     $item['ctacte_id'] = $ctacte->id;
                     $fac_lin = $ctacte_fac_lin->create($item);
                     if (!$fac_lin->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($fac_lin->validator), 'listado' => $data, 'paso' => 1), 200);
                     }
                 }
             }
             if (count($pagos)) {
                 $referencia = $ctacte->id;
                 if (substr($ctacte->tipo_prev, 0, 1) == 'F') {
                     $new["tipo_cbte"] = !empty($new["tipo_cbte"]) ? 'RE' : NULL;
                     $new["tipo_prev"] = 'RE';
                     $new["referencia"] = $ctacte->id;
                     $new["importe_iva"] = 0;
                     $importe = 0;
                     foreach ($pagos as $p) {
                         $importe += $p["importe"];
                     }
                     $new["importe_neto"] = $importe;
                     $new["importe_bruto"] = $importe;
                     $modelo_ctacte1 = new Ctacte();
                     $ctacte1 = $modelo_ctacte1->create($new);
                     if ($ctacte1->save()) {
                         $this->eventoAuditar($ctacte1);
                         $referencia = $ctacte1->id;
                     } else {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($ctacte1->validator), 'paso' => 2, 'listado' => $data), 200);
                     }
                 }
                 foreach ($pagos as $pago) {
                     $ctacte_rec_lin = new CtacteRecLin();
                     $pago['ctacte_id'] = $referencia;
                     $rec_lin = $ctacte_rec_lin->create($pago);
                     if (!$rec_lin->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($rec_lin->validator), 'listado' => $data, 'pas' => 3), 200);
                     }
                 }
                 if (!MovimientoCaja::ingresoCtacte($referencia)) {
                     DB::rollback();
                     return Response::json(array('error' => true, 'mensaje' => "No se pudo grabar movimiento de caja asociado", 'listado' => $data), 200);
                 }
             }
             DB::commit();
             return Response::json(array('error' => false, 'listado' => $ctacte->where('id', '=', $ctacte->id)->get()->toArray()), 200);
         } else {
             DB::rollback();
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($ctacte->validator), 'paso' => 4, 'listado' => $data), 200);
         }
     } catch (\Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function transferencia()
 {
     DB::beginTransaction();
     try {
         $data = Input::all();
         unset($data['apikey']);
         unset($data['session_key']);
         $data = array_map(function ($n) {
             return $n == 'NULL' ? NULL : $n;
         }, $data);
         $MC_salida = new MovimientoCaja();
         $MC_entrada = new MovimientoCaja();
         $salida = $data;
         //$salida["fecha"] = date("Y-m-d");
         //$salida["hora"] = date("H:i:s");
         //$salida["user_id"] = Auth::user()->id;
         $entrada = $salida;
         $entrada["caja_ref_id"] = $data["caja_id"];
         $entrada["caja_id"] = $data["caja_ref_id"];
         $entrada["ingreso_egreso"] = "I";
         $MC_salida->fill($salida);
         $MC_entrada->fill($entrada);
         if ($MC_salida->save() && $MC_entrada->save()) {
             $this->eventoAuditar($MC_salida);
             $this->eventoAuditar($MC_entrada);
             DB::commit();
             return Response::json(array('error' => false, 'listado' => array($this->modelo->find($MC_salida->id)->toArray(), $this->modelo->find($MC_entrada->id)->toArray())), 200);
         } else {
             DB::rollback();
             $mensaje = array();
             if ($MC_entrada->validator != NULL) {
                 $mensaje[] = HerramientasController::getErrores($MC_entrada->validator);
             }
             if ($MC_salida->validator != NULL) {
                 $mensaje[] = HerramientasController::getErrores($MC_salida->validator);
             }
             return Response::json(array('error' => true, 'mensaje' => $mensaje, 'listado' => $data), 200);
         }
     } catch (Exception $e) {
         DB::rollback();
         //dd($e);
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function habilitarTurnos($id)
 {
     try {
         $a = Agenda::findOrFail($id);
         $a->habilitado_turnos = 1;
         if ($a->save()) {
             return Response::json(array('error' => false, 'listado' => $a->toArray()), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($a->validator), 'listado' => $a->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
Пример #11
0
 public function updateTicket($id)
 {
     $C = Ctacte::findOrFail($id);
     try {
         $C->ticket = Input::get('ticket');
         $C->fecha_ticket = Input::get('fecha_ticket');
         if ($C->save()) {
             return Response::json(array('error' => false, 'listado' => $C->toArray()), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($C->validator), 'listado' => $C->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
Пример #12
0
 public function eliminarRegistroIngresos($id, $accion)
 {
     try {
         $modelo = $this->modelo->findOrFail($id);
         $modelo->{$accion} = null;
         if ($accion == 'hora_ingreso_clinica') {
             $modelo->presente = 0;
         }
         if ($modelo->save() !== false) {
             $this->eventoAuditar($modelo);
             return Response::json(array('error' => false, 'listado' => array($modelo->toArray())), 200);
         } else {
             return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($modelo->validator), 'listado' => $modelo->toArray()), 200);
         }
     } catch (Exception $e) {
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }
 public function cerrar($caja_id)
 {
     DB::beginTransaction();
     try {
         $salida = array();
         $medios_pagos = MedioPagoCaja::all();
         $ultimo_cierre = CierreCaja::where('caja_id', '=', $caja_id)->orderBy('fecha', 'desc')->orderBy('hora', 'desc')->take(1)->first();
         $movimientos = DB::select("select m.medios_pago_caja_id,concat(mp.medio_pago,' (',mp.moneda,')') as medio_pago,sum(case m.ingreso_egreso when 'i' then m.importe else m.importe * -1 end ) as importe from movimientos_cajas m inner join medios_pago_caja mp on m.medios_pago_caja_id = mp.id where m.caja_id = ? and m.cierres_cajas_id is null group by m.medios_pago_caja_id", array($caja_id));
         if (count($movimientos)) {
             $cierre = new CierreCaja();
             $data = array('user_id' => Auth::user()->id, 'caja_id' => $caja_id, 'fecha' => date("Y-m-d"), "hora" => date("H:i:s"));
             $cierre->fill($data);
             if ($cierre->save()) {
                 foreach ($medios_pagos as $mp) {
                     $salida[$mp->id] = array("cierres_cajas_id" => $cierre->id, "medios_pago_caja_id" => $mp->id, "importe" => 0);
                 }
                 foreach ($movimientos as $mov) {
                     $salida[$mov->medios_pago_caja_id]["importe"] += $mov->importe;
                 }
                 if (count($ultimo_cierre)) {
                     $cierre_items = $ultimo_cierre->items()->get();
                     foreach ($cierre_items as $it) {
                         $salida[$it->medios_pago_caja_id]["importe"] += $it->importe;
                     }
                 }
                 foreach ($salida as $ci_data) {
                     $cci = new CierreCajaItem();
                     $cci->fill($ci_data);
                     if (!$cci->save()) {
                         DB::rollback();
                         return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($cci->validator), 'listado' => $ci_data), 200);
                     }
                 }
                 DB::statement('update movimientos_cajas set cierres_cajas_id = ? where caja_id = ? and cierres_cajas_id is null', array($cierre->id, $caja_id));
                 DB::commit();
                 return Response::json(array('error' => false, 'listado' => $cierre->items()->get()->toArray()), 200);
             } else {
                 DB::rollback();
                 return Response::json(array('error' => true, 'mensaje' => HerramientasController::getErrores($cierre->validator), 'listado' => $data), 200);
             }
         } else {
             return Response::json(array('error' => true, 'mensaje' => "La caja no registra movimientos desde el ultimo cierre"), 200);
         }
     } catch (\Exception $e) {
         DB::rollback();
         return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200);
     }
 }