السلام عليكم انا اقوم بتحويل كود داخل دالة store الي php pure ممكن مساعدة في باقي
request()->validate(['type'=>"required",'start_date'=>"required",'end_date'=>'required',],['type.required'=>'يجب تحديد نوع الاجازة','start_date.required'=>'يجب إدخال تاريخ بداية الإجازة','end_date.required'=>'يجب ادخال تاريخ المباشرة',]);
DB::beginTransaction();try{
$vac =newVacation;if($id ==0){
$emp =Employee::find(request('emp_id'));}else{
$emp =Employee::find($id);}if(Vacation::where([['emp_id', $emp->id],['accept',false]])->exists()){
DB::rollback();return redirect()->back()->with('error','عذرآ ولكن هنالك أجازة قيد الاجراء للموظف الحالي الرجاء التحقق');}if(!request('years')&&!request('months')&&!request('days')){
DB::rollback();return redirect()->back()->with('error','عذرآ ولكن يجب تعبئة إحدي الخانات علي الاقل (السنوات ,الاشهر ,الايام)');}if(request('type')=="إجازة وضع"&& $emp->gender ==1&& $emp->status ==1){
DB::rollback();return redirect()->back()->with('error','عذرآ ولكن لا يمكن أعطاء هذا النوع من الاجازة للموظف المختار');}if(request('type')=="إجازة زواج"&& $emp->vacations()->where("type","إجازة زواج")->count()!=0&& $emp->status ==0){
DB::rollback();return redirect()->back()->with('error','عذرآ الموظف المختار قد تحصل علي أجاة زواج مسبقآ');}
$vac->emp_id = $emp->id;
$vac->type = request('type');if(request('type')=="إجازة سنوية"){
$vac->days = request('days');
$date =Carbon::createFromFormat('Y-m-d', $emp->start_date);
$date = $date->addYear();
$date = $date->toDateString();if($emp->vacations){
$vacationBalance = $this->calculateVacationBalance($date, $emp->vacations->where('accept',true)->sum("days"));}else{
$vacationBalance = $this->calculateVacationBalance($date,0);}if($vacationBalance < $vac->days){
DB::rollback();return redirect()->back()->with('error','عذرآ لايمكن أنشاء إجازة وذلك لعدم توفر الرصيد الكافي...');}
هذا كودي انا
if($_SERVER["REQUEST_METHOD"]=="POST"){
$emp_id = $_POST['emp_id'];// يتم تخزين id موظف
$type = $_POST['type'];// يتم تخزين نوع الإجازة
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
$reason = $_POST['reason'];
$companion = isset($_POST['companion'])?1:0;
$created_at = date('Y-m-d H:i:s');}
$stmt = $con->prepare("SELECT * FROM people WHERE id = ?");
$stmt->bind_param("i", $emp_id);
$stmt->execute();
$result = $stmt->get_result();if($result->num_rows >0){
$row = $result->fetch_assoc();
$gender = $row['gender'];}if($type =="اجازة وضع"&& $gender =="ذكر"){
echo "عذرآ ولكن لا يمكن إعطاء هذا النوع من الإجازة للموظف المختار لأنه ذكر.";}if($type =="اجازة زواج"){
$stmt = $con->prepare("SELECT COUNT(*) FROM vacations WHERE emp_id = ? AND type = ?");
$stmt->bind_param("is", $emp_id, $type);
$stmt->execute();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close();if($count >0){
echo "لديك إجازة زواج مسبقًا، لا يمكنك أخذها مرة أخرى.";exit();}}if($type =="اجازة سنوية"){
$startDate =newDateTime($start_date);
$endDate =newDateTime($end_date);
$interval = $startDate->diff($endDate);
$daysDiff = $interval->days+1;//عدد ايام بين تاريخ بداية اجازة وتاريخ نهاية اجازة
$stmt = $con->prepare("SELECT * FROM employees WHERE person_id= ?");//جلب تاريخ مباشرة موظف
$stmt->bind_param("i", $emp_id);
$stmt->execute();
$result = $stmt->get_result();if($result->num_rows >0){
$row = $result->fetch_assoc();
$s_date =newDateTime($row['start_date']);
$s_date->modify('+1 year');
$s_date->format('Y-m-d');}}
ممكن شرح جزئية باقية اخواني الكرام
if($emp->vacations){
$vacationBalance = $this->calculateVacationBalance($date, $emp->vacations->where('accept',true)->sum("days"));}else{
$vacationBalance = $this->calculateVacationBalance($date,0);}if($vacationBalance < $vac->days){
DB::rollback();return redirect()->back()->with('error','عذرآ لايمكن أنشاء إجازة وذلك لعدم توفر الرصيد الكافي...');}
السؤال
ايمن ميلاد
السلام عليكم انا اقوم بتحويل كود داخل دالة store الي php pure ممكن مساعدة في باقي
هذا كودي انا
ممكن شرح جزئية باقية اخواني الكرام
28 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.