shell bypass 403
<?php namespace App\Livewire\Caution; use Livewire\Component; use Livewire\Attributes\Title; use App\Models\contrat\autocontrat; use App\Models\{Garanties,Produit, Compagnie, Energie,DureeContrat, Avenant, Paiement,Devise, Souscripteur, Assure, Vehicule,Agence, }; use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Livewire\Attributes\Rule; use Illuminate\Support\Facades\Auth; class CreateCaution extends Component { public $currentStep = 1; public $total_steps = 6; //------------variable souscripteur public $typeSouscripteur; public $raison_sociale; public $email_souscripteur; public $tel_souscripteur; //-------------------------------- public $devise; public $montant_recu; //------------variable assuré public $Oui_assure ; public $Nom_assure; public $contact_assure; public $email_assure; //-------------------------------- //--------------------------------variable CHOIX COMPAGNIE public $compagnie; public $agence; public $date_creation; public $duree; public $resultDate; public $resultDateEffet; //------------ public $Sous_Nom_produit; public $Nom_produit; //------------variable contrat public $prime_nette; public $police; public $accs_compagnie; public $accs_courtier; public $taxe; public $montantMarche; public $montantCaution; public $date_effet; public $duree_contrat; public $date_echeance; public $taux_commission; public $total_ttc; public $total_commission; //------------variable contrat public $res; public function mount() { if (!Auth::check()) { return redirect()->route('post.login'); } } public function suivant(){ $this->validateForm(); if ($this->currentStep < $this->total_steps) { $this->currentStep ++; } } public function precedent(){ if ($this->currentStep > 1) { $this->currentStep --; } } public function CalculePrimeTTC(){// cacule de la prime ttc $this->total_ttc = (int)((int) $this->prime_nette + (int) $this->accs_compagnie + (int) $this->accs_courtier + (int) $this->taxe); } public function DureeContrat(){//detertminer la date d'échéance du contrat // Créez une instance de la date $date = Carbon::parse($this->date_effet); // Obtenez la date sous forme d'objet Carbon $dateEffet = Carbon::parse($this->date_effet); // Ajoutez le nombre de mois $duree = (int) $this->duree_contrat; $date->addMonths($duree); // Soustrayez le nombre de jours $date->subDays(1); // Obtenez la nouvelle date au format 'd/m/Y' $this->resultDate = $date->format('d/m/Y'); $this->resultDateEffet = $dateEffet->format('d/m/Y'); } public function enregistrer(){//-------------FUNCTION D'ENREGISTREMENT AFFAIRE NOUVELLE MONO VEHICULE------------- $this->validateForm();//---------APPEL DE LA FUNCTION DE VALIDATION // sleep(2); $pttc = (int)((int) $this->prime_nette + (int) $this->accs_compagnie + (int) $this->accs_courtier + (int) $this->taxe);// CALCULE DE LA PRIME TTC if ( (int)$pttc < (int)$this->montant_recu) { $this->res = 'Vérifiez le montant reçu !'; return false; }else{ $this->res =''; } $soucripteur = Souscripteur::create(//-----------SOUSCRIPTEUR [ 'raison_sociale'=> $this->raison_sociale, 'tel_souscripteur'=> $this->tel_souscripteur, 'email_souscripteur'=> $this->email_souscripteur, 'typeSouscripteur'=> $this->typeSouscripteur, ] );//--------------SOUSCRIPTEUR $assure = Assure::create(//----------ASSURE [ 'IDsouscripteur'=>$soucripteur->id, 'nomAssure'=> $this->Nom_assure, 'telAssure'=> $this->contact_assure, 'emailAssure'=> $this->email_assure, ] );//--------------ASSURE $avenant = Avenant::create(//-----------AVENANT [ 'refAvenant'=>'REF-' . str_pad(rand(1, 100), 5, '0', STR_PAD_LEFT).'-'. str_pad(Carbon::now()->year, 3, '0', STR_PAD_LEFT).'-'.$assure->id, 'police'=>$this->police, 'IDassure'=> $assure->id, 'IDuser'=> Auth::user()->id, 'IDcompagnie'=>$this->compagnie, 'date_effet'=>date('Y-m-d',strtotime(str_replace('/','-',$this->date_effet))), 'date_echeance'=>date('Y-m-d',strtotime(str_replace('/','-',$this->resultDate))), 'mvt_ordre'=> 0, 'mvt_avenant'=> "NOUVELLE AFFAIRE", 'status_avenant'=>"production", 'typeAvenant'=>'mono', 'date_creation'=>date('Y-m-d',strtotime(str_replace('/','-',$this->date_creation))) ] );//-----------AVENANT $commissionBrute = (int) ((int) $this->prime_nette * ((int)$this->taux_commission/100));//calcule commission brute $autocontrat = autocontrat::create(//----------------------CONTRAT [ 'refcontratAuto'=>$avenant->refAvenant, 'IDavenant'=>$avenant->id, 'IDagence'=>$this->agence, 'bonus_commerciale'=>(int)$this->taux_commission, 'IDproduit'=>$this->Nom_produit, 'sousCategorie'=>$this->Sous_Nom_produit, 'IDrisque'=>2,//Id risque automobile 'exercice'=>date("Y"),//année de l'execice courant 'montantMarche'=>$this->montantMarche, 'montantCautionne'=>$this->montantCaution, 'prime_ttc'=>(int)((int) $this->prime_nette + (int) $this->accs_compagnie + (int) $this->accs_courtier + (int) $this->taxe), 'prime_nette'=>(int)$this->prime_nette, 'accs_compagnie'=>(int)$this->accs_compagnie, 'accs_courtier'=>(int)$this->accs_courtier, 'taxe'=>(int)$this->taxe, 'commission'=>(int)$commissionBrute, 'etat'=>'production', 'commission_nette'=>(int)(((int)$commissionBrute - ((int)$commissionBrute*7.5/100)) + $this->accs_courtier), ] );//----------------------CONTRAT $reste_a_payer = (int) ((int)$pttc - (int)$this->montant_recu);// CALCULE DU RESTE A PAYER $paiement = Paiement::create([//--------------PAIEMANT 'IDavenant'=> $avenant->id, 'IDdevise'=> $this->devise, 'status_paiement'=> $reste_a_payer == 0 ? 'payé' : 'impayé', 'reglement'=>(int)$this->montant_recu, 'montantRecu'=> (int)$this->montant_recu, 'Reste_a_payer'=> (int)$reste_a_payer, ]);//-------------PAIEMENT session()->flash('message', 'Bordereau mis à jour avec succès.'); return redirect()->to('/contrat/bordereau/caution'); }//-------------FIN DE FUNCTION D'ENREGISTREMENT AFFAIRE NOUVELLE MONO VEHICULE------------- public function validateForm(){//-------------FUNCTION DE VALIDATION------------- if ($this->currentStep===1) { $validate = $this->validate([ 'typeSouscripteur'=>'required', 'raison_sociale'=>'required', ]); } elseif($this->currentStep===2){ $validate = $this->validate([ 'compagnie'=>'required', 'agence'=>'required|exists:agences,id', 'date_creation'=>'required|date', ]); }elseif ($this->currentStep===3) { $validate = $this->validate([ 'police'=>'required|unique:avenants,police', 'prime_nette'=>'required|numeric', 'accs_compagnie'=>'required|numeric', 'accs_courtier'=>'required|numeric', 'taxe'=>'required|numeric', 'montantCaution'=>'required|numeric', 'montantMarche'=>'required|numeric', 'taux_commission'=>'required|numeric|', ]); }elseif ($this->currentStep===4) { $validate = $this->validate([ 'Nom_assure'=>'required', 'contact_assure'=>'required', ]); }elseif($this->currentStep===5){ $validate = $this->validate([ 'date_effet'=>'required|date', 'duree_contrat'=>'required', 'Nom_produit'=>'required|exists:produits,id', 'Sous_Nom_produit'=>'required', ]); } elseif($this->currentStep===6){ $validate = $this->validate([ 'devise'=>'required', 'montant_recu'=>'required|numeric', ]); } }//-------------FIN DE FUNCTION DE VALIDATION------------- public function souscripteurAssure(){//-------------FUNCTION SOUSCRIPTEUR EST IL ASSURE ?------------- if ($this->Oui_assure =='oui') { $this->Nom_assure = $this->raison_sociale; $this->email_assure = $this->email_souscripteur; $this->contact_assure = $this->tel_souscripteur; }elseif($this->Oui_assure =='non'){ $this->Nom_assure = ''; $this->email_assure = ''; $this->contact_assure = ''; } } #[Title('Caution')] public function render() { $compagnies = Compagnie::orderBy('id','desc')->get(); $dureesContrats = DureeContrat::get(); $devises = Devise::get(); $produits = Produit::Where('codeProduit','caution')->orderBy('id','desc')->get(); return view('livewire.caution.create-caution',[ 'compagnies'=>$compagnies, 'dureesContrats'=>$dureesContrats, 'devises'=>$devises, 'agences'=>Agence::get(), 'produits'=>$produits, ]); } }