public function postDupproject()
 {
     $validator = Validator::make(Input::all(), Project::$rules);
     if ($validator->passes()) {
         $project = Project::where('created_by', '=', Auth::user()->id)->where('name', '=', Input::get('name'))->where('active', '=', 1)->get();
         if (!$project->isEmpty()) {
             return Redirect::to('project')->with('message_error', 'Project duplicate !');
         } else {
             $project = new Project();
             $project->name = Input::get('name');
             $project->member_id = Auth::user()->id;
             $project->created_by = Auth::user()->id;
             $project->save();
             $ref_cate = RefCategory::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_cate) {
                 foreach ($ref_cate as $non) {
                     $ref_cate = RefCategory::find($non->id);
                     $clone = $ref_cate->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefCategory::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 1;
                     $temp->save();
                 }
             }
             $ref_type = RefType::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_type) {
                 foreach ($ref_type as $non) {
                     $ref_type = RefType::find($non->id);
                     $clone = $ref_type->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefType::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 2;
                     $temp->save();
                 }
             }
             $ref_part = RefPart::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_part) {
                 foreach ($ref_part as $non) {
                     $ref_part = RefPart::find($non->id);
                     $clone = $ref_part->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefPart::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 3;
                     $temp->save();
                 }
             }
             $basic_equipment = BasicEquipment::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($basic_equipment) {
                 foreach ($basic_equipment as $non) {
                     $basic_equipment = BasicEquipment::find($non->id);
                     $clone = $basic_equipment->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert = BasicEquipment::create($data);
                     $tempcat = DB::table('ref_template')->where('old_id', $insert->category_id)->where('table_id', 1)->where('project_id', $project->id)->first();
                     BasicEquipment::where('project_id', $project->id)->where('category_id', $insert->category_id)->update(array('category_id' => $tempcat->new_id));
                     $temptype = DB::table('ref_template')->where('old_id', $insert->type_id)->where('table_id', 2)->where('project_id', $project->id)->first();
                     BasicEquipment::where('project_id', $project->id)->where('type_id', $insert->type_id)->update(array('type_id' => $temptype->new_id));
                     $temppart = DB::table('ref_template')->where('old_id', $insert->part_id)->where('table_id', 3)->where('project_id', $project->id)->first();
                     BasicEquipment::where('project_id', $project->id)->where('part_id', $insert->part_id)->update(array('part_id' => $temppart->new_id));
                 }
                 // DB::table('ref_template')->delete();
             }
             $ref_fail_cause = RefFailureCause::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_fail_cause) {
                 foreach ($ref_fail_cause as $non) {
                     $ref_fail_cause = RefFailureCause::find($non->id);
                     $clone = $ref_fail_cause->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefFailureCause::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 4;
                     $temp->save();
                 }
             }
             $ref_fail_mode = RefFailureMode::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_fail_mode) {
                 foreach ($ref_fail_mode as $non) {
                     $ref_fail_mode = RefFailureMode::find($non->id);
                     $clone = $ref_fail_mode->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefFailureMode::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 5;
                     $temp->save();
                 }
             }
             $basic_failure = BasicFailure::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($basic_failure) {
                 foreach ($basic_failure as $non) {
                     $basic_failure = BasicFailure::find($non->id);
                     $clone = $basic_failure->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert = BasicFailure::create($data);
                     $tempcause = DB::table('ref_template')->where('old_id', $insert->cause_id)->where('table_id', 4)->where('project_id', $project->id)->first();
                     BasicFailure::where('project_id', $project->id)->where('cause_id', $insert->cause_id)->update(array('cause_id' => $tempcause->new_id));
                     $tempmode = DB::table('ref_template')->where('old_id', $insert->mode_id)->where('table_id', 5)->where('project_id', $project->id)->first();
                     BasicFailure::where('project_id', $project->id)->where('mode_id', $insert->mode_id)->update(array('mode_id' => $tempmode->new_id));
                 }
             }
             $ref_task_type = RefTaskType::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_task_type) {
                 foreach ($ref_task_type as $non) {
                     $ref_task_type = RefTaskType::find($non->id);
                     $clone = $ref_task_type->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert_id = RefTaskType::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 6;
                     $temp->save();
                 }
             }
             $ref_task_list = RefTaskList::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_task_list) {
                 foreach ($ref_task_list as $non) {
                     $ref_task_list = RefTaskList::find($non->id);
                     $clone = $ref_task_list->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     RefTaskList::create($data);
                     $temp = new RefTemp();
                     $temp->old_id = $non->id;
                     $temp->new_id = $insert_id->id;
                     $temp->project_id = $project->id;
                     $temp->table_id = 7;
                     $temp->save();
                 }
             }
             $basic_task = BasicTask::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($basic_task) {
                 foreach ($basic_task as $non) {
                     $basic_task = BasicTask::find($non->id);
                     $clone = $basic_task->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     $insert = BasicTask::create($data);
                     $tempcause = DB::table('ref_template')->where('old_id', $insert->cause_id)->where('table_id', 4)->where('project_id', $project->id)->first();
                     BasicTask::where('project_id', $project->id)->where('cause_id', $insert->cause_id)->update(array('cause_id' => $tempcause->new_id));
                     $temptasktype = DB::table('ref_template')->where('old_id', $insert->type_id)->where('table_id', 6)->where('project_id', $project->id)->first();
                     BasicTask::where('project_id', $project->id)->where('type_id', $insert->type_id)->update(array('type_id' => $temptasktype->new_id));
                     $templist = DB::table('ref_template')->where('old_id', $insert->list_id)->where('table_id', 7)->where('project_id', $project->id)->first();
                     BasicTask::where('project_id', $project->id)->where('list_id', $insert->list_id)->update(array('list_id' => $templist->new_id));
                 }
             }
             $ref_task_interval = RefTaskInterval::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_task_interval) {
                 foreach ($ref_task_interval as $non) {
                     $ref_task_interval = RefTaskInterval::find($non->id);
                     $clone = $ref_task_interval->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     RefTaskInterval::create($data);
                 }
             }
             $ref_non_critical_question = RefNonCriticalQuestion::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_non_critical_question) {
                 foreach ($ref_non_critical_question as $non) {
                     $ref_non_critical_question = RefNonCriticalQuestion::find($non->id);
                     $clone = $ref_non_critical_question->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     RefNonCriticalQuestion::create($data);
                 }
             }
             $ref_order_type = RefOrderType::where('project_id', Input::get('project_id'))->where('active', 1)->where('type_use', 2)->get();
             if ($ref_order_type) {
                 foreach ($ref_order_type as $non) {
                     $ref_order_type = RefOrderType::find($non->id);
                     $clone = $ref_order_type->replicate();
                     unset($clone['created_by'], $clone['updated_by'], $clone['project_id']);
                     $clone['project_id'] = $project->id;
                     $clone['created_by'] = Auth::user()->id;
                     $data = json_decode($clone, true);
                     RefOrderType::create($data);
                 }
             }
             DB::table('ref_template')->delete();
             Session::put('project_id', $project->id);
             Session::put('project', $project->name);
             return Redirect::to('project')->withSuccess('Duplicate Project Success.');
         }
     }
     return Redirect::to('project')->withErrors($validator)->withInput();
 }