https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /var/www/laciasmara.com/public_html/shop/application/controllers/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/laciasmara.com/public_html/shop/application/controllers/admin/Product_claim.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Product_claim extends Admin_Controller
{

	function __construct()
	{
		parent::__construct();
	}

	//this is to list all product_claim
	public function index()
	{

		//pagination in action. 50 results per page
		$this->load->library('pagination');
		$config['base_url'] = base_url() . 'admin/product_claim/index';

		$this->db->select('id_claim')->from('claim_garansi');
		$claim_count = $this->db->get()->num_rows();
		$config['total_rows'] = $claim_count;
		$config['per_page'] = 10;
		$config["uri_segment"] = 4;
		$config['num_tag_open'] = '<span style="padding-left:10px; padding-right:10px">';
		$config['num_tag_close'] = '</span>';

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

		$this->db->select('claim_garansi.created, claim_garansi.id_claim, orders.order_date, orders_detail.item_name, orders_detail.product_id, claim_garansi.customer_id, claim_garansi.reason_claim, claim_garansi.link_bukti, claim_garansi.status, claim_garansi.keterangan, lang, claim_garansi.payment_confirm, claim_garansi.payment_confirm_detail, claim_garansi.no_order_id');
		$this->db->from('claim_garansi');
		$this->db->join('orders', 'orders.id_orders = claim_garansi.no_order_id');
		$this->db->join('orders_detail', 'orders_detail.id_orders_detail = claim_garansi.no_order_detail_id');
		$this->db->order_by('claim_garansi.id_claim', 'DESC');
		$this->db->limit($config["per_page"], $this->uri->segment(4));
		$this->data['claim_garansi'] = $this->db->get()->result();

		//load view
		$this->data['subview'] = 'admin/product_claim/index';
		$this->load->view('admin/templates/header', $this->data_header);
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
	}

	public function generate_deliveryreceipt($order_id, $id_claim)
	{
		if ($order_id == NULL) {
			redirect('admin/product_claim');
		}

		$count_order = $this->db->select('id_orders')->from('orders')->where('id_orders', $order_id)->get()->num_rows();
		if ($count_order < 1) {
			redirect('admin/product_claim');
		}

		//get website info
		$pdf_data['website_data'] = $this->db->select('logo, website_name')->from('configuration')->where('id_configuration', 1)->get()->row();

		//add PDF attachment DOMPDF 	  
		$pdf_data['title'] = 'Claim Delivery Receipt No: ' . $id_claim;

		//get order
		$this->db->select('*')->from('orders')->where('id_orders', $order_id);
		$pdf_data['order'] = $this->db->get()->row();

		//get claim_garansi
		$this->db->select('*')->from('claim_garansi')->where('id_claim', $id_claim);
		$pdf_data['claim'] = $this->db->get()->row();

		if ($count_order > 0) {
			//get customer detail
			$pdf_data['customer'] = $this->db->select('*')->from('customers')->where('id_customers', $pdf_data['order']->customer_id)->get()->row();

			// get order detail
			$pdf_data['orders_detail'] 	= $this->db->select('*')->from('orders_detail')->where('orders_id', $order_id)->get()->result();

			//Print Pdf Delivery Receipt
			$this->load->library('dompdf_gen');
			$html = $this->load->view('pdf/deliveryreceiptpc', $pdf_data, true);
			$this->dompdf->loadHtml($html);
			$this->dompdf->setPaper('A4', 'portrait');
			$this->dompdf->render();
			$this->dompdf->stream('deliveryreceipt.pdf', array("Attachment" => 0));
			$output = $this->dompdf->output();
			$file_to_save = 'uploads/pdf/deliveryreceipt.pdf';
			//logging
			$user_id = $this->session->userdata('admin')['id'];
			$activity = 'User mencetak delivery receipt claim garansi (' . $id_claim . ')';
			log_activity($user_id, $activity);
			file_put_contents($file_to_save, $output);
		} else {
			redirect('admin/orders');
		}
	}

	public function update_link()
	{
		$claimId = $this->input->post('claim_id');
		$newLink = $this->input->post('new_link');

		// Perbarui link_bukti pada tabel claim_garansi
		$this->db->set('link_bukti', $newLink);
		$this->db->where('id_claim', $claimId);
		$this->db->update('claim_garansi');

		//logging
		$user_id = $this->session->userdata('admin')['id'];

		$activity = 'User mengedit link bukti claim garansi (' . $claimId . ')';


		log_activity($user_id, $activity);

		// Redirect kembali ke halaman sebelumnya
		redirect($_SERVER['HTTP_REFERER']);
	}

	//update status claim status
	public function update_claim_status()
	{
		$id_claim = $this->input->post('id_claim');
		$status = $this->input->post('status');

		// Loop through each status and update it in the database
		foreach ($id_claim as $key => $value) {
			// Get the current status from the database
			$this->db->select('status')->from('claim_garansi')->where('id_claim', $value);
			$current_status = $this->db->get()->row()->status;
			$this->db->select('*')->from('claim_garansi')->where('id_claim', $value);
			$claim = $this->db->get()->row();
			// Only update the status if it has changed
			if ($current_status != $status[$key]) {
				$this->db->where('id_claim', $value);
				$this->db->update('claim_garansi', array('status' => $status[$key]));
				$qty = '1';
				if ($status[$key] == 2) {
					// Get claim details


					$this->db->select('item_id, product_id, warehouse_id')->from('orders_detail')->where('id_orders_detail', $claim->no_order_detail_id);
					$order_detail = $this->db->get()->row();

					// Get current stock from stock table
					$this->db->select('id, stock')->from('stock')
						->where('id_product', (int) $order_detail->product_id)
						->where('id_product_detail', (int) $order_detail->item_id)
						->where('warehouse_id', (int) $order_detail->warehouse_id);
					$current_stock = $this->db->get()->row();

					// Calculate new stock
					$new_item_stock = $current_stock->stock - (int) $qty;

					// Update stock in database
					$this->db->where('id_product', (int) $order_detail->product_id)
						->where('id_product_detail', (int) $order_detail->item_id)
						->where('warehouse_id', (int) $order_detail->warehouse_id)
						->update('stock', array('stock' => $new_item_stock));

					$this->db->select('name')->from('users')->where('id', $this->session->userdata('admin')['id']);
					$user_name = $this->db->get()->row()->name;

					// Update stock_movement_table
					$movement_data = array(
						'stock_id' => $current_stock->id,
						'type' => '-',
						'stock_change' => (int) $qty,
						'remark' => 'Claim ID: ' . $claim->id_claim,
						'total' => $new_item_stock,
						'name' => $user_name
					);
					$this->db->insert('stock_movement', $movement_data);
				}

				if ($status[$key] == 5) {
				} else {
					$this->db->select('name, email, reseller_id')->from('customers')->where('id_customers', $claim->customer_id);
					$customer_data = $this->db->get()->row();
					$data['customer_name'] = $customer_data->name;
					$data['customer_email'] = $customer_data->email;
					$data['reseller_id'] = $customer_data->reseller_id;
					//get website data
					$this->db->select('logo, from_email, website_name, email_smtp_host, email_smtp_port, email_smtp_password, email_smtp')->from('configuration')->where('id_configuration', 1);
					$website_data = $this->db->get()->row();
					$data['logo'] = $website_data->logo;
					$data['website_name'] = $website_data->website_name;
					$data['register_password'] = $this->input->post('register_password');

					//Send Mail
					$email_data['customer_name'] = $customer_data->name;
					$email_data['reseller_id'] = $customer_data->reseller_id;
					$email_data['email'] = $customer_data->email;
					$email_data['status'] = $status[$key];
					$email_data['id_claim'] = $value;
					$email_data['keterangan'] = $claim->keterangan;

					if ($claim->lang == 'english') {
						$email_data['subject'] = 'Warranty Claim Process Update';
					} else {
						$email_data['subject'] = 'Update Proses Claim Garansi';
					}

					if ($claim->lang == 'english') {
						$view_file = 'email/english/claim_update';
					} else {
						$view_file = 'email/indonesian/claim_update';
					}

					$this->send_email($view_file, $email_data);
				}

				$this->db->select('customer_id, keterangan, lang')->from('claim_garansi')->where('id_claim', $value);
				$claim = $this->db->get()->row();

				//logging
				$user_id = $this->session->userdata('admin')['id'];

				$activity = 'User mengubah status claim garansi (' . $value . ')';


				log_activity($user_id, $activity);
			}
		}

		// Set success message
		$this->session->set_flashdata('message', 'Status berhasil diupdate.');

		// Redirect back to the previous page
		redirect($_SERVER['HTTP_REFERER']);
	}


	public function update_claim_keterangan()
	{
		$id_claim = $this->input->post('id_claim');
		$keterangan = $this->input->post('keterangan');

		// lakukan update pada tabel claim_garansi
		$this->db->set('keterangan', $keterangan);
		$this->db->where('id_claim', $id_claim);
		$this->db->update('claim_garansi');
		//logging
		$user_id = $this->session->userdata('admin')['id'];

		$activity = 'User mengupdate keterangan claim garansi (' . $id_claim . ')';

		log_activity($user_id, $activity);

		redirect($_SERVER['HTTP_REFERER']);
	}
}

https://t.me/RX1948 - 2025