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 : |
<?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']); } }