HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /var/www/html/pmw24/pmw_live_testing/app/application/controllers/customer/Invoice.php
<?php

defined('BASEPATH') OR exit('No direct script access allowed');



class Invoice extends MY_Controller {

	public function __construct() {

		parent::__construct();

		$this->redirect_customer();

		//$this->load->model('mcommon');

		$this->load->model('mapi');

		$this->admin=$this->session->userdata('admin');

		$this->load->model('customer/minvoice');

		$this->load->model('customer/minvoicepayment');

	}

		

	public function index() {	

		$this->_load_list_view();		

	}

	

	private function _load_list_view() {

		$customer_list=$this->minvoice->get_customer_list();

		//print_r($customer_list); die;

    	$data['customer_list'] = $customer_list;



    	$car_list=$this->minvoice->get_car_list();

		//print_r($customer_list); die;

    	$data['car_list'] = $car_list;

		$data['customer'] = $this->customer;

		$data['content'] = 'customer/invoice/list';

		$this->load->view('customer/layouts/index', $data);

	}

	

	public function all_content_list(){

		$params=array();

		if($this->input->post()){

			if($this->input->post('customer_name')!='')

			{

			$params['customer_name']=$this->input->post('customer_name');

			}

			if($this->input->post('car_id')!='')

			{

			$params['car_id']=$this->input->post('car_id');

			}

			if($this->input->post('payment_mode')!='')

			{

			$params['payment_mode']=$this->input->post('payment_mode');

			}

		}

		$list = $this->minvoice->get_datatables($params);

		$data = array();

        $no = $_POST['start'];

		$i=1;

		if($no>1)

	    {

	      $i=$i*$no+1;

	    }

		foreach ($list as $person) {



			$invoice_pay_log_list=$this->minvoice->get_total_payment_by_invoice_no($person->invoice_no);



			$latest_payment_details = $this->minvoice->get_latest_payment_details($person->invoice_no);

			



			//print_r($invoice_pay_log_list);die;

			if(!empty($invoice_pay_log_list)){

				if($person->total_amount > $invoice_pay_log_list['sum_amount']){

				  $due_amount=number_format(((float)$person->total_amount - (float)$invoice_pay_log_list['sum_amount']), 2, '.', '');

			    }else{

			      $due_amount=0;	

			    }

			}



			$mechanic_condition = array("admin_id"=>$person->mechanic_id);

			$mechanic = $this->mcommon->getRow('admins',$mechanic_condition);

			

			// $new_service = array();

			// $services = $this->minvoice->getServices($person->job_id);

			// foreach($services as $key=>$service)

			// {

			// 	$new_service[$key] = $service['service_name'];

			// }

			

			// $service = implode(',',$new_service);	



			//$car_condition = array("car_id"=>$person->mechanic_id);

			//$car = $this->mcommon->getRow('car',$car_condition);								

			

			$invoice_payment_arr =array();

			$row = array();	

			$row[]=$i;	

			$row[] =$person->car_no;	

			$row[] =$person->invoice_no;

			if(!empty($person->date_of_creation))

			{

			    if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$person->date_of_creation)) {

			        $row[] = date("d/m/Y", strtotime($person->date_of_creation));

			    }

			    else

			    {

			    $row[] = date("d/m/Y", strtotime($person->date_of_creation));

			    }

			}

			else

			{

			    $row[] = "";

			}

			$row[] =$person->total_amount;

			$row[] = $due_amount;

			if(!empty($person->due_date))

			{

			    if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$person->due_date)) {

			        $row[] = date("d/m/Y", strtotime($person->due_date));

			    }

			    else

			    {

			    $row[] = $person->due_date;

			    }

		    }

		    else

			{

			    $row[] = "";

			}

			$row[] = !empty($latest_payment_details['payment_date'])?$latest_payment_details['payment_date']:'N/A';

			// $row[] =$person->customer_name;

 			// $row[] =$mechanic['first_name']." ".$mechanic['last_name'];

 			if($person->is_paid == 0){

                

                $row[] = '<span class="label label-primary my">Unpaid</span>';

				

			}else if($person->is_paid == 1){

               

                $row[] = '<span class="label label-success my">Paid</span>';

				

			}else if($person->is_paid == 2){

                

                $row[] = '<span class="label label-warning my">Partially Paid</span>';

			}

			else if($person->is_paid == 3){

                

                $row[] = '<span class="label label-danger my">No Recovery</span>';

			}

			

			$view = '<a class="cstm_view btn btn-info btn-circle" id="view" href="'.base_url('customer/invoice/view_invoice/'.$person->id).'" target="_blank" title="View"><i class="fa fa-eye"></i></a>';

            $download = '<a class="cstm_view_status btn btn-success btn-circle deactive_btn" href="'.base_url('invoice/'.$person->invoice_file).'" title="Download" download><i class="fa fa-download"></i></a>';

            

			

			$row[]=	$view.' '.$download;

 			

 			

			if((time() > strtotime($person->due_date)) && ($person->is_paid!=1)){

				$row[]=1;

			}else{

				$row[]=0;

			}

            $data[] = $row;

			$i++;

        }	

		

		$output = array(

                        "draw" => $_POST['draw'],

                        "recordsTotal" => $this->minvoice->count_all($params),

                        "recordsFiltered" => $this->minvoice->count_filtered($params),

                        "data" => $data,

                );

        echo json_encode($output);

	}

	

	

	public function details($id){



			$invoice_details = $this->minvoice->get_details($id);

			$condition_item['invoice_id']=$id;

			$item_list=$this->minvoice->getRows('invoice_details',$condition_item);

			$invoice_pay_log_list=$this->minvoice->get_total_payment_by_invoice_no($invoice_details['invoice_no']);



			//print_r($invoice_pay_log_list);die;

			if(!empty($invoice_pay_log_list)){

				if($invoice_details['total_amount'] > $invoice_pay_log_list['sum_amount']){

				  $due_amount=number_format(((float)$invoice_details['total_amount'] - (float)$invoice_pay_log_list['sum_amount']), 2, '.', '');

			    }else{

			      $due_amount=0;	

			    }

			}

			$cond_payment['invoice_no']=$invoice_details['invoice_no'];

			$payment_history=$this->mcommon->getDetails('invoice_payment_details',$cond_payment);



			$data['sum_amount']=number_format(($invoice_pay_log_list['sum_amount']!=0 ? $invoice_pay_log_list['sum_amount'] : 0),2, '.', '');

			$data['due_amount']=$due_amount;

			$data['invoice_details']=$invoice_details;	

			$data['item_list']=$item_list;

			$data['payment_history']=$payment_history;	

			$data['content'] = 'admin/invoice/detail';		

			$this->load->view('admin/layouts/index', $data);		

		

		}	

	



	public function update(){

		if($this->input->post()){

			$id = $this->input->post('id');

			$this->form_validation->set_rules('payment_mode','Payment Mode','required');

			$this->form_validation->set_rules('payment_date','Payment Date','required');			

			if($this->form_validation->run()==FALSE){			

				$this->session->set_flashdata('error_msg','Please fill up required field');

				redirect('admin/invoice/details/'.$id);

			}else{

				//print_r($this->input->post());die;

				$condition=array('id'=>$id);

				$total_amount=$this->input->post('total_amount');

				$payment_amount=$this->input->post('payment_amount');

				$due_amount=$this->input->post('due_amount');

				if($payment_amount > $due_amount){ 

					$this->session->set_flashdata('error_msg','Payment amount should not be greater than due amount');

					redirect('admin/invoice/details/'.$id);

				}else{

					$invoice_amount_details=$this->minvoice->getRow('invoices',$condition);



					////////////////////due date logs//////////////////

					if($this->input->post('due_date')!=$invoice_amount_details['due_date'])

					{

						$due_date_arr['invoice_no'] = $invoice_amount_details['invoice_no'];

						$due_date_arr['due_date'] = $invoice_amount_details['due_date'];

						$this->minvoice->add($due_date_arr,'invoice_due_date');

					}



					$invoice_pay_log_list=$this->minvoice->get_total_payment_by_invoice_no($invoice_amount_details['invoice_no']);

					$udata['payment_mode'] = $this->input->post('payment_mode');

					$udata['payment_date'] = date('Y-m-d h:i:s');

					$udata['payment_amount'] = $payment_amount;

					$udata['invoice_no'] = $invoice_amount_details['invoice_no'];

					$this->minvoice->add($udata,'invoice_payment_details');

					if($due_amount==$payment_amount){

						$udata=array('is_paid'=>1);

					}else{

						$udata=array('is_paid'=>2);

					}

					$udata['due_date']=$this->input->post('due_date');

					$this->minvoice->update($condition,$udata);

				}

				/////////////////////////generate updated INV//////////////////////////////////////

				unlink('./invoice/'.$invoice_amount_details['invoice_file']); 

				$this->generate_pdf($id);



				/////////////////////////////////////////Mail////////////////////////////////////

				$condition_site['admin_id']=1;

				$site_data = $this->mcommon->getRow('admins',$condition_site);

				$name=$site_data['name'];

				$WEBNAME='Punjab motor Works';

		        $temp_msg='Pyment completed successfully.<br>Invoice no - '.$invoice_amount_details['invoice_no'].' <br>payment Amount - $'.$payment_amount.'<br>payment Method - '.$this->input->post('payment_mode');

	        	$mail_temp = file_get_contents('./global/mail/invoice_payment_template.html');

				$mail_temp = str_replace("{shop_name}",$WEBNAME,$mail_temp);

				$mail_temp = str_replace("{logo}",LOGOURL,$mail_temp);

				$mail_temp = str_replace("{web_url}",SITEURL,$mail_temp);

				$mail_temp = str_replace("{current_year}",CURRENT_YEAR,$mail_temp);

				$mail_temp = str_replace("{name}",$name,$mail_temp);					

				$mail_temp = str_replace("{temp_msg}",$temp_msg,$mail_temp);

				$mail_temp = str_replace("{phone}",$site_data['phoneno'],$mail_temp);

				$mail_temp = str_replace("{mail}",$site_data['email'],$mail_temp);

				

				 $regmail['name']=$WEBNAME;

				 $regmail['to']=$site_data['email'];

				 //$regmail['to']='ishani.banerjee@met-technologies.com';

				 $regmail['subject']=$WEBNAME.' Payment Successful';

				 $regmail['message']=$mail_temp;

				 //echo $mail_temp;exit;

				registration_mail($regmail);







				$this->session->set_flashdata('success_msg','Payment made successfully');

				redirect('admin/invoice');

			}

		}else{

			$this->_load_list_view();

		}

	}

	

	

	

	public function getmechanicList()

	{

		$mechanic_condition = array("role_id"=>14,"status"=>1);

		$mechanics = $this->minvoice->getRows('admins',$mechanic_condition);

		//$date = '10/01/2019';

		$date = $this->input->post('date');

		

		$date_array = explode('/',$date);

		$newDate = $date_array[2]."-".$date_array[1]."-".$date_array[0];

		

		$condition = array('available_date'=>$newDate);

		

		$off_mechanics = $this->minvoice->getRows('user_roaster',$condition);

		//echo $this->db->last_query(); die;

		//print_r($off_mechanics);die;

		$new_off_mechanic = array();

		

		foreach($off_mechanics as $off_mechanic)

		{

			$new_off_mechanic[] =  $off_mechanic['mechanic_id'];

		}	

		

		//print_r($new_off_mechanic);die;

		$new_mechanic = array();		

		foreach($mechanics as $mechanic)

		{

			$new_mechanic[] = $mechanic['admin_id'];

		}

		

		$roasted_mechanic_list = array_diff($new_mechanic,$new_off_mechanic);

		

		$result['new_mechanic_list'] = array();

		

		foreach($roasted_mechanic_list	as $key_m=>$roasted_mechanic)

		{

			$reassign_mechanic_condition = array("admin_id"=>$roasted_mechanic);

			$reassign_mechanic = $this->minvoice->getRow('admins',$reassign_mechanic_condition);

			$result['new_mechanic_list'][$key_m] = $reassign_mechanic;

		}	

				

		echo json_encode($result);

	}

	

	public function delete_content(){

		$condition['job_id']=$this->input->post('job_id');

		

		$this->minvoice->delete($condition);

		$response=array('status'=>1,'message'=>'Success');

		echo header('Content-Type: application/json');

		echo json_encode($response);

	}

	

	public function active()

	{

		$condition['user_id']=$this->input->post('user_id');

		$udata['status'] = 1;

		$this->musersetting->active($condition,$udata);

		$response=array('status'=>1,'message'=>'Success');		

		echo json_encode($response);

	}

	

	public function inactive()

	{

		$condition['user_id']=$this->input->post('user_id');

		$udata['status'] = 0;

		$this->musersetting->active($condition,$udata);

		$response=array('status'=>1,'message'=>'Success');		

		echo json_encode($response);

	}

	

	public function multiple_del()

	{

		$job_ids = explode(',',$this->input->post('job_ids'));

		foreach($job_ids as $job_id)

		{

			$condition['job_id'] = $job_id;					

			$this->minvoice->delete($condition);			

			$response=array('status'=>1,'message'=>'Success');

		}		

		echo header('Content-Type: application/json');

		echo json_encode($response);

	}



	public function view_invoice($id){



			$invoice_details = $this->minvoice->get_details($id);

// 			$job_id=$invoice_details['job_id'];

			

// 			$new_service = array();

// 			$services = $this->minvoice->getServices($job_id);

// 			foreach($services as $key=>$service)

// 			{

// 				$new_service[$key] = $service['service_name'];

// 			}

			

// 			$service = implode(',',$new_service);	

// 			//echo $service; die;



// 			/////invoice item listing/////////////////////////////////

// 			$condition_item['invoice_id']=$id;

// 			$item_list=$this->minvoice->getRows('invoice_details',$condition_item);



// 			$data['service']=$service;



// 			$data['invoice_details']=$invoice_details;	

// 			$data['item_list']=$item_list;	

// //print_r($invoice_details); die;

// 			$condition_customer['admin_id']=$invoice_details;

// 			// $customer_data=$this->minvoice->getRow('admins',$condition_customer);

// 			// $data['customer_data'] = $customer_data;

			$data['invoice_details']=$invoice_details;	



			//$data['content'] = 'admin/invoice/view_invoice';		

			$this->load->view('admin/invoice/invoice_template_view', $data);		

		

		}	



		//////////////////////////////////////PDF//////////////////////////////////////



		public function generate_pdf($id)

	{



			$invoice_details = $this->minvoice->get_details($id);

			//$job_id=$invoice_details['job_id'];

			

			// $new_service = array();

			// $services = $this->minvoice->getServices($job_id);

			// foreach($services as $key=>$service)

			// {

			// 	$new_service[$key] = $service['service_name'];

			// }

			

			// $service = implode(',',$new_service);	

			//echo $service; die;



			/////invoice item listing/////////////////////////////////

			$condition_item['invoice_id']=$id;

			$item_list=$this->minvoice->getRows('invoice_details',$condition_item);



			//$data['service']=$service;



			$data['invoice_details']=$invoice_details;	

			$data['item_list']=$item_list;	

			$car_condition = array("car_id"=>$invoice_details['car_id']);

			$car = $this->mapi->getRow('car',$car_condition);

			$data['car']=$car;

			/////////////////////////for template///////////////////////////////////

			$condition_template['id']=1;

			$invoice_template_details = $this->mcommon->getRow('invoice_template',$condition_template);



			$data['invoice_details']=$invoice_details;	

			$invoice_pay_log_list=$this->minvoice->get_total_payment_by_invoice_no($invoice_details['invoice_no']);

			$due_amount=0;

			$total_payment=0;

			//print_r($invoice_pay_log_list);die;

			if(!empty($invoice_pay_log_list)){

				if($invoice_details['total_amount'] > $invoice_pay_log_list['sum_amount']){

				  $due_amount=number_format(((float)$invoice_details['total_amount'] - (float)$invoice_pay_log_list['sum_amount']), 2, '.', '');

			    }else{

			      $due_amount=0;	

			    }

			}

			$data['total_payment']=number_format(($invoice_pay_log_list['sum_amount']!=0 ? $invoice_pay_log_list['sum_amount'] : 0),2, '.', '');

			$data['due_amount']=$due_amount;

			$data['invoice_template_details']=$invoice_template_details;	

			$dompdf = new Dompdf\Dompdf();	

			$dompdf->set_option('enable_html5_parser', TRUE);

			$html = $this->load->view('admin/invoice/invoice_template',$data,true);	

			$dompdf->loadHtml($html);

			$dompdf->setPaper('A4', 'portrait');

			$dompdf->render();

			$pdf = $dompdf->output(); 

			//$filename='INV-'.time();

			$filename='INV-'.$invoice_details['invoice_no'];

			$file=$filename.'.pdf';

			//$file='test.pdf';

			@file_put_contents('./invoice/'.$file, $pdf);	

			//echo $filename;

			$condition_inv['id']=$id;

			$data_inv['invoice_file']=$file;

			$this->mcommon->update('invoices',$condition_inv,$data_inv);	

	}

	



	public function export_data()

	{

		require_once APPPATH . "/third_party/PHPExcel.php";

     $objPHPExcel = new PHPExcel();

     $objPHPExcel->setActiveSheetIndex(0);  

     $objPHPExcel->getActiveSheet()->setCellValue('A1','SL No');

     $objPHPExcel->getActiveSheet()->setCellValue('B1','INVOICE NO');

     $objPHPExcel->getActiveSheet()->setCellValue('C1','DATE OF INVOICE');

     $objPHPExcel->getActiveSheet()->setCellValue('D1','CAR');

    // $objPHPExcel->getActiveSheet()->setCellValue('E1','JOB DETAILS');

     $objPHPExcel->getActiveSheet()->setCellValue('E1','INVOICE AMOUNT');

     $objPHPExcel->getActiveSheet()->setCellValue('F1','CUSTOMER');

     $objPHPExcel->getActiveSheet()->setCellValue('G1','TECHNICIAN');

     $objPHPExcel->getActiveSheet()->setCellValue('H1','PAYMENT STATUS');

     $objPHPExcel->getActiveSheet()->setCellValue('I1','DUE AMOUNT');

     $objPHPExcel->getActiveSheet()->setCellValue('J1','DUE DATE');

     

   $params=array();

		if($this->input->post()){

			if($this->input->post('customer_name')!='')

			{

			$params['customer_name']=$this->input->post('customer_name');

			}

			if($this->input->post('car_id')!='')

			{

			$params['car_id']=$this->input->post('car_id');

			}

		}

  

    $result = $this->minvoice->get_datatables_excel($params);

    //$rowNo=count($result);

    //$objPHPExcel ->getActiveSheet()->getStyle("B1:B".$rowNo)->getNumberFormat()->setFormatCode('0');

      $i=2;

      $j=1;

       foreach($result as $person) {

      

     		$mechanic_condition = array("admin_id"=>$person->mechanic_id);

			$mechanic = $this->mcommon->getRow('admins',$mechanic_condition);

			

			// $new_service = array();

			// $services = $this->minvoice->getServices($person->job_id);

			// foreach($services as $key=>$service)

			// {

			// 	$new_service[$key] = $service['service_name'];

			// }

			

			// $service = implode(',',$new_service);	



			$car_condition = array("car_id"=>$person->car_id);

			$car = $this->mcommon->getRow('car',$car_condition);



			/*

			if($person->is_paid == 0){

				$job_status = "Unpaid";

			}else{

				$job_status = "Paid";

			}

			*/

			

			if($person->is_paid == 0){

				$job_status = "Unpaid";

				

			}else if($person->is_paid == 1){

				$job_status = "Paid";

				

			}else if($person->is_paid == 2){

				$job_status = "Partially Paid";

			}

			

			$invoice_pay_log_list=$this->minvoice->get_total_payment_by_invoice_no($person->invoice_no);

			$due_amount=0;

			$total_payment=0;

			//print_r($invoice_pay_log_list);die;

			if(!empty($invoice_pay_log_list)){

				if($person->total_amount > $invoice_pay_log_list['sum_amount']){

				  $due_amount=number_format(((float)$person->total_amount - (float)$invoice_pay_log_list['sum_amount']), 2, '.', '');

			    }else{

			      $due_amount=0;	

			    }

			}



      $objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$j);

      $objPHPExcel->getActiveSheet()->setCellValue('B'.$i,'"'.$person->invoice_no.'"');

      $objPHPExcel->getActiveSheet()->setCellValue('C'.$i,date("d/m/Y", strtotime($person->date_of_creation)));

      $objPHPExcel->getActiveSheet()->setCellValue('D'.$i,$person->car_no);

      //$objPHPExcel->getActiveSheet()->setCellValue('E'.$i,$service);

      $objPHPExcel->getActiveSheet()->setCellValue('E'.$i,'$'.$person->total_amount);

      $objPHPExcel->getActiveSheet()->setCellValue('F'.$i,$person->customer_name);

      $objPHPExcel->getActiveSheet()->setCellValue('G'.$i,$mechanic['first_name']." ".$mechanic['last_name']);

      $objPHPExcel->getActiveSheet()->setCellValue('H'.$i,$job_status);

      $objPHPExcel->getActiveSheet()->setCellValue('I'.$i,$due_amount);

      $objPHPExcel->getActiveSheet()->setCellValue('J'.$i,date("d/m/Y", strtotime($person->due_date)));

   

      $i++;

      $j++;

       }

    //$objPHPExcel ->getActiveSheet()->getStyle("B1:B".$rowNo)->getNumberFormat()->setFormatCode('0');

      $objPHPExcel->getActiveSheet()->setTitle(time().'InvoiceReport.xlsx');

     header('Content-Type: application/vnd.ms-excel'); 

     header('Content-Disposition: attachment;filename="InvoiceReport.xlsx"'); 

     header('Cache-Control: max-age=0'); 

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 

      $objWriter->save('php://output');

	}



	public function invoice_template(){

			$condition['id']=1;

			$invoice_details = $this->mcommon->getRow('invoice_template',$condition);



			$data['invoice_details']=$invoice_details;	

			

			$data['content'] = 'admin/invoice/template_settings';		

			$this->load->view('admin/layouts/index', $data);		

		

		}	



	public function template_update()

	{

			if($this->input->post()){

			$id = $this->input->post('id');

			

				$condition=array('id'=>$id);

				$udata['name'] = $this->input->post('name');

				$udata['address'] = $this->input->post('address');

				$udata['phone'] = $this->input->post('phone');

				$udata['abn'] = $this->input->post('abn');

				$udata['bank_name'] = $this->input->post('bank_name');

				$udata['bsb'] = $this->input->post('bsb');

				$udata['account_no'] = $this->input->post('account_no');

				$udata['email'] = $this->input->post('email');

				$this->mcommon->update('invoice_template',$condition,$udata);



				/////////////////////////generate updated INV//////////////////////////////////////

				//$this->generate_pdf($id);

				$this->session->set_flashdata('success_msg','Template data updated successfully');

				redirect('admin/invoice/invoice_template');

		}

	}



	////////////////////////////////payment history////////////////////////

	public function payment_history() {

		$payment_list=$this->minvoice->get_payment_list();

		//print_r($payment_list); die;

    	$data['payment_list'] = $payment_list;

		$data['admin'] = $this->admin;

		$data['content'] = 'admin/invoice/payment_list';

		$this->load->view('admin/layouts/index', $data);

	}

	

	public function all_payment_list(){

		$params=array();

		if($this->input->post()){

			if($this->input->post('start_date')!='')

			{

			$params['start_date']=$this->input->post('start_date');

			}

			if($this->input->post('end_date')!='')

			{

			$params['end_date']=$this->input->post('end_date');

			}

		}

		$list = $this->minvoicepayment->get_datatables($params);

		$data = array();

        $no = $_POST['start'];

		$i=1;

		if($no>1)

	    {

	      $i=$i*$no+1;

	    }

		foreach ($list as $person) {			

			$invoice_payment_arr =array();

			$row = array();	

			$row[]=$i;		

			$row[] =$person->invoice_no;

			

			$row[] = date("d/m/Y", strtotime($person->date_of_creation));

			$row[] =$person->car_no;

			$row[] =$person->total_amount;

			$row[] =$person->payment_amount;

			$row[] =date("d/m/Y", strtotime($person->payment_date)); 			

 			$row[] =$person->payment_mode;

 			$row[] =$person->customer_name;

 			

 			

            $data[] = $row;

			$i++;

        }	

		

		$output = array(

                        "draw" => $_POST['draw'],

                        "recordsTotal" => $this->minvoicepayment->count_all($params),

                        "recordsFiltered" => $this->minvoicepayment->count_filtered($params),

                        "data" => $data,

                );

        echo json_encode($output);

	}



	public function test_mail()

	{

		$condition_site['admin_id']=1;

		$site_data = $this->mcommon->getRow('admins',$condition_site);

		$name=$site_data['name'];

		$WEBNAME='Punjab motor Works';

        $temp_msg='Pyment completed successfully.<br>Invoice no - 1.payment Amount - $1<br>payment Method - gfhfgh';

    	$mail_temp = file_get_contents('./global/mail/invoice_payment_template.html');

		$mail_temp = str_replace("{shop_name}",$WEBNAME,$mail_temp);

		$mail_temp = str_replace("{logo}",LOGOURL,$mail_temp);

		$mail_temp = str_replace("{web_url}",SITEURL,$mail_temp);

		$mail_temp = str_replace("{current_year}",CURRENT_YEAR,$mail_temp);

		$mail_temp = str_replace("{name}",$name,$mail_temp);					

		$mail_temp = str_replace("{temp_msg}",$temp_msg,$mail_temp);

		$mail_temp = str_replace("{phone}",$site_data['phoneno'],$mail_temp);

		$mail_temp = str_replace("{mail}",$site_data['email'],$mail_temp);

		

		 $regmail['name']=$WEBNAME;

		 //$regmail['to']=$site_data['email'];

		 $regmail['to']='ishani.banerjee@met-technologies.com';

		 $regmail['subject']=$WEBNAME.' Payment Successful';

		 $regmail['message']=$mail_temp;

		 //echo $mail_temp;exit;

		//$respons=registration_mail($regmail);

		//echo $this->email->print_debugger();

		//$respons=$this->email->print_debugger();

		//print_r($response); die;

	}

	

    	public function SendInvoiceEmail($invoice_id)

	{

	       

			$condition = array("id"=>$invoice_id);

			$invoice = $this->mapi->getRow('invoices',$condition);	

			

			 if(!empty($invoice))

			 {

									

					$car_condition = array("car_id"=>$invoice['car_id']);

					$car = $this->mapi->getRow('car',$car_condition);

					

		/////////////////////////////////////////////////////Send Mail ///////////////////////////////

				

					$name=$car['name'];

					$email=$car['email'];

					//$email='fitser.usa@gmail.com';

					//$email='ishani.banerjee@met-technologies.com';

					//$email='kanak.sarkar91@gmail.com';

				    $message = "Please find the attachment for your invoice";

				    $site_url = base_url();

				    $mail_temp = file_get_contents('./global/mail/invoice_template.html');

				    $mail_temp=str_replace("{web_url}",$site_url,$mail_temp);

				    $mail_temp=str_replace("{logo}",LOGOURL,$mail_temp);

				    //$mail_temp=str_replace("{link}",$link,$mail_temp);

				    $mail_temp=str_replace("{message}",$message,$mail_temp);

				    $mail_temp=str_replace("{name}",$name,$mail_temp);

				    $mail_temp=str_replace("{current_year}",date('Y'),$mail_temp);

			        

			        $data=array();

					$data['to']=$email;

					$data['name']='Punjub Motor Works';

					$data['subject']="Invoice";

					$data['message']= $mail_temp;

					$data['from']='info@punjabmotorworkshop.com';	

					if(!empty($invoice['invoice_file']))

					{

					$data['file_name']=$invoice['invoice_file'];	

					}

					if($this->sendMail($data)) {

					$response='Invoice sent in mail successfully.';

					$this->session->set_flashdata('success_msg',$response);

				    redirect('admin/invoice/details/'.$invoice_id);

					}else {

					$response='Unable to send email';

					$this->session->set_flashdata('error_msg',$response);

				    redirect('admin/invoice/details/'.$invoice_id);

					}

					

			 }		

				else{

					$response='No Invoice found';

					$this->session->set_flashdata('error_msg',$response);

				   redirect('admin/invoice/details/'.$invoice_id);

				}

	}

	

		private function sendMail($data){

			

			$config['protocol']    	= 'smtp';

			$config['protocol']      = 'smtp';

			$config['smtp_host']     = 'ssl://mail.fitser.com';

			$config['smtp_port']     = '465';  

			$config['smtp_user']     = 'test123@fitser.com';

			$config['smtp_pass']     = 'Test123@';

			$config['charset']    	= 'utf-8';

			$config['newline']    	= "\r\n";

			$config['mailtype'] 	= 'html';

			$config['validation'] 	= TRUE;   



			$this->email->initialize($config);



			$this->email->set_crlf( "\r\n" );



			$this->email->from('info@punjabmotorworkshop.com', 'Punjab Motor Work Shop');

			

			$this->email->to($data['to']); 

			//$this->email->bcc('ishani.banerjee@met-technologies.com', 'Dev');

		

			$this->email->subject($data['subject']);

			$this->email->message($data['message']);  

			if(isset($data['file_name']))

			{

			$attched_file= "invoice/".$data['file_name'];

			$this->email->attach($attched_file);

			}

			//$this->email->send();

			if($this->email->send())

			{

			return true; 

			}

			else

			{

				return false; 

			//echo '<pre>';

			//echo $this->email->print_debugger();

			}

			

			//return true;   	

    } 

	

}