register step

This commit is contained in:
Kevin Adametz 2020-03-26 09:46:06 +01:00
parent 1ada368ed4
commit f06d2d15a5
50 changed files with 748 additions and 276 deletions

View file

@ -4,12 +4,15 @@ namespace App\Http\Controllers;
use App\Mail\MailCustomMessage;
use App\Mail\MailVerifyAccount;
use App\Mail\MailVerifyContact;
use App\Mail\MailAccountActive;
use App\Models\UserAccount;
use App\Models\UserHistory;
use App\Repositories\ContractPDFRepository;
use App\Repositories\UserRepository;
use App\Services\UserService;
use App\User;
use Illuminate\Support\Facades\Mail;
use Input;
@ -190,23 +193,13 @@ class LeadController extends Controller
$user = $this->userRepo->getModel();
$unique = false;
do{
$confirmation_code = str_random(30);
if( User::where('confirmation_code', '=', $confirmation_code)->count() == 0){
$unique = true;
}
}
while(!$unique);
$confirmation_code = UserService::createConfirmationCode();
$user->lang = $user->getLandByCountry();
$user->confirmation_code = $confirmation_code;
//10 == start wizard form create Lead
$user->wizard = 10;
$user->save();
Mail::to($user->email)->send(new MailVerifyContact($confirmation_code, $user));
\Session()->flash('alert-save', true);
@ -221,47 +214,74 @@ class LeadController extends Controller
}
//user released when register is complete
public function newReleased($id){
public function released($action, $id){
$user = User::findOrFail($id);
$validator = Validator::make(Input::all(), []);
if(!$user->m_sponsor){
$validator->errors()->add('m_sponsor', __('Berater hat keinen Sponsor.'));
}
if(!$user->account->m_first_name){
$validator->errors()->add('m_first_name', __('Berater hat keinen Vornamen.'));
}
if(!$user->account->m_first_name){
$validator->errors()->add('m_last_name', __('Berater hat keinen Nachnamen.'));
}
if(!$user->account->m_account){
$validator->errors()->add('m_account', __('Berater hat keine Account ID'));
}
if ($validator->errors()->count()) {
return back()->withErrors($validator)->withInput(Input::all());
if($action === 'completed'){
$validator = Validator::make(Input::all(), []);
if(!$user->m_sponsor){
$validator->errors()->add('m_sponsor', __('Berater hat keinen Sponsor.'));
}
if(!$user->account->m_first_name){
$validator->errors()->add('m_first_name', __('Berater hat keinen Vornamen.'));
}
if(!$user->account->m_first_name){
$validator->errors()->add('m_last_name', __('Berater hat keinen Nachnamen.'));
}
if(!$user->account->m_account){
$validator->errors()->add('m_account', __('Berater hat keine Account ID'));
}
if ($validator->errors()->count()) {
return back()->withErrors($validator)->withInput(Input::all());
}
//create PDF
$pdf = new ContractPDFRepository($user);
$pdf->_set('disk', 'user');
$pdf->_set('dir', '/'.$user->id.'/documents/');
$pdf->_set('user_id', $user->id);
$pdf->_set('identifier', 'contract');
$pdf->createContractPDF();
//set wizard tp payments
$user->wizard = 20;
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
//mail with code to user?
Mail::to($user->email)->send(new MailAccountActive($user));
UserHistory::create(['user_id' => $user->id, 'action'=>'released_completed', 'status'=>0]);
\Session()->flash('alert-success', "Berater freigeschaltet!");
}
//create PDF
$pdf = new ContractPDFRepository($user);
$pdf->_set('disk', 'user');
$pdf->_set('dir', '/'.$user->id.'/documents/');
$pdf->_set('user_id', $user->id);
$pdf->_set('identifier', 'contract');
$pdf->createContractPDF();
if($action === 'incomplete'){
//set wizard tp payments
$user->wizard = 20;
$user->active = 1;
$user->active_date = now();
$user->confirmation_code = null;
$user->confirmation_code_to = null;
$user->confirmation_code_remider = 0;
$user->save();
//mail with code to user?
Mail::to($user->email)->send(new MailAccountActive($user));
\Session()->flash('alert-success', "Berater freigeschaltet!");
//reset release
$confirmation_code = UserService::createConfirmationCode();
$user->confirmation_code = $confirmation_code;
$user->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week'));
$user->confirmation_code_remider = 0;
$user->wizard = 1;
$user->release_account = null;
$user->save();
$input = Input::all();
$data = [
'subject' => $input['account_incomplete_subject'],
'message' => $input['account_incomplete_message'],
'confirmation_code' => $confirmation_code,
];
Mail::to($user->email)->send(new MailCustomMessage($user, $data, \Auth::user()));
UserHistory::create(['user_id' => $user->id, 'action'=>'released_incomplete', 'status'=>0]);
\Session()->flash('alert-success', "E-Mail an Berater gesendet.");
}
return redirect(route('admin_lead_edit', [$user->id]));
}
@ -270,28 +290,35 @@ class LeadController extends Controller
public function newMailVerified($id){
$user = User::findOrFail($id);
$unique = false;
do{
$confirmation_code = str_random(30);
if(User::where('confirmation_code', '=', $confirmation_code)->count() == 0){
$unique = true;
}
}
while(!$unique);
$confirmation_code = UserService::createConfirmationCode();
$user->confirmation_code = $confirmation_code;
$user->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week'));
$user->confirmation_code_remider = 0;
$user->save();
Mail::to($user->email)->send(new MailVerifyAccount($confirmation_code, $user));
\Session()->flash('alert-success', "E-Mail erneut gesendet");
UserHistory::create(['user_id' => $user->id, 'action'=>'new_mail_verified', 'status'=>0]);
\Session()->flash('alert-success', "E-Mail erneut gesendet");
return redirect(route('admin_lead_edit', [$user->id]));
}
public function deleteFile($user_id, $file_id, $relation){
if($relation === 'upload'){
$user = User::findOrFail($user_id);
$file = $user->files()->findOrFail($file_id);
//remove file
\Storage::disk('user')->delete($file->dir.$file->filename);
$file->delete();
\Session()->flash('alert-success', "Datei gelöscht");
}
return back();
}
public function getLeads()
{

View file

@ -76,15 +76,7 @@ class RegisterController extends Controller
$data = Input::all();
$user = $this->userRepo->create($data);
$unique = false;
do{
$confirmation_code = str_random(30);
if(User::where('confirmation_code', '=', $confirmation_code)->count() == 0){
$unique = true;
}
}
while(!$unique);
$confirmation_code = UserService::createConfirmationCode();
$user->lang = !empty(\App::getLocale()) ? \App::getLocale() : "de";
$user->confirmation_code = $confirmation_code;

View file

@ -149,6 +149,7 @@ class WizardController extends Controller
$rules = array(
'accepted_data_protection' => 'required',
'accepted_active' => 'required',
'accepted_contract' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
@ -162,12 +163,17 @@ class WizardController extends Controller
return view('user.wizard.register', $data)->withErrors($validator);
}
$account = $user->account;
if($account->accepted_contract === null){
$account->accepted_contract = now();
}
if($account->data_protection === null){
$account->data_protection = now();
}
$account->save();
if($user->agreement === null){
$user->agreement = now();
}
$user->wizard = 1;
$user->save();
return redirect(route('wizard_register'));
@ -254,6 +260,7 @@ class WizardController extends Controller
if ($step == 4) {
$user->wizard = 5;
$user->release_account = now();
UserHistory::create(['user_id' => $user->id, 'action'=>'release_account', 'status'=>0]);
$user->save();
if($user->isTestMode()){
@ -297,14 +304,16 @@ class WizardController extends Controller
}
$account = $user->account;
if($account->accepted_contract === null){
$account->accepted_contract = now();
}
if($account->data_protection === null){
$account->data_protection = now();
}
$account->save();
if($user->agreement === null){
$user->agreement = now();
}
$account->save();
$user->agreement = now();
$user->wizard = 11;
$user->save();