Esempio n. 1
0
 public function enrollKid()
 {
     $inputs = Input::all();
     $batch_data = Batches::find($inputs['batchCbx']);
     $eachClassCost = $batch_data->class_amount;
     //return Response::json(array('status'=>$inputs));
     //$inputs['discountPercentage']=$inputs['discountP'];
     $studentClasses['classId'] = $inputs['eligibleClassesCbx'];
     $studentClasses['batchId'] = $inputs['batchCbx'];
     $studentClasses['studentId'] = $inputs['studentId'];
     $season_data = Seasons::find($inputs['SeasonsCbx']);
     //$inputs['enrollmentEndDate']=$season_data->end_date;
     //$studentClasses['enrollment_start_date'] = date('Y-m-d', strtotime($inputs['enrollmentStartDate']));
     //return Response::json(array('status'=>'working'));
     //$studentClasses['enrollment_end_date']   = date('Y-m-d', strtotime($inputs['enrollmentEndDate']));
     $studentClasses['selected_sessions'] = $inputs['selectedSessions'];
     $studentClasses['seasonId'] = $inputs['SeasonsCbx'];
     //for proper enrollment start date and end date
     $end = Carbon::now();
     $start = Carbon::now();
     $start->year = date('Y', strtotime($inputs['enrollmentStartDate']));
     $start->month = date('m', strtotime($inputs['enrollmentStartDate']));
     $start->day = date('d', strtotime($inputs['enrollmentStartDate']));
     $end->year = date('Y', strtotime($inputs['enrollmentEndDate']));
     $end->month = date('m', strtotime($inputs['enrollmentEndDate']));
     $end->day = date('d', strtotime($inputs['enrollmentEndDate']));
     $batch_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $start->toDateString())->where('schedule_date', '<=', $end->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
     $studentClasses['enrollment_start_date'] = $batch_data[0]['schedule_date'];
     $studentClasses['enrollment_end_date'] = $batch_data[count($batch_data) - 1]['schedule_date'];
     //Batch Start date
     $BatchDetails = Batches::where('id', '=', $inputs['batchCbx'])->first();
     $reminderStartDate = $BatchDetails->start_date;
     $enrollment = StudentClasses::addStudentClass($studentClasses);
     $paymentDuesInput['student_id'] = $inputs['studentId'];
     $paymentDuesInput['customer_id'] = $inputs['customerId'];
     $paymentDuesInput['batch_id'] = $inputs['batchCbx'];
     $paymentDuesInput['class_id'] = $inputs['eligibleClassesCbx'];
     $paymentDuesInput['selected_sessions'] = $inputs['selectedSessions'];
     $paymentDuesInput['seasonId'] = $inputs['SeasonsCbx'];
     $paymentDuesInput['each_class_cost'] = $eachClassCost;
     $order['customer_id'] = $inputs['customerId'];
     $order['student_id'] = $inputs['studentId'];
     $order['seasonId'] = $inputs['SeasonsCbx'];
     $order['student_classes_id'] = $enrollment->id;
     $order['payment_mode'] = $inputs['paymentTypeRadio'];
     $order['payment_for'] = "enrollment";
     $order['card_last_digit'] = $inputs['card4digits'];
     $order['card_type'] = $inputs['cardType'];
     $order['bank_name'] = $inputs['bankName'];
     $order['cheque_number'] = $inputs['chequeNumber'];
     //$order['each_class_cost']   =$eachClassCost;
     if (isset($inputs['membershipType'])) {
         $order['membershipType'] = $inputs['membershipType'];
     }
     $paydue_id;
     if ($inputs['paymentOptionsRadio'] == 'singlepay') {
         // for starting and end date of enrollment
         $enddate = Carbon::now();
         $startdate = Carbon::now();
         $startdate->year = date('Y', strtotime($inputs['enrollmentStartDate']));
         $startdate->month = date('m', strtotime($inputs['enrollmentStartDate']));
         $startdate->day = date('d', strtotime($inputs['enrollmentStartDate']));
         $enddate->year = date('Y', strtotime($inputs['enrollmentEndDate']));
         $enddate->month = date('m', strtotime($inputs['enrollmentEndDate']));
         $enddate->day = date('d', strtotime($inputs['enrollmentEndDate']));
         $batch_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('schedule_date', '<=', $enddate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
         $paymentDuesInput['start_order_date'] = $batch_data[0]['schedule_date'];
         $paymentDuesInput['end_order_date'] = $batch_data[count($batch_data) - 1]['schedule_date'];
         $paymentDuesInput['payment_due_amount'] = $inputs['singlePayAmount'];
         $paymentDuesInput['payment_type'] = $inputs['paymentOptionsRadio'];
         $paymentDuesInput['payment_status'] = "paid";
         $paymentDuesInput['discount_applied'] = $inputs['discountPercentage'];
         $paymentDuesInput['student_class_id'] = $enrollment->id;
         $paymentDuesInput['selected_order_sessions'] = $inputs['selectedSessions'];
         //$paymentDuesInput['start_order_date']=$studentClasses['enrollment_start_date'];
         //$paymentDuesInput['end_order_date']=$studentClasses['enrollment_end_date'];
         $paymentDuesInput['discount_amount'] = $inputs['discountPercentage'] / 100 * $inputs['singlePayAmount'];
         $order['amount'] = $inputs['singlePayAmount'];
         if ($inputs['CustomerType'] == 'OldCustomer') {
             $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate']));
             $order['created_at'] = $paymentDuesInput['created_at'];
         }
         $paymentDuesResult = PaymentDues::createPaymentDues($paymentDuesInput);
         $order['payment_dues_id'] = $paymentDuesResult->id;
         $order['order_status'] = "completed";
         if ($inputs['selectedSessions'] > 8) {
             // creating followup for the single pay
             $presentDate = Carbon::now();
             $startdate = Carbon::now();
             $startdate->year = date('Y', strtotime($inputs['enrollmentStartDate']));
             $startdate->month = date('m', strtotime($inputs['enrollmentStartDate']));
             $startdate->day = date('d', strtotime($inputs['enrollmentStartDate']));
             $batch_schedule_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
             $session_number = (int) ($inputs['selectedSessions'] / 2);
             $reminder_date = $batch_schedule_data[$session_number]['schedule_date'];
             $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
             $customer_log_data['student_id'] = $paymentDuesResult->student_id;
             $customer_log_data['franchisee_id'] = Session::get('franchiseId');
             $customer_log_data['followup_type'] = 'PAYMENT';
             $customer_log_data['followup_status'] = 'REMINDER_CALL';
             $customer_log_data['comment_type'] = 'VERYINTERESTED';
             $customer_log_data['reminderDate'] = $reminder_date;
             $remindDate = Carbon::now();
             $remindDate = $remindDate->createFromFormat('Y-m-d', $reminder_date);
             if ($remindDate->gt($presentDate)) {
                 $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                 $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                 Comments::addSinglePayComment($customer_log_data);
             }
         }
     } else {
         if ($inputs['paymentOptionsRadio'] == 'multipay') {
             $today = Carbon::now();
             $paymentDuesInput['payment_type'] = $inputs['paymentOptionsRadio'];
             for ($i = 1; $i <= 4; $i++) {
                 if (isset($inputs['multipayAmount' . $i])) {
                     $firstBrushupCallReminderDate;
                     $firstInitialPaymentCallReminderDate;
                     $firstFinalPaymentCallReminderDate;
                     if ($i == 1) {
                         $paymentDuesInput['payment_status'] = "paid";
                         $order['amount'] = $inputs['multipayAmount' . $i];
                         $enddate = Carbon::now();
                         $startdate = Carbon::now();
                         $startdate->year = date('Y', strtotime($inputs['enrollmentStartDate']));
                         $startdate->month = date('m', strtotime($inputs['enrollmentStartDate']));
                         $startdate->day = date('d', strtotime($inputs['enrollmentStartDate']));
                         $enddate->year = date('Y', strtotime($inputs['enrollmentEndDate']));
                         $enddate->month = date('m', strtotime($inputs['enrollmentEndDate']));
                         $enddate->day = date('d', strtotime($inputs['enrollmentEndDate']));
                         $batch_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('schedule_date', '<=', $enddate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
                         $paymentDuesInput['start_order_date'] = $batch_data[0]['schedule_date'];
                         $endorderdate = $batch_data[count($batch_data) - 1]['schedule_date'];
                         //$paymentDuesInput['start_order_date']=$studentClasses['enrollment_start_date'];
                         //$startdate=  Carbon::create(date('Y,m,d,0', strtotime($inputs['enrollmentStartDate'])));
                         $startdate = Carbon::now();
                         $startdate->year = date('Y', strtotime($inputs['enrollmentStartDate']));
                         $startdate->month = date('m', strtotime($inputs['enrollmentStartDate']));
                         $startdate->day = date('d', strtotime($inputs['enrollmentStartDate']));
                         $session_no = $inputs['multipayAmount' . $i] / $eachClassCost;
                         $firstSessionNumber = $session_no;
                         $batch_schedule_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
                         $session_no = $session_no - 1;
                         //$startdate=$startdate->addWeeks(($inputs['bipayAmount'.$i]/500));
                         //$startdate=$startdate->addWeeks(($inputs['multipayAmount'.$i]/500));
                         $paymentDuesInput['end_order_date'] = $batch_schedule_data[$session_no]['schedule_date'];
                         if ($firstSessionNumber >= 6) {
                             $firstBrushupCallReminderDate = $batch_schedule_data[$session_no - 2]['schedule_date'];
                             $firstInitialPaymentCallReminderDate = $batch_schedule_data[$session_no - 1]['schedule_date'];
                             $firstFinalPaymentCallReminderDate = $batch_schedule_data[$session_no]['schedule_date'];
                         } else {
                             $firstFinalPaymentCallReminderDate = $batch_schedule_data[$session_no]['schedule_date'];
                         }
                         $nextstartdate = $batch_schedule_data[$session_no]['schedule_date'];
                         //$paymentDuesInput['end_order_date']=$startdate->toDateString();
                         $paymentDuesInput['discount_amount'] = $inputs['discountPercentage'] / 100 * $inputs['multipayAmount' . $i];
                         if ($inputs['CustomerType'] == 'OldCustomer') {
                             $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate']));
                             $order['created_at'] = $paymentDuesInput['created_at'];
                         }
                     } else {
                         $paymentDuesInput['start_order_date'] = $nextstartdate;
                         $batch_schedule_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
                         $session_no = $session_no + $inputs['multipayAmount' . $i] / $eachClassCost;
                         $firstBrushupCallReminderDate = $batch_schedule_data[$session_no - 2]['schedule_date'];
                         $firstInitialPaymentCallReminderDate = $batch_schedule_data[$session_no - 1]['schedule_date'];
                         $firstFinalPaymentCallReminderDate = $batch_schedule_data[$session_no]['schedule_date'];
                         //$startdate=$startdate->addWeeks(($inputs['multipayAmount'.$i]/500));
                         $paymentDuesInput['end_order_date'] = $batch_schedule_data[$session_no]['schedule_date'];
                         if ($i == 4) {
                             //$paymentDuesInput['end_order_date']=date('Y-m-d', strtotime($inputs['enrollmentEndDate']));
                             $paymentDuesInput['end_order_date'] = $endorderdate;
                         }
                         $nextstartdate = $batch_schedule_data[$session_no]['schedule_date'];
                         //$paymentDuesInput['end_order_date']=   $startdate->toDateString();
                         $paymentDuesInput['payment_status'] = "pending";
                         $paymentDuesInput['discount_amount'] = $inputs['discountPercentage'] / 100 * $inputs['multipayAmount' . $i];
                         if ($i == 2 && $inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate2'] != '') {
                             $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate2']));
                             $paymentDuesInput['payment_status'] = "paid";
                         }
                         if ($i == 3 && $inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate3'] != '') {
                             $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate3']));
                             $paymentDuesInput['payment_status'] = "paid";
                         }
                         if ($i == 4 && $inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate4'] != '') {
                             $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate4']));
                             $paymentDuesInput['payment_status'] = "paid";
                         }
                     }
                     $paymentDuesInput['payment_due_amount'] = $inputs['multipayAmount' . $i];
                     $paymentDuesInput['discount_applied'] = $inputs['discountPercentage'];
                     $paymentDuesInput['selected_order_sessions'] = $inputs['multipayAmount' . $i] / $eachClassCost;
                     $paymentDuesInput['student_class_id'] = $enrollment->id;
                     $paymentDuesResult = PaymentDues::createPaymentDues($paymentDuesInput);
                     if ($i >= 1 && $i <= 3) {
                         if ($i == 1) {
                             if ($firstSessionNumber >= 6) {
                                 $firstremind = Carbon::now();
                                 $firstremind = $firstremind->createFromFormat('Y-m-d', $firstBrushupCallReminderDate);
                                 //return Response::json(array('status'=>$firstBrushupCallReminderDate,'today'=>$today));
                                 if ($firstremind->gt($today)) {
                                     //create 3 payment followup
                                     $payment_followup_data1 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data2 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data3 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     //creating logs/followup for first payment
                                     $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                     $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                     $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data1->id;
                                     $customer_log_data['paymentfollowup_id2'] = $payment_followup_data2->id;
                                     $customer_log_data['paymentfollowup_id3'] = $payment_followup_data3->id;
                                     $customer_log_data['followup_type'] = 'PAYMENT';
                                     $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                     $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                     $customer_log_data['firstReminderDate'] = $firstBrushupCallReminderDate;
                                     $customer_log_data['secondReminderDate'] = $firstInitialPaymentCallReminderDate;
                                     $customer_log_data['thirdReminderDate'] = $firstFinalPaymentCallReminderDate;
                                     Comments::addPaymentComments($customer_log_data);
                                 } else {
                                     $final_remind = Carbon::now();
                                     $final_remind = $final_remind->createFromFormat('Y-m-d', $firstFinalPaymentCallReminderDate);
                                     if ($final_remind->gt($today)) {
                                         $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                         $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                         $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                         $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                         $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                         //$customer_log_data['paymentfollowup_id2']=$payment_followup_data2->id;
                                         //$customer_log_data['paymentfollowup_id3']=$payment_followup_data3->id;
                                         $customer_log_data['followup_type'] = 'PAYMENT';
                                         $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                         $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                         //  $customer_log_data['firstReminderDate']=$firstBrushupCallReminderDate;
                                         //  $customer_log_data['secondReminderDate']=$firstInitialPaymentCallReminderDate;
                                         $customer_log_data['reminderDate'] = $firstFinalPaymentCallReminderDate;
                                         Comments::addOnebiPaymentComment($customer_log_data);
                                     }
                                 }
                             } else {
                                 $final_r = Carbon::now();
                                 $final_r = $final_r->createFromFormat('Y-m-d', $firstFinalPaymentCallReminderDate);
                                 if ($final_r->gt($today)) {
                                     //create 1 followup
                                     $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                     $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                     $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                     //$customer_log_data['paymentfollowup_id2']=$payment_followup_data2->id;
                                     //$customer_log_data['paymentfollowup_id3']=$payment_followup_data3->id;
                                     $customer_log_data['followup_type'] = 'PAYMENT';
                                     $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                     $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                     //  $customer_log_data['firstReminderDate']=$firstBrushupCallReminderDate;
                                     //  $customer_log_data['secondReminderDate']=$firstInitialPaymentCallReminderDate;
                                     $customer_log_data['reminderDate'] = $firstFinalPaymentCallReminderDate;
                                     Comments::addOnebiPaymentComment($customer_log_data);
                                 }
                             }
                         } else {
                             //when i>=3
                             $firstre = Carbon::now();
                             $firstre = $firstre->createFromFormat('Y-m-d', $firstBrushupCallReminderDate);
                             if ($firstre->gt($today)) {
                                 $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                 $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                 $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                 $customer_log_data['followup_type'] = 'PAYMENT';
                                 $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                 $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                 $customer_log_data['firstReminderDate'] = $firstBrushupCallReminderDate;
                                 $customer_log_data['secondReminderDate'] = $firstInitialPaymentCallReminderDate;
                                 $customer_log_data['thirdReminderDate'] = $firstFinalPaymentCallReminderDate;
                                 if ($i == 2 && isset($inputs['multipayAmount3'])) {
                                     $payment_followup_data1 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data2 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data3 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data1->id;
                                     $customer_log_data['paymentfollowup_id2'] = $payment_followup_data2->id;
                                     $customer_log_data['paymentfollowup_id3'] = $payment_followup_data3->id;
                                     Comments::addPaymentComments($customer_log_data);
                                 } else {
                                     if ($i == 3 && isset($inputs['multipayAmount4'])) {
                                         $payment_followup_data1 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                         $payment_followup_data2 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                         $payment_followup_data3 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                         $customer_log_data['paymentfollowup_id'] = $payment_followup_data1->id;
                                         $customer_log_data['paymentfollowup_id2'] = $payment_followup_data2->id;
                                         $customer_log_data['paymentfollowup_id3'] = $payment_followup_data3->id;
                                         Comments::addPaymentComments($customer_log_data);
                                     } else {
                                         if ($i != 3 && $i != 2) {
                                             $payment_followup_data1 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                             $payment_followup_data2 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                             $payment_followup_data3 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                             $customer_log_data['paymentfollowup_id'] = $payment_followup_data1->id;
                                             $customer_log_data['paymentfollowup_id2'] = $payment_followup_data2->id;
                                             $customer_log_data['paymentfollowup_id3'] = $payment_followup_data3->id;
                                             Comments::addPaymentComments($customer_log_data);
                                         }
                                     }
                                 }
                             } else {
                                 $final = Carbon::now();
                                 $final = $final->createFromFormat('Y-m-d', $firstFinalPaymentCallReminderDate);
                                 if ($final->gt($today)) {
                                     $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                     $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                     $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                     //$customer_log_data['paymentfollowup_id2']=$payment_followup_data2->id;
                                     //$customer_log_data['paymentfollowup_id3']=$payment_followup_data3->id;
                                     $customer_log_data['followup_type'] = 'PAYMENT';
                                     $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                     $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                     //  $customer_log_data['firstReminderDate']=$firstBrushupCallReminderDate;
                                     //  $customer_log_data['secondReminderDate']=$firstInitialPaymentCallReminderDate;
                                     $customer_log_data['reminderDate'] = $firstFinalPaymentCallReminderDate;
                                     Comments::addOnebiPaymentComment($customer_log_data);
                                 }
                             }
                         }
                     }
                     $paydue_id[] = $paymentDuesResult->id;
                     if ($i == 1) {
                         $order['payment_dues_id'] = $paymentDuesResult->id;
                         $order['order_status'] = "completed";
                     }
                 }
             }
             /*
             			$weeksDues = array("6", "9", "14", "19", "24", "29", "34");
             			$date = date('Y/m/d', strtotime($reminderStartDate));
             			foreach($weeksDues as $weeksDue){
             					
             				$weeks = $weeksDue;
             				// Create and modify the date.
             				$dateTime = DateTime::createFromFormat('Y/m/d', $date);
             				$dateTime->add(DateInterval::createFromDateString($weeks . ' weeks'));
             				//$dateTime->modify('next monday');
             					
             				// Output the new date.
             				//echo $dateTime->format('Y-m-d')."<br>";
             			
             			
             				$paymentReminderInput['customerId']    = $inputs['customerId'];
             				$paymentReminderInput['studentId']     = $inputs['studentId'];
                                             $paymentReminderInput['seasonId']     = $inputs['SeasonsCbx'];
             				$paymentReminderInput['classId']       = $inputs['eligibleClassesCbx'];
             				$paymentReminderInput['batchId']       = $inputs['batchCbx'];
             				$paymentReminderInput['reminder_date'] = $dateTime->format('Y-m-d');
             			
             				PaymentReminders::addReminderDates($paymentReminderInput);
             			
             			
             					
             			}*/
         } else {
             if ($inputs['paymentOptionsRadio'] == 'bipay') {
                 $followupFirstDate;
                 $followupSecondDate;
                 $followupThirdDate;
                 $paymentDuesInput['payment_type'] = $inputs['paymentOptionsRadio'];
                 for ($i = 1; $i <= 2; $i++) {
                     if (isset($inputs['bipayAmount' . $i])) {
                         if ($i == 1) {
                             //for bipay enrollment classes
                             $paymentDuesInput['payment_status'] = "paid";
                             $order['amount'] = $inputs['bipayAmount' . $i];
                             //$paymentDuesInput['start_order_date']=$studentClasses['enrollment_start_date'];
                             //$startdate=  Carbon::create(date('Y,m,d,0', strtotime($inputs['enrollmentStartDate'])));
                             $startdate = Carbon::now();
                             $enddate = Carbon::now();
                             $startdate->year = date('Y', strtotime($inputs['enrollmentStartDate']));
                             $startdate->month = date('m', strtotime($inputs['enrollmentStartDate']));
                             $startdate->day = date('d', strtotime($inputs['enrollmentStartDate']));
                             $enddate->year = date('Y', strtotime($inputs['enrollmentEndDate']));
                             $enddate->month = date('m', strtotime($inputs['enrollmentEndDate']));
                             $enddate->day = date('d', strtotime($inputs['enrollmentEndDate']));
                             //return Response::json(array('status'=>'success'));
                             $session_no = $inputs['bipayAmount' . $i] / $eachClassCost;
                             $firstsessionno = $session_no;
                             $batch_schedule_data = BatchSchedule::where('batch_id', '=', $inputs['batchCbx'])->where('schedule_date', '>=', $startdate->toDateString())->where('schedule_date', '<=', $enddate->toDateString())->where('holiday', '!=', 1)->orderBy('id')->get();
                             $session_no = $session_no - 1;
                             //$startdate=$startdate->addWeeks(($inputs['bipayAmount'.$i]/500));
                             $paymentDuesInput['start_order_date'] = $batch_schedule_data[0]['schedule_date'];
                             $paymentDuesInput['end_order_date'] = $batch_schedule_data[$session_no]['schedule_date'];
                             $endorderdateforbipay = $batch_schedule_data[count($batch_schedule_data) - 1]['schedule_date'];
                             if ($firstsessionno >= 10) {
                                 $followupFirstDate = $batch_schedule_data[$session_no - 2]['schedule_date'];
                                 $followupSecondDate = $batch_schedule_data[$session_no - 1]['schedule_date'];
                                 $followupThirdDate = $batch_schedule_data[$session_no]['schedule_date'];
                             } else {
                                 $followupdate = $batch_schedule_data[$session_no]['schedule_date'];
                             }
                             $paymentDuesInput['discount_amount'] = $inputs['discountPercentage'] / 100 * $inputs['bipayAmount' . $i];
                             if ($inputs['CustomerType'] == 'OldCustomer') {
                                 $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate']));
                                 $order['created_at'] = $paymentDuesInput['created_at'];
                             }
                         } else {
                             $paymentDuesInput['start_order_date'] = $batch_schedule_data[$session_no]['schedule_date'];
                             //$startdate=$startdate->addWeeks(($inputs['bipayAmount'.$i]/500));
                             //$paymentDuesInput['end_order_date']=   date('Y-m-d', strtotime($inputs['enrollmentEndDate']));
                             $paymentDuesInput['end_order_date'] = $endorderdateforbipay;
                             $paymentDuesInput['payment_status'] = "pending";
                             $paymentDuesInput['discount_amount'] = $inputs['discountPercentage'] / 100 * $inputs['bipayAmount' . $i];
                             if ($inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate2'] != '') {
                                 $paymentDuesInput['created_at'] = date('Y-m-d H:i:s', strtotime($inputs['OrderDate2']));
                                 // $order['created_at']=$paymentDuesInput['created_at'];
                             }
                         }
                         $paymentDuesInput['selected_order_sessions'] = $inputs['bipayAmount' . $i] / $eachClassCost;
                         $paymentDuesInput['payment_due_amount'] = $inputs['bipayAmount' . $i];
                         $paymentDuesInput['discount_applied'] = $inputs['discountPercentage'];
                         $paymentDuesInput['student_class_id'] = $enrollment->id;
                         $paymentDuesResult = PaymentDues::createPaymentDues($paymentDuesInput);
                         if ($i == 1) {
                             $order['payment_dues_id'] = $paymentDuesResult->id;
                             $order['order_status'] = "completed";
                             $paydueid1 = $paymentDuesResult->id;
                         }
                         if ($i == 2) {
                             if ($firstsessionno >= 10) {
                                 // creating customer followup
                                 $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                 $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                 $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                 $paydue_id2 = $paymentDuesResult->id;
                                 $paymentDuesResult->id = $paydueid1;
                                 $customer_log_data['followup_type'] = 'PAYMENT';
                                 $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                 $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                 $customer_log_data['firstReminderDate'] = $followupFirstDate;
                                 $customer_log_data['secondReminderDate'] = $followupSecondDate;
                                 $customer_log_data['thirdReminderDate'] = $followupThirdDate;
                                 $brushupremind = Carbon::now();
                                 $finalremind = Carbon::now();
                                 $brushupremind = $brushupremind->createFromFormat('Y-m-d', $followupFirstDate);
                                 $finalremind = $finalremind->createFromFormat('Y-m-d', $followupThirdDate);
                                 $today = Carbon::now();
                                 if ($brushupremind->gt($today)) {
                                     $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data2 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $payment_followup_data3 = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                     $customer_log_data['paymentfollowup_id2'] = $payment_followup_data2->id;
                                     $customer_log_data['paymentfollowup_id3'] = $payment_followup_data3->id;
                                     Comments::addPaymentComments($customer_log_data);
                                 } else {
                                     if ($finalremind->gt($today)) {
                                         //create single followup
                                         $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                         $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                         $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                         $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                         $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                         $customer_log_data['followup_type'] = 'PAYMENT';
                                         $customer_log_data['reminderDate'] = $followupThirdDate;
                                         $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                         $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                         Comments::addOnebiPaymentComment($customer_log_data);
                                     }
                                 }
                             } else {
                                 $today = Carbon::now();
                                 $reminddate = Carbon::now();
                                 $reminddate = $reminddate->createFromFormat('Y-m-d', $followupdate);
                                 if ($reminddate->gt($today)) {
                                     $paymentDuesResult->id = $paydueid1;
                                     $payment_followup_data = PaymentFollowups::createPaymentFollowup($paymentDuesResult);
                                     $customer_log_data['customer_id'] = $paymentDuesResult->customer_id;
                                     $customer_log_data['student_id'] = $paymentDuesResult->student_id;
                                     $customer_log_data['franchisee_id'] = Session::get('franchiseId');
                                     $customer_log_data['paymentfollowup_id'] = $payment_followup_data->id;
                                     $customer_log_data['followup_type'] = 'PAYMENT';
                                     $customer_log_data['reminderDate'] = $followupdate;
                                     $customer_log_data['followup_status'] = 'REMINDER_CALL';
                                     $customer_log_data['comment_type'] = 'VERYINTERESTED';
                                     Comments::addOnebiPaymentComment($customer_log_data);
                                 }
                             }
                         }
                     }
                 }
                 // to create payment reminders
                 /*
                 			$weeksDues = array("6", "12", "19", "24", "34");
                 			$date = date('Y/m/d', strtotime($reminderStartDate));
                 			foreach($weeksDues as $weeksDue){
                 					
                 				$weeks = $weeksDue;
                 				// Create and modify the date.
                 				$dateTime = DateTime::createFromFormat('Y/m/d', $date);
                 				$dateTime->add(DateInterval::createFromDateString($weeks . ' weeks'));
                 				//$dateTime->modify('next monday');
                 					
                 				// Output the new date.
                 				//echo $dateTime->format('Y-m-d')."<br>";
                 					
                 					
                 				$paymentReminderInput['customerId']    = $inputs['customerId'];
                 				$paymentReminderInput['studentId']     = $inputs['studentId'];
                        $paymentDuesInput['seasonId']             =$inputs['SeasonsCbx'];
                 				$paymentReminderInput['classId']       = $inputs['eligibleClassesCbx'];
                 				$paymentReminderInput['batchId']       = $inputs['batchCbx'];
                        $paymentReminderInput['seasonId']       =$inputs['SeasonsCbx'];
                        $paymentDuesInput['seasonId']          = $inputs['SeasonsCbx'];
                 				$paymentReminderInput['reminder_date'] = $dateTime->format('Y-m-d');
                 					
                 				PaymentReminders::addReminderDates($paymentReminderInput);
                 					
                 					
                 					
                 			}
                 * 
                 */
                 //payment reminders for followups.
                 if ($i == 1) {
                     $order['payment_mode'] = $inputs['paymentTypeRadio'];
                     $order['card_last_digit'] = $inputs['card4digits'];
                     $order['cardType'] = $inputs['card_type'];
                     $order['bank_name'] = $inputs['cardBankName'];
                     $order['receipt_number'] = $inputs['cardRecieptNumber'];
                 }
             }
         }
     }
     $orderCreated = Orders::createOrder($order);
     if ($inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate2'] != '' && $inputs['paymentOptionsRadio'] == 'bipay') {
         $payment_due = new PaymentDues();
         $payment_due = PaymentDues::find($paydue_id2);
         $payment_due->payment_status = 'paid';
         $payment_due->save();
         $order['created_at'] = $paymentDuesInput['created_at'];
         $order['amount'] = $paymentDuesResult->payment_due_amount - $paymentDuesResult->discount_amount;
         $order['payment_dues_id'] = $paydue_id2;
         if ($inputs['paymentTypeRadioOldCustomer2'] == 'cash') {
             $order['payment_mode'] = 'cash';
             $orderCreated = Orders::createOrder($order);
         } elseif ($inputs['paymentTypeRadioOldCustomer2'] == 'cheque') {
             $order['payment_mode'] = 'cheque';
             $order['bank_name'] = $inputs['bankName2'];
             $order['cheque_number'] = $inputs['chequeNumber2'];
             $orderCreated = Orders::createOrder($order);
         } elseif ($inputs['paymentTypeRadioOldCustomer2'] == 'card') {
             $order['payment_mode'] = 'card';
             $order['card_type'] = $inputs['cardType2'];
             $order['card_last_digit'] = $inputs['card4digits2'];
             $order['bank_name'] = $inputs['cardBankName2'];
             $order['receipt_number'] = $inputs['cardRecieptNumber2'];
             $orderCreated = Orders::createOrder($order);
         }
     }
     if ($inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate2'] != '' && $inputs['paymentOptionsRadio'] == 'multipay') {
         $paydue_data = PaymentDues::where('id', '=', $paydue_id[1])->get();
         $paydue_data = $paydue_data[0];
         $neworder = new Orders();
         $neworder['customer_id'] = $paydue_data['customer_id'];
         $neworder['student_id'] = $paydue_data['student_id'];
         $neworder['season_id'] = $paydue_data['season_id'];
         $neworder['student_classes_id'] = $paydue_data['student_class_id'];
         $neworder['payment_for'] = "enrollment";
         $neworder['payment_dues_id'] = $paydue_id[1];
         $neworder['amount'] = $paydue_data['payment_due_amount'];
         $neworder['order_status'] = "completed";
         if ($inputs['paymentTypeRadioOldCustomer2'] == 'cash') {
             $neworder['payment_mode'] = 'cash';
         } else {
             if ($inputs['paymentTypeRadioOldCustomer2'] == 'cheque') {
                 $neworder['payment_mode'] = 'cheque';
                 $neworder['bank_name'] = $inputs['bankName2'];
                 $neworder['cheque_number'] = $inputs['chequeNumber2'];
             } else {
                 if ($inputs['paymentTypeRadioOldCustomer2'] == 'card') {
                     $neworder['payment_mode'] = 'card';
                     $neworder['card_type'] = $inputs['cardType2'];
                     $neworder['card_last_digit'] = $inputs['card4digits2'];
                     $neworder['bank_name'] = $inputs['cardBankName2'];
                     $neworder['receipt_number'] = $inputs['cardRecieptNumber2'];
                 }
             }
         }
         $neworder['created_at'] = $paydue_data['created_at'];
         $neworder->created_by = Session::get('userId');
         $neworder->save();
     }
     if ($inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate3'] != '' && $inputs['paymentOptionsRadio'] == 'multipay') {
         $paydue_data = PaymentDues::where('id', '=', $paydue_id[2])->get();
         $paydue_data = $paydue_data[0];
         $neworder = new Orders();
         $neworder['customer_id'] = $paydue_data['customer_id'];
         $neworder['student_id'] = $paydue_data['student_id'];
         $neworder['season_id'] = $paydue_data['season_id'];
         $neworder['student_classes_id'] = $paydue_data['student_class_id'];
         $neworder['payment_for'] = "enrollment";
         $neworder['payment_dues_id'] = $paydue_id[2];
         $neworder['amount'] = $paydue_data['payment_due_amount'];
         $neworder['order_status'] = "completed";
         if ($inputs['paymentTypeRadioOldCustomer3'] == 'cash') {
             $neworder['payment_mode'] = 'cash';
         } else {
             if ($inputs['paymentTypeRadioOldCustomer3'] == 'cheque') {
                 $neworder['payment_mode'] = 'cheque';
                 $neworder['bank_name'] = $inputs['bankName3'];
                 $neworder['cheque_number'] = $inputs['chequeNumber3'];
             } else {
                 if ($inputs['paymentTypeRadioOldCustomer3'] == 'card') {
                     $neworder['payment_mode'] = 'card';
                     $neworder['card_type'] = $inputs['cardType3'];
                     $neworder['card_last_digit'] = $inputs['card4digits3'];
                     $neworder['bank_name'] = $inputs['cardBankName3'];
                     $neworder['receipt_number'] = $inputs['cardRecieptNumber3'];
                 }
             }
         }
         $neworder['created_at'] = $paydue_data['created_at'];
         $neworder->created_by = Session::get('userId');
         $neworder->save();
     }
     if ($inputs['CustomerType'] == 'OldCustomer' && $inputs['OrderDate4'] != '' && $inputs['paymentOptionsRadio'] == 'multipay') {
         $paydue_data = PaymentDues::where('id', '=', $paydue_id[3])->get();
         $paydue_data = $paydue_data[0];
         $neworder = new Orders();
         $neworder['customer_id'] = $paydue_data['customer_id'];
         $neworder['student_id'] = $paydue_data['student_id'];
         $neworder['season_id'] = $paydue_data['season_id'];
         $neworder['student_classes_id'] = $paydue_data['student_class_id'];
         $neworder['payment_for'] = "enrollment";
         $neworder['payment_dues_id'] = $paydue_id[3];
         $neworder['amount'] = $paydue_data['payment_due_amount'];
         $neworder['order_status'] = "completed";
         if ($inputs['paymentTypeRadioOldCustomer4'] == 'cash') {
             $neworder['payment_mode'] = 'cash';
         } else {
             if ($inputs['paymentTypeRadioOldCustomer4'] == 'cheque') {
                 $neworder['payment_mode'] = 'cheque';
                 $neworder['bank_name'] = $inputs['bankName4'];
                 $neworder['cheque_number'] = $inputs['chequeNumber4'];
             } else {
                 if ($inputs['paymentTypeRadioOldCustomer4'] == 'card') {
                     $neworder['payment_mode'] = 'card';
                     $neworder['card_type'] = $inputs['cardType4'];
                     $neworder['card_last_digit'] = $inputs['card4digits4'];
                     $neworder['bank_name'] = $inputs['cardBankName4'];
                     $neworder['receipt_number'] = $inputs['cardRecieptNumber4'];
                 }
             }
         }
         $neworder['created_at'] = $paydue_data['created_at'];
         $neworder->created_by = Session::get('userId');
         $neworder->save();
     }
     if (isset($inputs['membershipType'])) {
         $membershipInputs['customer_id'] = $inputs['customerId'];
         $membershipInputs['membership_type_id'] = $inputs['membershipType'];
         CustomerMembership::addMembership($membershipInputs);
     }
     $student = Students::with('Customers', 'StudentClasses')->where('id', '=', $enrollment->student_id)->get();
     $class = Classes::where('id', '=', $enrollment->class_id)->get();
     $CustomerObject = Customers::find($inputs['customerId']);
     $CustomerObject->stage = "ENROLLED";
     $CustomerObject->save();
     $customer = array();
     $customer['customerName'] = $student['0']->Customers->customer_name;
     $customer['customerEmail'] = $student['0']->Customers->customer_email;
     $customer['kidName'] = $student['0']->student_name;
     $customer['className'] = $class['0']->class_name;
     $commentsInput['customerId'] = $inputs['customerId'];
     $commentsInput['commentText'] = Config::get('constants.ENROLLED') . ' for ' . $class['0']->class_name;
     $commentsInput['commentType'] = 'FOLLOW_UP';
     $commentsInput['reminderDate'] = null;
     Comments::addComments($commentsInput);
     if (isset($inputs['emailOption']) && $inputs['emailOption'] == 'yes') {
         $orders = Orders::with('Customers', 'Students', 'StudentClasses')->where('id', '=', $orderCreated->id)->get();
         $orders = $orders['0'];
         $paymentDues = PaymentDues::where('id', '=', $orders->payment_dues_id)->get();
         $batchDetails = Batches::where('id', '=', $orders->StudentClasses->batch_id)->get();
         $class = Classes::where('id', '=', $orders->StudentClasses->class_id)->where('franchisee_id', '=', Session::get('franchiseId'))->first();
         $customerMembership = CustomerMembership::getCustomerMembership($orders->customer_id);
         $class = Classes::where('id', '=', $inputs['eligibleClassesCbx'])->where('franchisee_id', '=', Session::get('franchiseId'))->first();
         $batch = Batches::where('id', '=', $inputs['batchCbx'])->first();
         $orderDetailsTomail['orders'] = $orders;
         $orderDetailsTomail['customers'] = $customer;
         $orderDetailsTomail['paymentDues'] = $paymentDues;
         $orderDetailsTomail['customerMembership'] = $customerMembership;
         $orderDetailsTomail['class'] = $class;
         $orderDetailsTomail['batchDetails'] = $batchDetails;
         $orderDetailsTomail['studentbatch']['start_date'] = date('Y-m-d', strtotime($inputs['enrollmentStartDate']));
         $orderDetailsTomail['studentbatch']['end_date'] = date('Y-m-d', strtotime($inputs['enrollmentEndDate']));
         $orderDetailsTomail['customers']['customerMembership'] = CustomerMembership::getCustomerMembership($orders->customer_id);
         Mail::send('emails.account.enrollment', $orderDetailsTomail, function ($msg) use($orderDetailsTomail) {
             $msg->from(Config::get('constants.EMAIL_ID'), Config::get('constants.EMAIL_NAME'));
             $msg->to($orderDetailsTomail['customers']['customerEmail'], $orderDetailsTomail['customers']['customerName'])->subject('The Little Gym - Kids Enrollment Successful');
         });
     }
     if (isset($inputs['invoicePrintOption']) && $inputs['invoicePrintOption'] == 'yes') {
         $printUrl = url() . '/orders/print/' . Crypt::encrypt($orderCreated->id);
     } else {
         $printUrl = "";
     }
     //header('Access-Control-Allow-Origin: *');
     if ($enrollment) {
         return Response::json(array("status" => "success", "printUrl" => $printUrl));
     } else {
         return Response::json(array("status" => "failed"));
     }
 }
Esempio n. 2
0
 static function getPaymentFollowupByCustomerId($customerId)
 {
     return PaymentFollowups::where('customer_id', '=', $customerId)->orderBy('id', 'DESC')->get();
 }
Esempio n. 3
0
 public function details($id)
 {
     if (Auth::check()) {
         $currentPage = "CUSTOMERS_LIST";
         $mainMenu = "CUSTOMERS_MAIN";
         $inputs = Input::all();
         if (isset($inputs['customerName'])) {
             if (Customers::addCustomers($inputs)) {
                 Session::flash('msg', "Customer added successfully.");
             } else {
                 Session::flash('warning', "Customer, Course Could not be added at the moment.");
             }
         }
         $customer = Customers::getCustomersById($id);
         $students = Students::getStudentByCustomer($id);
         $comments = Comments::getCommentByCustomerId($id);
         $provinces = Provinces::getProvinces("IN");
         $kidsSelect = Students::getStudentsForSelectBox($id);
         $membershipTypes = MembershipTypes::getMembershipTypesForSelectBox();
         $birthdays = BirthdayParties::getBirthdaysByCustomer($id);
         //return $customer;
         //Membership
         if (isset($inputs['membershipTypesMembersDiv'])) {
             /* echo '<pre>';
             			print_r($inputs);
             			echo '</pre>';
             			exit(); */
             if ($inputs['membershipTypesMembersDiv'] != "") {
                 $membershipInput['customer_id'] = $id;
                 $membershipInput['membership_type_id'] = $inputs['membershipTypesMembersDiv'];
                 CustomerMembership::addMembership($membershipInput);
                 $order['customer_id'] = $id;
                 $order['payment_for'] = "membership";
                 $order['payment_dues_id'] = '';
                 $order['payment_mode'] = $inputs['paymentTypeRadio'];
                 $order['card_last_digit'] = $inputs['card4digits'];
                 $order['card_type'] = $inputs['cardType'];
                 $order['bank_name'] = $inputs['bankName'];
                 $order['cheque_number'] = $inputs['chequeNumber'];
                 $order['amount'] = $inputs['membershipPrice'];
                 $order['order_status'] = "completed";
                 Orders::createOrder($order);
             }
         }
         //$customerMembership = "";
         /* echo '<pre>';
         			print_r($customer);
         			echo '</pre>';
         			exit(); */
         $presentDate = Carbon::now();
         $membershipStartDate = Carbon::now();
         $membershipEndDate = Carbon::now();
         $customerMembershipId = '';
         if (isset($customer->CustomerMembership['0'])) {
             $select = count($customer->CustomerMembership) - 1;
             $membershipStartDate = $membershipStartDate->createFromFormat('Y-m-d', $customer->CustomerMembership[$select]->membership_start_date);
             $membershipEndDate = $membershipEndDate->createFromFormat('Y-m-d', $customer->CustomerMembership[$select]->membership_end_date);
             if ($membershipStartDate->lte($presentDate) && $membershipEndDate->gte($presentDate)) {
                 $customerMembershipId = $customer->CustomerMembership[$select]->membership_type_id;
             }
         }
         if (isset($customerMembershipId)) {
             $customerMembership = MembershipTypes::getMembershipTypeByID($customerMembershipId);
         }
         $membershipTypesAll = MembershipTypes::getMembershipTypes();
         $birthdaypaiddata = Orders::getBirthdayfulldata($id);
         for ($i = 0; $i < count($birthdaypaiddata); $i++) {
             $studentData = Students::getStudentById($birthdaypaiddata[$i]['student_id']);
             $birthdaypaiddata[$i]['student_name'] = $studentData[0]['student_name'];
             $birthdaypaiddata[$i]['student_date_of_birth'] = $studentData[0]['student_date_of_birth'];
             $birthdayData = BirthdayParties::getBirthdaybyId($birthdaypaiddata[$i]['birthday_id']);
             $birthdaypaiddata[$i]['birthday_party_date'] = $birthdayData[0]['birthday_party_date'];
             $birthdaypaiddata[$i]['tax_amount'] = $birthdaypaiddata[0]['tax_amount'];
             $user_data = User::getUsersByUserId($birthdaypaiddata[$i]['created_by']);
             $birthdaypaiddata[$i]['name'] = $user_data[0]['first_name'] . $user_data[0]['last_name'];
             $birthdaypaiddata[$i]['encrypted_id'] = Crypt::encrypt($birthdaypaiddata[$i]['id']);
         }
         $birthdayDuedata = PaymentDues::getPaymentpendingfulldata($id);
         for ($i = 0; $i < count($birthdayDuedata); $i++) {
             $studentData = Students::getStudentById($birthdayDuedata[$i]['student_id']);
             $birthdayDuedata[$i]['student_name'] = $studentData[0]['student_name'];
             $user_data = User::getUsersByUserId($birthdayDuedata[$i]['created_by']);
             $birthdayDuedata[$i]['name'] = $user_data[0]['first_name'] . $user_data[0]['last_name'];
             $birthdayData = BirthdayParties::getBirthdaybyId($birthdayDuedata[$i]['birthday_id']);
             $birthdayDuedata[$i]['birthday_party_date'] = $birthdayData[0]['birthday_party_date'];
         }
         //followup_data
         $iv_data = IntroVisit::where('customer_id', '=', $id)->get();
         for ($i = 0; $i < count($iv_data); $i++) {
             $comments_data = Comments::where('introvisit_id', '=', $iv_data[$i]['id'])->orderBy('id', 'DESC')->first();
             $iv_data[$i]['comment_data'] = $comments_data;
             $student = Students::find($iv_data[$i]['student_id']);
             $iv_data[$i]['student_name'] = $student['student_name'];
             $iv_data[$i]['iv_date'] = date("Y-m-d", strtotime($iv_data[$i]['iv_date']));
         }
         $birthday_data = BirthdayParties::where('customer_id', '=', $id)->get();
         for ($i = 0; $i < count($birthday_data); $i++) {
             $birthday_comments = Comments::where('birthday_id', '=', $birthday_data[$i]['id'])->orderBy('id', 'DESC')->first();
             $birthday_data[$i]['comment_data'] = $birthday_comments;
             $student_data = Students::find($birthday_data[$i]['student_id']);
             $birthday_data[$i]['student_name'] = $student_data['student_name'];
             $birthday_data[$i]['birthday_party_date'] = date("Y-m-d", strtotime($birthday_data[$i]['birthday_party_date']));
         }
         //for complaints
         $complaint_data = Complaint::getComplaintByCustomerId($id);
         //Comments::where('customer_id','=',$id)->get();
         for ($i = 0; $i < count($complaint_data); $i++) {
             $complaint_data[$i]['comments'] = Comments::where('complaint_id', '=', $complaint_data[$i]['id'])->orderBy('id', 'DESC')->first();
             $student_data = Students::find($complaint_data[$i]['student_id']);
             $complaint_data[$i]['student_name'] = $student_data['student_name'];
         }
         //for retention
         $retention_data = Retention::getRetentionByCustomerId($id);
         for ($i = 0; $i < count($retention_data); $i++) {
             $retention_data[$i]['comments'] = Comments::where('retention_id', '=', $retention_data[$i]['id'])->orderBy('id', 'DESC')->first();
             $student_data = Students::find($retention_data[$i]['student_id']);
             $retention_data[$i]['student_name'] = $student_data['student_name'];
         }
         //for inquiry
         $inuiry_data = Inquiry::getInquiryByCustomerId($id);
         for ($i = 0; $i < count($inuiry_data); $i++) {
             $inuiry_data[$i]['comments'] = Comments::where('inquiry_id', '=', $inuiry_data[$i]['id'])->orderBy('id', 'DESC')->first();
         }
         //for enrollment payment followup/brush up calls
         $enrollmentFollowupData = PaymentFollowups::getPaymentFollowupByCustomerId($id);
         for ($i = 0; $i < count($enrollmentFollowupData); $i++) {
             $enrollmentFollowupData[$i]['comments'] = Comments::where('paymentfollowup_id', '=', $enrollmentFollowupData[$i]['id'])->orderBy('id', 'DESC')->first();
             $student_data = Students::find($enrollmentFollowupData[$i]['student_id']);
             $enrollmentFollowupData[$i]['student_name'] = $student_data['student_name'];
             $paymentDueData = PaymentDues::find($enrollmentFollowupData[$i]['payment_due_id']);
             $enrollmentFollowupData[$i]['payment_date'] = $paymentDueData['end_order_date'];
         }
         // for customer kids enrollment.
         $customer_student_data = Students::where('customer_id', '=', $id)->where('franchisee_id', '=', Session::get('franchiseId'))->select('id', 'student_name')->get();
         for ($i = 0; $i < count($customer_student_data); $i++) {
             $student_classes = StudentClasses::getEnrolledStudentBatch($customer_student_data[$i]['id']);
             //return $student_classes[0]['batch_id'];
             $customer_student_data[$i]['student_classes_data'] = $student_classes;
         }
         //return $customer_student_data;
         for ($i = 0; $i < count($customer_student_data); $i++) {
             for ($j = 0; $j < count($customer_student_data[$i]['student_classes_data']); $j++) {
                 $find = Batches::find($customer_student_data[$i]['student_classes_data'][$j]['batch_id']);
                 $customer_student_data[$i]['student_classes_data'][$j]['batch_name'] = $find->batch_name;
             }
         }
         //return the customer membership follolwup
         $customer_membership_data = MembershipFollowup::where('customer_id', '=', $id)->get();
         for ($i = 0; $i < count($customer_membership_data); $i++) {
             $membershipid[$i] = $customer_membership_data[$i]['id'];
         }
         if (isset($membershipid)) {
             for ($i = 0; $i < count($membershipid); $i++) {
                 $membership_followup_data[$i] = Comments::where('membership_followup_id', '=', $membershipid[$i])->orderBy('id', 'DESC')->first();
                 $memfollowup_data = MembershipFollowup::find($membershipid[$i]);
                 $Customer_membership_data = CustomerMembership::find($memfollowup_data->membership_id);
                 $membership_followup_data[$i]['membership_end_date'] = $Customer_membership_data->membership_end_date;
             }
         }
         $viewData = array('birthdaypaiddata', 'birthdayDuedata', 'customer', 'students', 'currentPage', 'mainMenu', 'comments', 'provinces', 'customerMembership', 'kidsSelect', 'membershipTypes', 'membershipTypesAll', 'birthdays', 'iv_data', 'birthday_data', 'complaint_data', 'retention_data', 'inuiry_data', 'enrollmentFollowupData', 'customer_student_data', 'membership_followup_data');
         return View::make('pages.customers.details', compact($viewData));
     } else {
         return Redirect::to("/");
     }
 }