public static function ingresoCtaCte($ctacte_id) { DB::begintransaction(); try { $CC = Ctacte::findOrFail($ctacte_id); $data = array("caja_id" => $CC->caja_id, "importe" => 0, "ingreso_egreso" => "I", "fecha" => date("Y-m-d"), "hora" => date("H:i:s"), "user_id" => Auth::user()->id, "tipo_mov_caja_id" => 2, "medios_pago_caja_id" => NULL, "ctacte_id" => $CC->id); $lineas_rec = $CC->lineas_recibo()->get(); //dd($lineas_rec->toArray()); foreach ($lineas_rec as $pago) { $MC = new MovimientoCaja(); $data_pago = $data; $data_pago["importe"] = $pago->importe; $query = MedioPagoCaja::where('tipo', '=', $pago->tipo); if ($pago->tipo_cambio > 0) { $query->where('moneda', '=', 'DOL'); } else { $query->where('moneda', '=', 'ARS'); } $MP = $query->first(); $data_pago["medios_pago_caja_id"] = $MP->id; $MC->fill($data_pago); if (!$MC->save()) { DB::rollback(); return false; } } DB::commit(); return true; } catch (Exception $e) { DB::rollback(); 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 informe() { try { $data = Input::all(); $desde = $data["desde"]; $hasta = $data["hasta"]; $query = MovimientoCaja::where('fecha', '>=', $desde)->where('fecha', '<=', $hasta); if (isset($data["caja_id"]) && !empty($data["caja_id"])) { $query->where("caja_id", "=", $data["caja_id"]); } if (isset($data["tipo_mov_caja_id"]) && !empty($data["tipo_mov_caja_id"])) { $query->where("tipo_mov_caja_id", "=", $data["tipo_mov_caja_id"]); } return Response::json(array('error' => false, 'listado' => $query->get()), 200); } catch (Exception $e) { DB::rollback(); return Response::json(array('error' => true, 'mensaje' => $e->getMessage()), 200); } }