コード例 #1
0
 public function __construct($adGroupId = null, $keywordEstimates = null, $EstimateType = null)
 {
     parent::__construct();
     $this->adGroupId = $adGroupId;
     $this->keywordEstimates = $keywordEstimates;
     $this->EstimateType = $EstimateType;
 }
コード例 #2
0
 public function __construct($campaignId = null, $adGroupEstimates = null, $EstimateType = null)
 {
     parent::__construct();
     $this->campaignId = $campaignId;
     $this->adGroupEstimates = $adGroupEstimates;
     $this->EstimateType = $EstimateType;
 }
コード例 #3
0
 public function __construct($criterionId = null, $min = null, $max = null, $EstimateType = null)
 {
     parent::__construct();
     $this->criterionId = $criterionId;
     $this->min = $min;
     $this->max = $max;
     $this->EstimateType = $EstimateType;
 }
コード例 #4
0
 /**
  * @see CommonForm
  */
 public function configure()
 {
     unset($this['number'], $this['due_date'], $this['closed'], $this['created_at'], $this['updated_at']);
     $this->widgetSchema['issue_date'] = new sfWidgetFormI18nJQueryDate($this->JQueryDateOptions);
     $this->widgetSchema['draft'] = new sfWidgetFormInputHidden();
     $this->widgetSchema['status'] = new sfWidgetFormChoice(array('choices' => Estimate::getStatusArray()));
     $this->widgetSchema->setNameFormat('invoice[%s]');
     $this->setDefaults(array('draft' => 0));
     parent::configure();
 }
コード例 #5
0
ファイル: model_tests.php プロジェクト: radicaldesigns/gtd
 function testDestroyAssociatedRecords()
 {
     $c = new Company();
     $c->set(array('name' => 'destroy_test'));
     $c->save();
     $p = new Project();
     $p->set(array('company_id' => $c->id, 'name' => 'destroy_project_test'));
     $p->save();
     $e = new Estimate();
     $e->set(array('project_id' => $p->id, 'name' => 'destroy_estimate_test'));
     $e->save();
     $h = new Hour();
     $h->set(array('estimate_id' => $e->id, 'name' => 'destroy_hour_test'));
     $h->save();
     $ch = new Charge();
     $ch->set(array('company_id' => $c->id, 'name' => 'destroy_charge_test'));
     $ch->save();
     $con = new SupportContract();
     $con->set(array('company_id' => $c->id, 'name' => 'destroy_contract_test'));
     $con->save();
     $sup_hr = new Hour();
     $sup_hr->set(array('support_contract_id' => $con->id, 'description' => 'destroy_support_hour_test'));
     $sup_hr->save();
     $pay = new Payment();
     $pay->set(array('company_id' => $c->id, 'name' => 'destroy_payment_test'));
     $pay->save();
     $deleted_items = array('company' => $c->id, 'project' => $p->id, 'estimate' => $e->id, 'hour' => $h->id, 'support_hour' => $sup_hr->id, 'charge' => $ch->id, 'support_contract' => $con->id, 'payment' => $pay->id);
     $c->destroyAssociatedRecords();
     $c->delete();
     $dbcon = AMP::getDb();
     foreach ($deleted_items as $table => $id) {
         if ($table == 'support_hour') {
             $table = 'hour';
         }
         $sql = 'SELECT * FROM ' . $table . ' WHERE id = ' . $id;
         if ($records = $dbcon->Execute($sql)) {
             $this->assertEqual($records->RecordCount(), 0, "{$table} not deleted correctly: %s");
         } else {
             trigger_error($dbcon->ErrorMsg());
         }
     }
 }
コード例 #6
0
 public function cancelBatchEstimate()
 {
     if (Auth::check()) {
         $inputs = Input::all();
         $sendBatchId = Estimate::cancelBatchEstimate($inputs);
         if ($sendBatchId) {
             return Response::json(array('status' => "success", $sendBatchId));
         } else {
             return Response::json(array('status' => "failure"));
         }
     }
 }
コード例 #7
0
 /**
  * Process the callback data from the payment provider
  */
 public function callback($request)
 {
     if (Director::isDev()) {
         $secret_key = StripePayment::config()->test_secret_key;
         $publish_key = StripePayment::config()->test_publish_key;
     } else {
         $secret_key = StripePayment::config()->live_secret_key;
         $publish_key = StripePayment::config()->live_publish_key;
     }
     Stripe::setApiKey($secret_key);
     $site = SiteConfig::current_site_config();
     $order = $this->getOrderData();
     $cart = ShoppingCart::get();
     $this->extend('onBeforeCallback');
     $error_url = Controller::join_links(Director::absoluteBaseURL(), Payment_Controller::config()->url_segment, 'complete', 'error');
     $data = $this->request->postVars();
     $status = "error";
     // Get the credit card details submitted by the form
     $token = $data['stripeToken'];
     $order_no = Session::get("StripePayment.OrderNumber");
     $order = Estimate::get()->filter("OrderNumber", $order_no)->first();
     if ($order_no && $order) {
         // Create the charge on Stripe's servers - this will charge
         // the user's card
         try {
             $success_url = Controller::join_links(Director::absoluteBaseURL(), Payment_Controller::config()->url_segment, 'complete', $order_no);
             $charge = StripeCharge::create(array("amount" => round($order->Total->Value * 100), "currency" => strtolower(Checkout::config()->currency_code), "source" => $token, "metadata" => array("Order" => $order_no)));
             $order->convertToOrder();
             $order->write();
             $order = Order::get()->byID($order->ID);
             $order->Status = "paid";
             $order->PaymentProvider = "Stripe";
             $order->PaymentNo = $charge->id;
             $order->write();
             return $this->redirect($success_url);
         } catch (Exception $e) {
             $order->Status = "failed";
             $order->write();
             return $this->redirect($error_url);
         }
     } else {
         return $this->redirect($error_url);
     }
 }
コード例 #8
0
 public function __construct($campaignId = NULL, $adGroupEstimates = NULL, $EstimateType = NULL)
 {
     if (get_parent_class('CampaignEstimate')) {
         parent::__construct();
     }
     $this->campaignId = $campaignId;
     $this->adGroupEstimates = $adGroupEstimates;
     $this->EstimateType = $EstimateType;
 }
コード例 #9
0
 /**
  * Prende le stime dei figli, le somma e ne genera una singola
  */
 function getEstimateFromChilds()
 {
     // Prendo tutti i figli della milestone corrente
     $tasks = Tasks::findByMilestone($this->object, STATE_VISIBLE);
     // Scorro tutti i figli e ne salvo le stime
     $estimates = array();
     $estimates_sum = 0;
     if (is_foreachable($tasks)) {
         foreach ($tasks as $task) {
             $estimate = Estimates::findLatestByParent($task);
             // Se non è stata impostata la stima ritorna nullo, quindi bisogna controllare che effettivamente l'oggetto esista
             if ($estimate && $estimate instanceof Estimate) {
                 $estimates[] = $estimate;
                 $estimates_sum += $estimate->getValue();
             }
         }
     }
     // FIXME: seconda parte dell'if inutile
     if ($this->object instanceof Milestone || $this->object instanceof RemediaMilestone) {
         $estimate = new Estimate();
         $estimate->setParent($this->object);
         $estimate->setValue($estimates_sum);
         $estimate->setJobType(JobTypes::findById(1));
         // TODO: ho preso un job a caso, chissene
         $estimate->setComment('Stima generata automaticamente');
         $estimate->setCreatedBy($this->object->assignees()->getAssignee());
         // Assegno come creatore un tizio tra gli assegnatari
         $estimate->setCreatedOn(DateTimeValue::now());
     }
     return $estimate;
 }
コード例 #10
0
ファイル: billing_tests.php プロジェクト: radicaldesigns/gtd
 function testCalculateBalanceWithDateRange()
 {
     #Company
     $cp = new Company();
     $cp->set(array('name' => 'Test Company', 'status' => 'active'));
     $cp->save();
     $pb = new CompanyPreviousBalance();
     $pb->set(array('company_id' => $cp->id, 'amount' => 600.25, 'date' => '2010-01-30'));
     $pb->save();
     $this->assertWithinMargin($pb->getAmount(), '600.25', '.01');
     ######### Support
     $sc = new SupportContract();
     $sc->set(array('company_id' => $cp->id, 'domain_name' => 'Test', 'start_date' => '2010-01-01', 'end_date' => '2010-04-30', 'hourly_rate' => '120', 'support_hours' => '.5', 'monthly_rate' => '50'));
     $sc->save();
     # add support hours
     # before previous balance
     $h = new Hour();
     $h->set(array('description' => 'Test', 'support_contract_id' => $sc->id, 'date' => '2010-01-20', 'hours' => '2.5'));
     $h->save();
     # in range
     $h = new Hour();
     $h->set(array('description' => 'Test', 'support_contract_id' => $sc->id, 'date' => '2010-02-20', 'hours' => '2.5'));
     $h->save();
     # in range
     $h = new Hour();
     $h->set(array('description' => 'Test', 'support_contract_id' => $sc->id, 'date' => '2010-03-20', 'hours' => '2.5'));
     $h->save();
     # out of range
     $h = new Hour();
     $h->set(array('description' => 'Test', 'support_contract_id' => $sc->id, 'date' => '2010-05-20', 'hours' => '2'));
     $h->save();
     ### Support Totals = in range is 2 months x 50 = 100, 4 @ 120 = 480 = 580
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $total = $cp->calculateSupportTotal($date_range);
     $this->assertEqual($total, 580);
     ###### Project
     $pj = new Project();
     $pj->set(array('name' => 'Test Project', 'company_id' => $cp->id, 'hourly_rate' => '120'));
     $pj->save();
     # Add an Estimate item #1
     $es1 = new Estimate();
     $es1->set(array('project_id' => $pj->id, 'name' => 'Test Estimate 1', 'high_hours' => '10', 'low_hours' => '5'));
     $es1->save();
     # Add an Estimate item #2
     $es2 = new Estimate();
     $es2->set(array('project_id' => $pj->id, 'name' => 'Test Estimate 2', 'high_hours' => '10', 'low_hours' => '5'));
     $es2->save();
     # Add some before previous balance hours for #1 - 5 hours at 120 = 600
     $hr = new Hour();
     $hr->set(array('estimate_id' => $es1->id, 'description' => 'Test Hours for Estimate 1', 'date' => '2010-01-15', 'hours' => '5'));
     $hr->save();
     # Add some in range hours for #1 - 5 hours at 120 = 600
     $hr = new Hour();
     $hr->set(array('estimate_id' => $es1->id, 'description' => 'Test Hours for Estimate 1', 'date' => '2010-02-15', 'hours' => '5'));
     $hr->save();
     # Add some in range hours for #2 - 5 hours at 120 = 600
     $hr = new Hour();
     $hr->set(array('estimate_id' => $es2->id, 'description' => 'Test Hours for Estimate 2', 'date' => '2010-02-15', 'hours' => '5'));
     $hr->save();
     # Add some out of range hours for #2 - 5 hours at 120 = 600
     $hr = new Hour();
     $hr->set(array('estimate_id' => $es2->id, 'description' => 'Test Hours for Estimate 2', 'date' => '2010-05-15', 'hours' => '5'));
     $hr->save();
     ## Project Totals = In range 1200, out of range 1800
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $total = $cp->calculateProjectsTotal($date_range);
     $this->assertEqual($total, 1200);
     #Charge
     # before previous balance
     $cr = new Charge();
     $cr->set(array('name' => 'Test', 'company_id' => $cp->id, 'date' => '2010-01-10', 'amount' => '20.50'));
     $cr->save();
     # in date range
     $cr = new Charge();
     $cr->set(array('name' => 'Test', 'company_id' => $cp->id, 'date' => '2010-03-14', 'amount' => '50.25'));
     $cr->save();
     # in date range
     $cr = new Charge();
     $cr->set(array('name' => 'Test', 'company_id' => $cp->id, 'date' => '2010-03-20', 'amount' => '50'));
     $cr->save();
     # out of date range
     $cr = new Charge();
     $cr->set(array('name' => 'Test', 'company_id' => $cp->id, 'date' => '2010-05-15', 'amount' => '50'));
     $cr->save();
     # Total Charges = in range 100.25, out of range 150.25
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $charge_total = $cp->calculateChargesTotal($date_range);
     $this->assertEqual($charge_total, 100.25);
     ## Test Total Costs
     # Charges 100.25 + project 1200 + support 580
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $total = $cp->calculateCosts($date_range);
     $this->assertEqual($total, 1880.25);
     ## Payments
     # add payment before previous balance date
     $py = new Payment();
     $py->set(array('company_id' => $cp->id, 'date' => '2010-01-22', 'amount' => '20.50'));
     $py->save();
     # add payment in range
     $py = new Payment();
     $py->set(array('company_id' => $cp->id, 'date' => '2010-02-10', 'amount' => '20.00'));
     $py->save();
     # add payment in range
     $py = new Payment();
     $py->set(array('company_id' => $cp->id, 'date' => '2010-03-01', 'amount' => '120.00'));
     $py->save();
     # add payment out of range
     $py = new Payment();
     $py->set(array('company_id' => $cp->id, 'date' => '2010-04-01', 'amount' => '20.25'));
     $py->save();
     # Total Payments are 20 + 120 = 140 in range and after previous balance
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $payment_total = $cp->calculatePaymentsTotal($date_range);
     $this->assertEqual($payment_total, 140);
     #### fails because the previous balance isn't getting included FIX ME!!
     # Total Balance Costs 1880.25 - Payments 140 + Previous balance 600.25 = 2340.5
     $date_range = array('start_date' => '2010-01-01', 'end_date' => '2010-03-31');
     $balance = $cp->calculateBalance($date_range);
     $this->assertWithinMargin($balance, 2340.5, 0.001);
     ## clean up
     $cp->destroyAssociatedRecords();
     $cp->delete();
 }
コード例 #11
0
ファイル: Project.php プロジェクト: radicaldesigns/gtd
 function getEstimates()
 {
     if (empty($this->estimates)) {
         $finder = new Estimate();
         $this->estimates = $finder->find(array('project_id' => $this->id, 'sort' => 'id ASC'));
     }
     return $this->estimates;
 }
コード例 #12
0
ファイル: lms-billing.php プロジェクト: prezeskk/lms
} catch (Exception $ex) {
    trigger_error($ex->getMessage(), E_USER_WARNING);
    // can't working without database
    die("Fatal error: cannot connect to database!" . PHP_EOL);
}
/* ****************************************
   Good place for config value analysis
   ****************************************/
// Include required files (including sequence is important)
require_once LIB_DIR . DIRECTORY_SEPARATOR . 'common.php';
require_once LIB_DIR . DIRECTORY_SEPARATOR . 'language.php';
include_once LIB_DIR . DIRECTORY_SEPARATOR . 'definitions.php';
setlocale(LC_NUMERIC, 'en_US');
$options['action'] = isset($options['action']) ? $options['action'] : '';
define('VOIP_CACHE_DIR', isset($options['cache-dir']) ? $options['cache-dir'] : SYS_DIR . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'voip' . DIRECTORY_SEPARATOR . 'cache');
$estimate = new Estimate(SqlProvider::getInstance());
$db_buffor = new VoipDbBuffor(SqlProvider::getInstance());
switch (strtolower($options['action'])) {
    case 'estimate':
        if (!isset($options['caller'])) {
            die("Caller phone number isn't set.");
        }
        if (!isset($options['callee'])) {
            die("Callee phone number isn't set.");
        }
        try {
            $call_time = $estimate->getMaxCallTime($options['caller'], $options['callee']);
            // if debug mode is set print value else change to miliseconds before print
            echo array_key_exists('debug', $options) ? $call_time . PHP_EOL : $call_time * 1000;
        } catch (Exception $e) {
            echo $e->getMessage();
コード例 #13
0
ファイル: Hour.php プロジェクト: radicaldesigns/gtd
 function makeCriteriaProject($values)
 {
     $estimates = array();
     foreach ($values as $value) {
         $project_estimates = Estimate::getMany(array('project' => $value));
         if (!empty($project_estimates)) {
             $estimates = array_merge($estimates, $project_estimates);
         }
     }
     return $this->makeCriteriaEstimate(array_map(function ($item) {
         return $item->id;
     }, $estimates));
 }
コード例 #14
0
ファイル: Estimate.php プロジェクト: Headrun-php/TLG
 static function cancelBatchEstimate($id)
 {
     return Estimate::where('id', '=', $id)->update('is_cancelled', '1');
 }
コード例 #15
0
ファイル: actions.class.php プロジェクト: solutema/siwapp-sf1
 protected function sendEmail(Estimate $estimate)
 {
     $i18n = $this->getContext()->getI18N();
     $result = false;
     try {
         $message = new InvoiceMessage($estimate);
         if ($message->getReadyState()) {
             $result = $this->getMailer()->send($message);
             if ($result) {
                 $estimate->setSentByEmail(true);
                 $estimate->save();
             }
         }
     } catch (Exception $e) {
         $message = sprintf($i18n->__('There is a problem with estimate %s'), $estimate) . ': ' . $e->getMessage();
         $this->getUser()->error($message);
     }
     return $result;
 }
コード例 #16
0
 /**
  * @covers Moneybird\Estimate::delete
  */
 public function testDelete()
 {
     $this->object->delete($this->service);
     $this->setExpectedException('Moneybird\\NotFoundException');
     $this->service->getById(self::$estimateId);
 }
コード例 #17
0
 public function enrollKid2()
 {
     $inputs = Input::all();
     //return Response::json(array('status'=>'success','inputs'=>$inputs));
     $getEstimateDetails = Estimate::where('estimate_master_no', '=', $inputs['estimate_master_no'])->where('is_cancelled', '!=', '1')->where('franchise_id', '=', Session::get('franchiseId'))->get();
     //** checking if it is a one batch **//
     //return Response::json(array('status'=>'success','inputs'=>count($getEstimateDetails)));
     //return Response::json(array('status'=>'success','inputs'=>$inputs));
     if (count($getEstimateDetails) == 1) {
         if ($inputs['paymentOptionsRadio'] == 'singlepay') {
             $studentClasses['classId'] = $getEstimateDetails[0]['class_id'];
             $studentClasses['batchId'] = $getEstimateDetails[0]['batch_id'];
             $studentClasses['studentId'] = $getEstimateDetails[0]['student_id'];
             $studentClasses['selected_sessions'] = $getEstimateDetails[0]['no_of_opted_classes'];
             $studentClasses['seasonId'] = $getEstimateDetails[0]['season_id'];
             $singleBatchstartDate = Carbon::createFromFormat('Y-m-d', $getEstimateDetails[0]['enroll_start_date']);
             $studentClasses['enrollment_start_date'] = $getEstimateDetails[0]['enroll_start_date'];
             $studentClasses['enrollment_end_date'] = $getEstimateDetails[0]['enroll_end_date'];
             $singleBatchendDate = Carbon::createFromFormat('Y-m-d', $getEstimateDetails[0]['enroll_end_date']);
             $insertDataToStudentClassTable = StudentClasses::addStudentClass($studentClasses);
         } elseif ($inputs['paymentOptionsRadio'] == "bipay") {
             //return Response::json(array('status'=>'success','inputs'=>$inputs));
             $studentClasses['classId'] = $getEstimateDetails[0]['class_id'];
             $studentClasses['batchId'] = $getEstimateDetails[0]['batch_id'];
             $studentClasses['studentId'] = $getEstimateDetails[0]['student_id'];
             $studentClasses['seasonId'] = $getEstimateDetails[0]['season_id'];
             //return Response:: json(array('status'=>'success'));
             $first_selected_session = 0;
             $second_selected_session = 0;
             if ($getEstimateDetails[0]['no_of_opted_classes'] % 2 == 0) {
                 //return Response::json(array('status'=>'success','inputs'=>$inputs));
                 $first_selected_session = $getEstimateDetails[0]['no_of_opted_classes'] / 2;
                 $second_selected_session = $getEstimateDetails[0]['no_of_opted_classes'] / 2;
             } else {
                 // return Response::json(array('status'=>'success','inputs'=>$getEstimateDetails[0]['no_of_opted_classes']/2));
                 $first_selected_session = (int) ($getEstimateDetails[0]['no_of_opted_classes'] / 2);
                 $second_selected_session = (int) ($getEstimateDetails[0]['no_of_opted_classes'] / 2) + 1;
             }
             $batch_data = BatchSchedule::where('batch_id', '=', $getEstimateDetails[0]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[0]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[0]['no_of_opted_classes'])->get();
             for ($i = 1; $i <= 2; $i++) {
                 if ($i == 1) {
                     $studentClasses['selected_sessions'] = $first_selected_session;
                     $singleBatchstartDate = Carbon::createFromFormat('Y-m-d', $batch_data[0]['schedule_date']);
                     $studentClasses['enrollment_start_date'] = $batch_data[0]['schedule_date'];
                     $studentClasses['enrollment_end_date'] = $batch_data[$first_selected_session - 1]['schedule_date'];
                     $singleBatchendDate = Carbon::createFromFormat('Y-m-d', $getEstimateDetails[$first_selected_session - 1]['enroll_end_date']);
                     $insertDataToStudentClassTable = StudentClasses::addStudentClass($studentClasses);
                 } else {
                     if ($i == 2) {
                         $studentClasses['selected_sessions'] = $second_selected_session;
                         $studentClasses['enrollment_start_date'] = $batch_data[$first_selected_session]['schedule_date'];
                         $studentClasses['enrollment_end_date'] = $batch_data[count($batch_data) - 1]['schedule_date'];
                         $studentClasses['status'] = 'pending';
                         $insertDataToStudentClassTable = StudentClasses::addStudentClass($studentClasses);
                     }
                 }
             }
         } elseif ($inputs['paymentOptionsRadio'] == "multipay") {
         }
     } elseif (count($getEstimateDetails) == 2) {
         if ($inputs['paymentOptionsRadio'] == "Singlepay") {
         } elseif ($inputs['paymentOptionsRadio'] == "bipay") {
             // return Response::json(array('status'=>'success','inputs'=>$inputs));
             $batch_data[0] = BatchSchedule::where('batch_id', '=', $getEstimateDetails[0]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[0]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[0]['no_of_opted_classes'])->get();
             $batch_data[1] = BatchSchedule::where('batch_id', '=', $getEstimateDetails[1]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[1]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[1]['no_of_opted_classes'])->get();
             if (((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession']) % 2 == 0) {
                 $firstpayment_no = ((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession']) / 2;
                 $secondpayment_no = ((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession']) / 2;
             } else {
                 $firstpayment_no = (int) (((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession']) / 2);
                 $secondpayment_no = (int) (((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession']) / 2) + 1;
             }
             if ((int) $getEstimateDetails[0]['no_of_opted_classes'] == $firstpayment_no) {
                 for ($i = 0; $i < 2; $i++) {
                     $studentClasses[$i]['classId'] = $getEstimateDetails[$i]['class_id'];
                     $studentClasses[$i]['batchId'] = $getEstimateDetails[$i]['batch_id'];
                     $studentClasses[$i]['studentId'] = $getEstimateDetails[$i]['student_id'];
                     $studentClasses[$i]['seasonId'] = $getEstimateDetails[$i]['season_id'];
                     $studentClasses[$i]['selected_sessions'] = $getEstimateDetails[$i]['no_of_opted_classes'];
                     if ($i == 0) {
                         $firstBatchStartDate = Carbon::createFromFormat('Y-m-d', $getEstimateDetails[$i]['enroll_start_date']);
                         $firstBatchEndDate = Carbon::createFromFormat('Y-m-d', $getEstimateDetails[$i]['enroll_end_date']);
                     }
                     $studentClasses[$i]['enrollment_start_date'] = $getEstimateDetails[$i]['enroll_start_date'];
                     $studentClasses[$i]['enrollment_end_date'] = $getEstimateDetails[$i]['enroll_end_date'];
                     if ($i == 0) {
                         $student_class1 = StudentClasses::addStudentClass($studentClasses[$i]);
                     } else {
                         $studentClasses[$i]['status'] = 'pending';
                         $student_class2 = StudentClasses::addStudentClass($studentClasses[$i]);
                     }
                 }
             } else {
                 if ((int) $getEstimateDetails[0]['no_of_opted_classes'] < $firstpayment_no) {
                     //return Response::json(array('status'=>'success','inputs'=>$inputs));
                     for ($i = 0; $i < 3; $i++) {
                         if ($i == 0) {
                             $studentClasses[$i]['classId'] = $getEstimateDetails[$i]['class_id'];
                             $studentClasses[$i]['batchId'] = $getEstimateDetails[$i]['batch_id'];
                             $studentClasses[$i]['studentId'] = $getEstimateDetails[$i]['student_id'];
                             $studentClasses[$i]['seasonId'] = $getEstimateDetails[$i]['season_id'];
                             $studentClasses[$i]['selected_sessions'] = $getEstimateDetails[$i]['no_of_opted_classes'];
                             $studentClasses[$i]['enrollment_start_date'] = $getEstimateDetails[$i]['enroll_start_date'];
                             $studentClasses[$i]['enrollment_end_date'] = $getEstimateDetails[$i]['enroll_end_date'];
                             $student_class1 = StudentClasses::addStudentClass($studentClasses[$i]);
                         } else {
                             $studentClasses[$i]['classId'] = $getEstimateDetails[1]['class_id'];
                             $studentClasses[$i]['batchId'] = $getEstimateDetails[1]['batch_id'];
                             $studentClasses[$i]['studentId'] = $getEstimateDetails[1]['student_id'];
                             $studentClasses[$i]['seasonId'] = $getEstimateDetails[1]['season_id'];
                             if ($i == 1) {
                                 $second_session = $firstpayment_no - $studentClasses[0]['selected_sessions'];
                                 $studentClasses[$i]['selected_sessions'] = $second_session;
                                 $studentClasses[$i]['enrollment_start_date'] = $batch_data[1][0]['schedule_date'];
                                 $studentClasses[$i]['enrollment_end_date'] = $batch_data[1][$second_session - 1]['schedule_date'];
                                 $student_class2 = StudentClasses::addStudentClass($studentClasses[$i]);
                                 // return Response::json(array('status'=>'success','inputs'=>$inputs));
                             }
                             if ($i == 2) {
                                 $studentClasses[$i]['selected_sessions'] = $secondpayment_no;
                                 $studentClasses[$i]['enrollment_start_date'] = $batch_data[1][$second_session]['schedule_date'];
                                 $studentClasses[$i]['enrollment_end_date'] = $batch_data[1][count($batch_data[1]) - 1]['schedule_date'];
                                 $studentClasses[$i]['status'] = 'pending';
                                 $student_class3 = StudentClasses::addStudentClass($studentClasses[$i]);
                             }
                         }
                     }
                 } else {
                     if ((int) $getEstimateDetails[0]['no_of_opted_classes'] > $firstpayment_no) {
                         for ($i = 1; $i <= 3; $i++) {
                             if ($i == 1) {
                                 $studentClasses[1]['classId'] = $getEstimateDetails[0]['class_id'];
                                 $studentClasses[1]['batchId'] = $getEstimateDetails[0]['batch_id'];
                                 $studentClasses[1]['studentId'] = $getEstimateDetails[0]['student_id'];
                                 $studentClasses[1]['seasonId'] = $getEstimateDetails[0]['season_id'];
                                 $studentClasses[1]['selected_sessions'] = $firstpayment_no;
                                 $studentClasses[1]['enrollment_start_date'] = $getEstimateDetails[0]['enroll_start_date'];
                                 $studentClasses[1]['enrollment_end_date'] = $batch_data[0][$firstpayment_no - 1]['schedule_date'];
                                 $student_class1 = StudentClasses::addStudentClass($studentClasses[1]);
                             } else {
                                 if ($i == 2) {
                                     $studentClasses[1]['selected_sessions'] = count($batch_data[0]) - $firstpayment_no;
                                     $studentClasses[1]['enrollment_start_date'] = $batch_data[0][$firstpayment_no]['schedule_date'];
                                     $studentClasses[1]['enrollment_end_date'] = $batch_data[0][count($batch_data[0]) - 1]['schedule_date'];
                                     $studentClasses[1]['status'] = 'pending';
                                     $student_class2 = StudentClasses::addStudentClass($studentClasses[1]);
                                 } else {
                                     if ($i == 3) {
                                         $studentClasses[2]['classId'] = $getEstimateDetails[1]['class_id'];
                                         $studentClasses[2]['batchId'] = $getEstimateDetails[1]['batch_id'];
                                         $studentClasses[2]['studentId'] = $getEstimateDetails[1]['student_id'];
                                         $studentClasses[2]['seasonId'] = $getEstimateDetails[1]['season_id'];
                                         $studentClasses[2]['selected_sessions'] = count($batch_data[1]);
                                         $studentClasses[2]['enrollment_start_date'] = $getEstimateDetails[1]['enroll_start_date'];
                                         $studentClasses[2]['enrollment_end_date'] = $batch_data[1][count($batch_data[1]) - 1]['schedule_date'];
                                         $studentClasses[2]['status'] = 'pending';
                                         $student_class3 = StudentClasses::addStudentClass($studentClasses[2]);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             return Response::json(array('status' => 'success', 'inputs' => $inputs));
         } elseif ($inputs['paymentOptionsRadio'] == "multipay") {
             //multipay
         }
     } elseif (count($getEstimateDetails) == 3) {
         if ($inputs['paymentOptionsRadio'] == "singlepay") {
             //$insertDataToStudentClassTable = StudentClasses::addStudentClass($inputs);
         } elseif ($inputs['paymentOptionsRadio'] == "bipay") {
             $batch_data[0] = BatchSchedule::where('batch_id', '=', $getEstimateDetails[0]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[0]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[0]['no_of_opted_classes'])->get();
             $batch_data[1] = BatchSchedule::where('batch_id', '=', $getEstimateDetails[1]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[1]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[1]['no_of_opted_classes'])->get();
             $batch_data[2] = BatchSchedule::where('batch_id', '=', $getEstimateDetails[2]['batch_id'])->where('schedule_date', '>=', $getEstimateDetails[2]['enroll_start_date'])->where('holiday', '!=', 1)->orderBy('id')->take($getEstimateDetails[2]['no_of_opted_classes'])->get();
             if (((int) $inputs['bipaybatch1availablesession'] + (int) $inputs['bipaybatch2availablesession'] + $inputs['bipaybatch3availablesession']) % 2 == 0) {
                 $firstpayment_no = (int) ($inputs['bipaybatch1availablesession'] + $inputs['bipaybatch2availablesession'] + $inputs['bipaybatch3availablesession']) / 2;
                 $secondpayment_no = (int) ($inputs['bipaybatch1availablesession'] + $inputs['bipaybatch2availablesession'] + $inputs['bipaybatch3availablesession']) / 2;
             } else {
                 $firstpayment_no = (int) (($inputs['bipaybatch1availablesession'] + $inputs['bipaybatch2availablesession'] + $inputs['bipaybatch3availablesession']) / 2);
                 $secondpayment_no = (int) (($inputs['bipaybatch1availablesession'] + $inputs['bipaybatch2availablesession'] + $inputs['bipaybatch3availablesession']) / 2) + 1;
             }
             if ((int) $getEstimateDetails[0]['no_of_opted_classes'] + (int) $getEstimateDetails[1]['no_of_opted_classes'] < $firstpayment_no) {
                 for ($i = 0; $i <= 3; $i++) {
                     if ($i != 3) {
                         $studentClasses[$i]['classId'] = $getEstimateDetails[$i]['class_id'];
                         $studentClasses[$i]['batchId'] = $getEstimateDetails[$i]['batch_id'];
                         $studentClasses[$i]['studentId'] = $getEstimateDetails[$i]['student_id'];
                         $studentClasses[$i]['seasonId'] = $getEstimateDetails[$i]['season_id'];
                         $studentClasses[$i]['enrollment_start_date'] = $batch_data[$i][0]['schedule_date'];
                         if ($i != 2) {
                             $studentClasses[$i]['selected_sessions'] = $getEstimateDetails[$i]['no_of_opted_classes'];
                             $studentClasses[$i]['enrollment_end_date'] = $batch_data[$i][count($batch_data[$i]) - 1]['schedule_date'];
                             if ($i == 0) {
                                 $student_class1 = StudentClasses::addStudentClass($studentClasses[$i]);
                             } else {
                                 if ($i == 1) {
                                     $student_class2 = StudentClasses::addStudentClass($studentClasses[$i]);
                                 }
                             }
                         } else {
                             if ($i == 2) {
                                 $studentClasses[$i]['selected_sessions'] = $firstpayment_no - ($studentClasses[0]['selected_sessions'] + $studentClasses[1]['selected_sessions']);
                                 $studentClasses[$i]['enrollment_end_date'] = $batch_data[$i][$firstpayment_no - ($studentClasses[0]['selected_sessions'] + $studentClasses[1]['selected_sessions']) - 1]['schedule_date'];
                                 $student_class3 = StudentClasses::addStudentClass($studentClasses[$i]);
                             }
                         }
                     } else {
                         if ($i == 3) {
                             $studentClasses[2]['selected_sessions'] = $secondpayment_no;
                             $studentClasses[2]['enrollment_start_date'] = $batch_data[2][$firstpayment_no - ($studentClasses[0]['selected_sessions'] + $studentClasses[1]['selected_sessions'])]['schedule_date'];
                             $studentClasses[2]['enrollment_end_date'] = $batch_data[2][count($batch_data[2]) - 1]['schedule_date'];
                             $studentClasses[2]['status'] = 'pending';
                             $student_class4 = StudentClasses::addStudentClass($studentClasses[2]);
                             return Response::json(array('status' => 'success', 'inputs' => $inputs, 'first' => $firstpayment_no, 'second' => $secondpayment_no));
                         }
                     }
                 }
             } else {
                 if ((int) $getEstimateDetails[0]['no_of_opted_classes'] + (int) $getEstimateDetails[1]['no_of_opted_classes'] == $firstpayment_no) {
                     for ($i = 0; $i < 3; $i++) {
                         if ($i != 2) {
                             $studentClasses[$i]['classId'] = $getEstimateDetails[$i]['class_id'];
                             $studentClasses[$i]['batchId'] = $getEstimateDetails[$i]['batch_id'];
                             $studentClasses[$i]['studentId'] = $getEstimateDetails[$i]['student_id'];
                             $studentClasses[$i]['seasonId'] = $getEstimateDetails[$i]['season_id'];
                             $studentClasses[$i]['enrollment_start_date'] = $batch_data[$i][0]['schedule_date'];
                             $studentClasses[$i]['enrollment_end_date'] = $batch_data[count($batch_data[$i]) - 1]['schedule_date'];
                             $studentClasses[$i]['selected_sessions'] = count($batch_data[$i]);
                             if ($i == 1) {
                                 $student_class1 = StudentClasses::addStudentClass($studentClasses[$i]);
                             } else {
                                 if ($i == 2) {
                                     $student_class2 = StudentClasses::addStudentClass($studentClasses[$i]);
                                 }
                             }
                         } else {
                             $studentClasses[$i]['classId'] = $getEstimateDetails[$i]['class_id'];
                             $studentClasses[$i]['batchId'] = $getEstimateDetails[$i]['batch_id'];
                             $studentClasses[$i]['studentId'] = $getEstimateDetails[$i]['student_id'];
                             $studentClasses[$i]['seasonId'] = $getEstimateDetails[$i]['season_id'];
                             $studentClasses[$i]['enrollment_start_date'] = $batch_data[$i][0]['schedule_date'];
                             $studentClasses[$i]['enrollment_end_date'] = $batch_data[count($batch_data[$i]) - 1]['schedule_date'];
                             $studentClasses[$i]['selected_sessions'] = count($batch_data[$i]);
                         }
                     }
                 }
             }
         } elseif ($inputs['paymentOptionsRadio'] == "multipay") {
         }
     }
 }