|
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 Invoice extends Admin_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('invoice_m');
$this->load->model('invoice_detail_m');
}
public function index()
{
$this->data['vendors'] = $this->invoice_m->getVendors();
$this->data['products'] = $this->invoice_m->getProducts();
$this->data['warehouses'] = $this->invoice_m->getWarehouse();
$this->data['datatable'] = $this->invoice_m->getDataTable();
$this->data['subview'] = 'admin/invoice/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 filter()
{
$this->data['vendors'] = $this->invoice_m->getVendors();
$this->data['products'] = $this->invoice_m->getProducts();
$this->data['warehouses'] = $this->invoice_m->getWarehouse();
$filter = $this->input->post('filter_key');
if ($filter == "no_invoice") {
$no_invoice = $this->input->post('no_invoice');
$this->data['datatable'] = $this->invoice_m->getNoInvoice($no_invoice);
} elseif ($filter == "vendor") {
$vendor = $this->input->post('vendor');
$this->data['datatable'] = $this->invoice_m->getVendor($vendor);
} elseif ($filter == "date") {
$startDate = $this->input->post('startDate');
$endDate = $this->input->post('endDate');
$this->data['datatable'] = $this->invoice_m->getDate($startDate, $endDate);
} elseif ($filter == "payment_status") {
$payment_status = $this->input->post('payment_status');
$this->data['datatable'] = $this->invoice_m->getPayment($payment_status);
} elseif ($filter == "warehouse") {
$warehouse = $this->input->post('warehouse');
$this->data['datatable'] = $this->invoice_m->getWh($warehouse);
}
$this->data['subview'] = 'admin/invoice/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 addInvoice()
{
$this->data['vendors'] = $this->invoice_m->getVendors();
$this->data['products'] = $this->invoice_m->getProducts();
$this->data['warehouses'] = $this->invoice_m->getWarehouse();
$this->data['subview'] = 'admin/invoice/add_invoice';
$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 insertInvoice()
{
$id_vendor = (int) $this->input->post('id_vendor');
$id_warehouse = (int) $this->input->post('id_warehouse');
$no_invoice = $this->input->post('no_invoice');
$count = $this->input->post('id_produk');
$total = 0;
for ($i = 0; $i < count($count); $i++) {
$total += $this->input->post('hargabeli')[$i];
}
$this->session->set_flashdata('error', '<div class="alert alert-danger"><strong>Error!</strong> Nomer invoice telah terdaftar.</div>');
$check = $this->db->select('no_invoice')->from('invoice')->where('no_invoice', $no_invoice)->count_all_results();
if ($check) redirect('admin/invoice/addInvoice');
$insert_id = $this->invoice_m->insertInvoice($no_invoice, $id_vendor, $total, $id_warehouse);
for ($i = 0; $i < count($count); $i++) {
$product_id = $this->input->post('id_produk')[$i];
$quantity = $this->input->post('kuantitas')[$i];
$purchase_price = $this->input->post('hargabeli')[$i];
// insert invoice
$this->invoice_detail_m->insertInvoiceDetail($insert_id, $product_id, $quantity, $purchase_price);
//update stock barang
$id_update = $this->invoice_m->updateStock($quantity, $product_id, $id_warehouse);
//insert stock mov
$data = array(
'stock_id' => $id_update->id,
'type' => '+',
'stock_change' => $quantity,
'remark' => "Invoice No " . $no_invoice,
'datetime' => date("Y-m-d H:i:s")
);
$this->db->insert('stock_movement', $data);
}
$this->session->set_flashdata('success', '<div class="alert alert-success"><strong>Success!</strong> Data berhasil ditambahkan.</div>');
redirect('admin/invoice');
}
function view($id)
{
$this->data['invoice'] = $this->invoice_m->getDataInvoice($id);
$this->data['invoice_detail'] = $this->invoice_detail_m->getDetailInvoice($id);
// echo $this->data['invoice']->no_invoice;
$this->data['subview'] = 'admin/invoice/detail_invoice';
$this->load->view('admin/templates/header', $this->data_header);
$this->load->view('admin/_layout_main', $this->data);
$this->load->view('admin/templates/footer');
}
function update_status($id)
{
$status = $this->input->post('status');
$this->invoice_m->updateStatus($id, $status);
$this->view($id);
}
}