437 lines
15 KiB
PHP
437 lines
15 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\gugusDatatable;
|
|
use App\createDatatable;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Session;
|
|
|
|
class pesanan extends Controller
|
|
{
|
|
private $table1 = 'pesanan';
|
|
|
|
public function show()
|
|
{
|
|
// table create
|
|
$datatabel = new createDatatable;
|
|
$datatabel->location('toko/pesanan/data');
|
|
$datatabel->table_name('tableku');
|
|
$datatabel->create_row([ 'no','id pesanan', 'nama pemesan', 'alamat', 'tanggal diambil','action']);
|
|
$datatabel->order_set('0,3,4,5');
|
|
$show = $datatabel->create();
|
|
return view('toko.pesanan.index', ['datatable'=> $show]);
|
|
}
|
|
|
|
public function pesanan($action = 'show', $keyword = '')
|
|
{
|
|
if ($action == "show") {
|
|
|
|
if (isset($_POST['order'])): $setorder = $_POST['order']; else: $setorder = ''; endif;
|
|
|
|
$datatable = new gugusDatatable;
|
|
$datatable->datatable(
|
|
[
|
|
"table" => $this->table1,
|
|
"select" => [
|
|
"*"
|
|
],
|
|
'where' => [
|
|
['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']],
|
|
['status', '=', 'belum'],
|
|
],
|
|
'limit' => [
|
|
'start' => gugusDatatable::post('start'),
|
|
'end' => gugusDatatable::post('length')
|
|
],
|
|
'search' => [
|
|
'value' => gugusDatatable::search(),
|
|
'row' => [
|
|
'id_pesanan'
|
|
,'nama_pemesan'
|
|
,'tanggal_diambil'
|
|
]
|
|
],
|
|
'table-draw' => gugusDatatable::post('draw'),
|
|
'table-show' => [
|
|
'key' => 'id',
|
|
'data' => [
|
|
'id_pesanan'
|
|
,'nama_pemesan'
|
|
,'alamat_pemesan'
|
|
,'tanggal_diambil'
|
|
]
|
|
],
|
|
"custom-button" => [
|
|
"link" => [
|
|
"icon" => "check",
|
|
"class" => "btn btn-info",
|
|
"link" => "toko/pesanan/selesai/",
|
|
"key" => "id",
|
|
"text" => "selesai"
|
|
]
|
|
],
|
|
"custom-button2" => [
|
|
"link" => [
|
|
"icon" => "tasks",
|
|
"class" => "btn btn-info",
|
|
"link" => "toko/pesanan/tambah_data/",
|
|
"key" => "id_pesanan",
|
|
"text" => "data pesanan"
|
|
]
|
|
],
|
|
"action" => "standart",
|
|
'order' => [
|
|
'order-default' => ['tanggal_diambil', 'DESC'],
|
|
'order-data' => $setorder,
|
|
'order-option' => [
|
|
"1" => "id_pesanan",
|
|
"2" => "nama_pemesan",
|
|
],
|
|
],
|
|
]
|
|
);
|
|
$datatable->table_show();
|
|
}elseif ($action == "update") {
|
|
$dataedit = DB::table($this->table1)->where('id', '=', $keyword)->get()[0];
|
|
return view("toko.pesanan.update", ['data'=> $dataedit]);
|
|
}elseif ($action == "delete") {
|
|
|
|
$id_pesanan = DB::table($this->table1)->where('id', '=', $_POST['id'])->get()[0]->id_pesanan;
|
|
|
|
$data_pesanan = DB::table("data_pesanan")->where([
|
|
['id_pesanan', '=', $id_pesanan]
|
|
,['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
])->get();
|
|
|
|
foreach ($data_pesanan as $keys => $value) {
|
|
$idBarang = DB::table("akun")->where([
|
|
["id_akun", "=", $value->id_barang]
|
|
,["perusahaan", "=", Session::get("toko-user")['nama_perusahaan']]
|
|
]);
|
|
|
|
$total_stock = $idBarang->get()[0]->total_stock;
|
|
|
|
$total_stock += $value->banyak_barang;
|
|
|
|
$update = $idBarang->update(
|
|
[
|
|
'total_stock' => $total_stock
|
|
]
|
|
);
|
|
|
|
if ($update) {
|
|
DB::table("data_pesanan")->where("id", "=", $value->id)->delete();
|
|
}
|
|
}
|
|
|
|
$dataedit = DB::table($this->table1)->where('id', '=', $_POST['id'])->delete();
|
|
}
|
|
}
|
|
|
|
public function simpan(){
|
|
DB::table($this->table1)->insert([
|
|
'id_pesanan' => $_POST['id_pesanan']
|
|
,'nama_pemesan' => $_POST['nama_pemesan']
|
|
,'alamat_pemesan' => $_POST['alamat_pemesan']
|
|
,'tanggal_diambil' => $_POST['tanggal_diambil']
|
|
,'perusahaan' => Session::get("toko-user")['nama_perusahaan']
|
|
,'created_at' => date("Y-m-d H:i:s")
|
|
]);
|
|
return redirect('toko/pesanan/tambah_data/'.$_POST['id_pesanan']);
|
|
}
|
|
|
|
public function update()
|
|
{
|
|
DB::table($this->table1)
|
|
->where('id', '=', $_POST['id'])
|
|
->update(
|
|
[
|
|
'id_pesanan' => $_POST['id_pesanan']
|
|
,'nama_pemesan' => $_POST['nama_pemesan']
|
|
,'alamat_pemesan' => $_POST['alamat_pemesan']
|
|
,'tanggal_diambil' => $_POST['tanggal_diambil']
|
|
, 'perusahaan' => Session::get("toko-user")['nama_perusahaan']
|
|
, 'updated_at' => date("Y-m-d H:i:s")
|
|
]
|
|
);
|
|
return redirect('toko/pesanan/tambah_data/'.$_POST['id_pesanan']);
|
|
}
|
|
|
|
|
|
private $table2 = "data_pesanan";
|
|
|
|
public function tambah_data($id_pesanan){
|
|
|
|
Session::put("id-pesanan", $id_pesanan);
|
|
|
|
$datatabel = new createDatatable;
|
|
$datatabel->location('toko/pesanan/tambah_data/show_data');
|
|
$datatabel->table_name('tableku');
|
|
$datatabel->create_row([ 'no','nama barang', 'harga barang', 'tottal barang', 'harga total','action']);
|
|
$datatabel->order_set('0,3,4,5');
|
|
$show = $datatabel->create();
|
|
return view('toko.pesanan.tambah_pesanan', ['datatable'=> $show, 'id_pesanan' => $id_pesanan]);
|
|
}
|
|
|
|
public function show_data($action = 'show', $keyword = ''){
|
|
if ($action == "show") {
|
|
|
|
if (isset($_POST['order'])): $setorder = $_POST['order']; else: $setorder = ''; endif;
|
|
|
|
$datatable = new gugusDatatable;
|
|
$datatable->datatable(
|
|
[
|
|
"table" => $this->table2,
|
|
"select" => [
|
|
$this->table2 => ['id','id_pesanan', 'banyak_barang']
|
|
,'akun' => ['nama_akun as nama_barang']
|
|
, "harga_jual" => ['harga_per_satuan as harga']
|
|
],
|
|
'where' => [
|
|
[$this->table2.'.perusahaan', '=', Session::get("toko-user")['nama_perusahaan']],
|
|
['akun.perusahaan', '=', Session::get("toko-user")['nama_perusahaan']],
|
|
['harga_jual.perusahaan', '=', Session::get("toko-user")['nama_perusahaan']],
|
|
[$this->table2.'.id_pesanan', '=', Session::get("id-pesanan")],
|
|
]
|
|
,'leftJoin' => [
|
|
"akun" => [$this->table2.'.id_barang', '=', 'akun.id_akun'],
|
|
"harga_jual" => [$this->table2.'.id_barang', '=', 'harga_jual.id_barang'],
|
|
]
|
|
,'limit' => [
|
|
'start' => gugusDatatable::post('start'),
|
|
'end' => gugusDatatable::post('length')
|
|
],
|
|
'search' => [
|
|
'value' => gugusDatatable::search(),
|
|
'row' => [
|
|
'id_pesanan'
|
|
]
|
|
],
|
|
'table-draw' => gugusDatatable::post('draw'),
|
|
'table-show' => [
|
|
'key' => 'id',
|
|
'data' => [
|
|
'nama_barang'
|
|
,'harga'
|
|
,'banyak_barang'
|
|
,'harga * banyak_barang'
|
|
]
|
|
],
|
|
"action" => "delete-only",
|
|
'order' => [
|
|
'order-default' => [$this->table2.'.id', 'DESC'],
|
|
'order-data' => $setorder,
|
|
'order-option' => [
|
|
"1" => "id_pesanan",
|
|
],
|
|
],
|
|
]
|
|
);
|
|
$datatable->table_show();
|
|
}elseif ($action == "delete") {
|
|
|
|
$data_pesanan = DB::table($this->table2)->where('id', '=', $_POST['id'])->get();
|
|
|
|
$banyak_barang = DB::table($this->table2)->where('id', '=', $_POST['id'])->get()[0]->banyak_barang;
|
|
$id_barang = DB::table($this->table2)->where('id', '=', $_POST['id'])->get()[0]->id_barang;
|
|
|
|
|
|
// dump($id_barang);
|
|
|
|
$akun = DB::table("akun")->where([
|
|
["id_akun", "=", $id_barang]
|
|
,["perusahaan", "=", Session::get("toko-user")['nama_perusahaan']]
|
|
]);
|
|
|
|
$akunData = $akun->get()[0];
|
|
|
|
$total_stock = $akunData->total_stock;
|
|
$total_stock += $banyak_barang;
|
|
|
|
|
|
$update = $akun->update(
|
|
[
|
|
'total_stock' => $total_stock
|
|
]
|
|
);
|
|
|
|
if ($update) {
|
|
$dataedit = DB::table($this->table2)->where('id', '=', $_POST['id'])->delete();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public function tambah_data_cek(){
|
|
$id = $_POST['idBarang'];
|
|
$banyak = $_POST['banyakBarang'];
|
|
|
|
$dapatkanDataAkun = DB::table("akun")->where([
|
|
['id_akun', '=', $id]
|
|
,['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
])->get()[0]->total_stock;
|
|
|
|
if ($dapatkanDataAkun < $_POST['banyakBarang']) {
|
|
echo 'kurang';
|
|
}else{
|
|
echo 'tersedia';
|
|
}
|
|
|
|
}
|
|
|
|
public function simpan_data(){
|
|
|
|
$simpan = DB::table($this->table2)->insert([
|
|
'id_pesanan' => $_POST['id_pesanan']
|
|
,'id_barang' => $_POST['id_barang']
|
|
,'banyak_barang' => $_POST['banyak_barang']
|
|
,'perusahaan' => Session::get("toko-user")['nama_perusahaan']
|
|
,'created_at' => date("Y-m-d H:i:s")
|
|
]);
|
|
|
|
$akun = DB::table("akun")->where([
|
|
["id_akun", "=", $_POST['id_barang']]
|
|
,["perusahaan", "=", Session::get("toko-user")['nama_perusahaan']]
|
|
]);
|
|
|
|
$akunData = $akun->get()[0];
|
|
|
|
$total_stock = $akunData->total_stock;
|
|
$total_stock -= $_POST['banyak_barang'];
|
|
|
|
|
|
$update = $akun->update(
|
|
[
|
|
'total_stock' => $total_stock
|
|
]
|
|
);
|
|
|
|
if ($update) {
|
|
echo 'success';
|
|
}
|
|
|
|
}
|
|
|
|
public function selesai($key)
|
|
{
|
|
DB::table($this->table1)->where('id', '=', $key)->update([
|
|
'status' => 'selesai'
|
|
]);
|
|
|
|
return redirect('toko/pesanan');
|
|
}
|
|
|
|
public function urgent()
|
|
{
|
|
$getdata = DB::select("SELECT * FROM pesanan WHERE perusahaan = '".Session::get("toko-user")['nama_perusahaan']."' AND status = 'belum' ORDER BY tanggal_diambil DESC LIMIT 0, 5");
|
|
|
|
$data = "
|
|
<tr>
|
|
<th>ID Pesanan</th>
|
|
<th>Nama Pemesan</th>
|
|
<th>Tanggal Diambil</th>
|
|
</tr>
|
|
|
|
";
|
|
|
|
foreach($getdata as $key => $value){
|
|
$data .= '<tr>
|
|
<td>
|
|
'.$value->id_pesanan.'
|
|
</td>
|
|
<td>
|
|
'.$value->nama_pemesan.'
|
|
</td>
|
|
<td>
|
|
'.$value->tanggal_diambil.'
|
|
</td>
|
|
</tr>';
|
|
}
|
|
|
|
print($data);
|
|
}
|
|
|
|
public function pesanan_saat_ini()
|
|
{
|
|
$totalpesanansaatini = DB::table($this->table1)->where([
|
|
['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
,['status', '=', 'belum']
|
|
])->count();
|
|
|
|
print $totalpesanansaatini;
|
|
}
|
|
|
|
public function total_penjualan()
|
|
{
|
|
$total_penjualn = 0;
|
|
|
|
$data_penjualn = DB::table("data_pesanan")->where([
|
|
['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
])->get();
|
|
|
|
foreach($data_penjualn as $key => $data_penjualn){
|
|
$total_penjualn += $data_penjualn->banyak_barang;
|
|
}
|
|
|
|
$data_penjualn = DB::table("data_transaksi")->where([
|
|
['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
])->get();
|
|
|
|
foreach($data_penjualn as $key => $data_penjualn){
|
|
$total_penjualn += $data_penjualn->banyak_barang;
|
|
}
|
|
|
|
print $total_penjualn;
|
|
|
|
}
|
|
|
|
public function pembelian_bulan_ini()
|
|
{
|
|
$total_pembelian = 0;
|
|
$hari_ini = date("Y-m-d");
|
|
$tgl_pertama = date('Y-m-01', strtotime($hari_ini));
|
|
$tgl_terakhir = date('Y-m-t', strtotime($hari_ini));
|
|
|
|
$data = DB::select("SELECT * FROM stock_barang
|
|
WHERE perusahaan = '".Session::get("toko-user")['nama_perusahaan']."'
|
|
AND tanggal_beli BETWEEN '".$tgl_pertama."' AND '".$tgl_terakhir."'
|
|
");
|
|
|
|
foreach($data as $keys => $data){
|
|
$total_pembelian += $data->total_barang;
|
|
}
|
|
print $total_pembelian;
|
|
}
|
|
|
|
public function total_pembayaran()
|
|
{
|
|
$getId = $_POST["idBarang"];
|
|
|
|
|
|
$getDatapesana = DB::table('data_pesanan')->where([
|
|
['id_pesanan', '=', $getId]
|
|
,['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
])->get();
|
|
|
|
$pembayaran = 0;
|
|
|
|
foreach($getDatapesana as $keys => $getDatapesana){
|
|
$hargabarang = DB::table("harga_jual")->where([
|
|
['perusahaan', '=', Session::get("toko-user")['nama_perusahaan']]
|
|
,['id_barang', '=', $getDatapesana->id_barang]
|
|
])->get()[0]->harga_per_satuan;
|
|
$hargabarang = str_replace('Rp ', '', $hargabarang);
|
|
$hargabarang = str_replace('.', '', $hargabarang);
|
|
$hargabarang = $hargabarang * $getDatapesana->banyak_barang;
|
|
$pembayaran += $hargabarang;
|
|
}
|
|
|
|
print 'Rp '.number_format($pembayaran,2,',','.');
|
|
|
|
}
|
|
|
|
|
|
}
|