diff --git a/app/Http/Controllers/Actions/EmpresaEncuestaAction.php b/app/Http/Controllers/Actions/EmpresaEncuestaAction.php new file mode 100644 index 0000000..ca23796 --- /dev/null +++ b/app/Http/Controllers/Actions/EmpresaEncuestaAction.php @@ -0,0 +1,16 @@ +pluck('periodo', 'id'); + } +} diff --git a/app/Http/Controllers/Actions/EmpresaRubroAction.php b/app/Http/Controllers/Actions/EmpresaRubroAction.php new file mode 100644 index 0000000..8c028a8 --- /dev/null +++ b/app/Http/Controllers/Actions/EmpresaRubroAction.php @@ -0,0 +1,19 @@ +id; + + return Empresa::where('rubro_id', $rubroId) + ->pluck('descripcion', 'id'); + } +} diff --git a/app/Http/Controllers/CloneController.php b/app/Http/Controllers/CloneController.php index 88d64cd..20ae23a 100644 --- a/app/Http/Controllers/CloneController.php +++ b/app/Http/Controllers/CloneController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use App\Cabecera_encuesta; +use App\Empresa; +use App\Rubro; use Illuminate\Http\Request; class CloneController extends Controller @@ -281,7 +283,72 @@ public function cloneAMX(Request $request){ return redirect()->route('clonar.amx.form')->with('toast', $toast); } + public function index(){ + $rubros = Rubro::pluck('descripcion', 'id'); + $empresas = Empresa::pluck('descripcion', 'id'); + + return view('encuestas.clone.index')->with('rubros', $rubros) + ->with('empresas', $empresas); + + + } + + public function cloneClub(Request $request) + { + ini_set('max_execution_time', 0); + ini_set('memory_limit', '1000M'); + if(!$request->empresas){ + return redirect()->route('clone.error.missing', 'Empresas origen y destino'); + } + + if(!$request->rubro_id){ + return redirect()->route('clone.error.missing', 'CLUB DESTINO'); + } + + if(!$request->periodo){ + return redirect()->route('clone.error.missing', 'PERIODO'); + } + + $empresas = json_decode($request->empresas); + foreach ($empresas as $empresa) { + //dd($empresa); + $encuesta = Cabecera_encuesta::find($empresa->encuesta); + if($encuesta){ + $cabecera = $encuesta->replicate(); + $cabecera->rubro_id = $request->rubro_id; + $cabecera->periodo = $request->periodo; + $cabecera->empresa_id = $empresa->id; + $cabecera->save(); + $encuestaCargo = $encuesta->encuestasCargo; + foreach($encuestaCargo as $cargo){ + $newCargo = $cargo->replicate(); + $newCargo->cabecera_encuesta_id = $cabecera->id; + $newCargo->save(); + $detalle = $cargo->detalleEncuestas; + if($detalle){ + $newDetalle = $detalle->replicate(); + $newDetalle->cabecera_encuesta_id = $cabecera->id; + $newDetalle->encuestas_cargo_id = $newCargo->id; + $newDetalle->save(); + } + } + } + } + + + return redirect()->route('clone.success'); + } + + public function success() + { + return view('encuestas.clone.success'); + } + + public function errorMissing($field) + { + return view('encuestas.clone.errors.error_missing')->with('field', $field); + } } diff --git a/public/images/caratula-amx.png b/public/images/caratula-amx.png new file mode 100644 index 0000000..d1373cd Binary files /dev/null and b/public/images/caratula-amx.png differ diff --git a/resources/views/encuestas/clone/errors/error_missing.blade.php b/resources/views/encuestas/clone/errors/error_missing.blade.php new file mode 100644 index 0000000..d754c78 --- /dev/null +++ b/resources/views/encuestas/clone/errors/error_missing.blade.php @@ -0,0 +1,18 @@ +@extends('layout') +@section('content') +
+
+
+
+
+ Los sentimos +

No encontramos datos para el campo: {{ $field }}

+
+ +
+
+
+
+@stop \ No newline at end of file diff --git a/resources/views/encuestas/clone/index.blade.php b/resources/views/encuestas/clone/index.blade.php new file mode 100644 index 0000000..659885e --- /dev/null +++ b/resources/views/encuestas/clone/index.blade.php @@ -0,0 +1,231 @@ +@extends('layout') +@section('content') +
+
+
+

Clonar Club

+
+
+
+ +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+ Opción + add + + + +
+
+
+
+
+

+

Empresas a clonar
+

+
+
+
+ + + + + + + + + + + + +
Empresa OrigenPeriodoEmpresa DestinoOpción
+
+
+
+ +
+
+
+
+ +@stop +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/encuestas/clone/success.blade.php b/resources/views/encuestas/clone/success.blade.php new file mode 100644 index 0000000..9da3a2f --- /dev/null +++ b/resources/views/encuestas/clone/success.blade.php @@ -0,0 +1,18 @@ +@extends('layout') +@section('content') +
+
+
+
+
+ La clonación fue exitosa +

Las encuestas están disponibles para el nuevo club

+
+ +
+
+
+
+@stop \ No newline at end of file diff --git a/resources/views/layout.blade.php b/resources/views/layout.blade.php index 9e20324..24f802a 100644 --- a/resources/views/layout.blade.php +++ b/resources/views/layout.blade.php @@ -203,6 +203,9 @@