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); } }
/** * 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); } }
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); } }
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); } }
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); } }