app = $app; $this->db = $db; $this->web_app = $session->get('WEB_APP'); $this->id_cab = (int) $session->get('APP_INV')['CABANGID']; $this->level_user = (int) $session->get('WEB_USER')['Level']; } public function chart_sale() { $ajson['tipe'] = "chart"; $adata['datasets'] = [['data'=>[], 'label'=>"Penjualan", 'borderColor'=>[], 'backgroundColor'=>[]]]; $adata['labels'] = ["Belum Ada Penjualan"]; $asale = $this->db->fetchAll("SELECT P.Nama_Produk,D.Qty FROM (SELECT InvID,SUM(-Qty) Qty FROM inv_detail WHERE CabID=? AND NotaID IN (5) AND Tgl_Ref>=? GROUP BY InvID ORDER BY SUM(-Qty) DESC LIMIT 10) D LEFT JOIN inv_produk P ON (D.InvID=P.InvID)", [$this->id_cab, tgl_sql2str(tgl_operasi(tgl_dmy(),-7))]); if (count($asale) === 0) $adata['labels'] = []; foreach ($asale as $sale) { $adata['labels'][] = $sale['Nama_Produk']; $adata['datasets'][0]['data'][] = $sale['Qty']; $adata['datasets'][0]['borderColor'][] = random_color(); $adata['datasets'][0]['backgroundColor'][] = random_color(); } $ajson['chart'] = ['type' => "bar", 'data' => $adata, 'options' => [ 'responsive' => true, 'maintainAspectRatio' => false, 'plugins' => [ 'legend' => ['display' => false], 'title' => ['display' => true, 'font' => ['size' => 20, 'weight' => 'normal'], 'text' => '10 Barang Terlaris'], 'subtitle' => ['display' => true, 'position' => "top", 'text' => '(dalam sepekan terakhir)'] ], 'scales' => ['y' => ['beginAtZero' => true, 'title' => ['display' => true, 'font' => ['size' => 14], 'text' => "Qty Penjualan"]], 'x' => ['display' => false]], 'layout' => ['padding' => ['top' => 10]] ] ]; $this->app->json($ajson); } public function chart_omzet() { $ajson['tipe'] = "chart"; $adata['labels'] = []; $adata['datasets'] = []; if ($this->level_user <= 1) { $acab = $this->db->fetchColumn("SELECT Kode_Cab FROM para_cabang WHERE Aktif=1 ORDER BY CabID"); foreach ($acab as $cab) { $adata['datasets'][] = ['data'=>[], 'label'=>$cab." (jt)", 'borderColor'=>random_color(), 'backgroundColor'=>random_color(), 'pointStyle'=>'circle', 'pointRadius'=>10, 'pointHoverRadius'=>15]; } $aomzet = $this->db->fetchAll("SELECT Tgl_Jual,DAY(Tgl_Jual) Tgl,SUM(IF(CabID=2,Total_Jual,0)) Total_2,SUM(IF(CabID=3,Total_Jual,0)) Total_3,SUM(IF(CabID=4,Total_Jual,0)) Total_4 FROM inv_jual WHERE Tgl_Jual<=? GROUP BY Tgl_Jual ORDER BY Tgl_Jual DESC LIMIT 10", [tgl_ymd()]); if (count($aomzet) === 0) $adata['labels'] = []; foreach ($aomzet as $omzet) { $adata['labels'][] = substr(tgl_hari(tgl_sql2str($omzet['Tgl_Jual'])),0,3) ." (". $omzet['Tgl'] . ")"; $adata['datasets'][0]['data'][] = round($omzet['Total_2']/1000000,2); $adata['datasets'][1]['data'][] = round($omzet['Total_3']/1000000,2); $adata['datasets'][2]['data'][] = round($omzet['Total_4']/1000000,2); } } else { $acab = $this->db->fetchRow("SELECT Kode_Cab FROM para_cabang WHERE CabID=?", [ $this->id_cab ]) ?? ['Kode_Cab' => "Toko"]; $adata['datasets'] = [['data'=>[], 'label'=>$acab['Kode_Cab']." (jt)", 'borderColor'=>random_color(), 'backgroundColor'=>random_color(), 'pointStyle'=>'circle', 'pointRadius'=>10, 'pointHoverRadius'=>15]]; $aomzet = $this->db->fetchAll("SELECT Tgl_Jual,DAY(Tgl_Jual) Tgl,SUM(Total_Jual) Total FROM inv_jual WHERE CabID=? AND Tgl_Jual<=? GROUP BY Tgl_Jual ORDER BY Tgl_Jual DESC LIMIT 10", [ $this->id_cab, tgl_ymd() ]); if (count($aomzet) === 0) $adata['labels'] = []; foreach ($aomzet as $omzet) { $adata['labels'][] = substr(tgl_hari(tgl_sql2str($omzet['Tgl_Jual'])),0,3) ." (". $omzet['Tgl'] . ")"; $adata['datasets'][0]['data'][] = round($omzet['Total']/1000000,2); } } $ajson['chart'] = ['type' => "line", 'data' => $adata, 'options' => [ 'responsive' => true, 'maintainAspectRatio' => false, 'plugins' => [ 'legend' => ['display' => false], 'title' => ['display' => true, 'font' => ['size' => 20, 'weight' => 'normal'], 'text' => 'Penjualan 10 Hari Terakhir'], 'subtitle' => ['display' => true, 'position' => "top", 'text' => '(dalam jutaan)'] ], 'scales' => ['y' => ['min' => 0, 'ticks' => ['stepSize' => 1], 'title' => ['display' => true, 'font' => ['size' => 14], 'text' => "Jumlah Penjualan"]]], 'layout' => ['padding' => ['top' => 10]] ] ]; $this->app->json($ajson); } public function table_stok() { $ajson['tipe'] = "tabel"; $ajson['html'] = '
| SKU | Nama Barang | Stok |
|---|---|---|
| %s | %s | %s |
Modul / Menu Tidak Ditemukan
Maaf, modul atau menu yang Anda cari tidak ada atau mungkin telah dipindahkan.