Files
shopee-apps/application/controllers/notused/ManageRekapGp.php
T
2026-06-13 16:02:07 +10:00

1911 lines
64 KiB
PHP

<?php
use Restserver\Libraries\REST_Controller;
defined('BASEPATH') or exit('No direct script access allowed');
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';
class ManageRekapGp extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('ModelDashboard', 'Dashboard');
$this->load->model('ModelRekapGp', 'RekapGp');
$this->load->library(['datatables', 'form_validation']);
$this->form_validation->set_error_delimiters('', '');
$this->Dashboard->ceklogin();
}
public function output_json($data, $encode = true)
{
if ($encode) $data = json_encode($data);
$this->output->set_content_type('application/json')->set_output($data);
}
public function dataProyekBerjalan_Sales_A1() { // [1]
$datSales = $this->RekapGp->getData_SalesAll();
$datPelanggan = $this->RekapGp->getData_Pelanggan_byID();
$username = $this->session->userdata('username');
$id_karyawan = $this->session->userdata('id_karyawan');
$tgl = date('Y-m-d');
if ($username=="fridho" OR $username=="ricky" OR $username=="rifka") {
$id_karyawan = 16;
$datRekap = $this->RekapGp->getData_Proyek_forSales_Null_0($id_karyawan);
} else if ($username=="admin") {
$datRekap = $this->RekapGp->getData_Proyek_Null_0();
} else {
$datRekap = $this->RekapGp->getData_Proyek_forSales_Null_0($id_karyawan);
}
$no = 0;
foreach ($datRekap as $key) {
$sumSpr = $this->RekapGp->getSum_SoProyek_byPROYEK($key['ID_PROYEK']);
if ($sumSpr==FALSE) {
$totso = 0;
} else {
$totso = $sumSpr[0]['NILAI'];
}
$sumSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($key['ID_PROYEK']);
if ($sumSprFee==FALSE) {
$totsofee = 0;
} else {
$totsofee = $sumSprFee[0]['FEE'];
}
$sumBpry = $this->RekapGp->getSum_BiayaProyek_byPROYEK($key['ID_PROYEK']);
if ($sumBpry==FALSE) {
$totbpry = 0;
} else {
$totbpry = $sumBpry[0]['TOTAL'];
}
$sumHppProyek = $this->RekapGp->getSum_HppProyek_byPROYEK($key['ID_PROYEK']);
if ($sumHppProyek==FALSE) {
$tothpr = 0;
} else {
$tothpr = $sumHppProyek[0]['TOTAL'];
}
$datDpr = $this->RekapGp->getData_DaftarProyek_byPROYEK($key['ID_PROYEK']);
$total_hppbarang = 0;
foreach ($datDpr as $dut) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dut['BARANG_ID'], $tgl);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $datkey) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dut['BARANG_ID'], $datkey['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dut['BARANG_ID'], $datkey['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dut['BARANG_ID'], $datkey['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $datkey['NILAI_HQ'] / $datkey['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $datkey['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$subtot = $hppakhir * $dut['QTY_DPR'];
$total_hppbarang = $total_hppbarang+$subtot;
}
$noso0 = 0;
$noso1 = 0;
$datHppSo0 = [];
$datHppSo1 = [];
$dataSpr = $this->RekapGp->getData_SoProyek_byPROYEK($key['ID_PROYEK']);
foreach ($dataSpr as $dit) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($dit['SID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($dit['SID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($dit['SID']);
foreach ($datDo as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_DO'],
'TGL' => $dit['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dit['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$datHppSo1[$noso1++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dit['TGL_PENJUALAN'],
'HARGA' => $dot['HARGA_IO'],
];
}
}
$total_hppso0 = 0;
foreach ($datHppSo0 as $dat) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGL']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $datkey) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $datkey['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $datkey['NILAI_HQ'] / $datkey['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $datkey['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$subtot = $hppakhir * $dat['QTY'];
$total_hppso0 = $total_hppso0+$subtot;
}
$total_hppso1 = 0;
foreach ($datHppSo1 as $dat) {
$subtot = $dat['QTY']*$dat['HARGA'];
$total_hppso1 = $total_hppso1+$subtot;
}
$totalNota = $totso-$totsofee;
$totalBiaya = $totbpry+$tothpr+$total_hppso0-$total_hppso1+$total_hppbarang;
$totalGp = $totalNota-$totalBiaya;
$datRekap[$no] += ['NOTA'=> number_format($totalNota,2)];
$datRekap[$no] += ['BIAYA'=> number_format($totalBiaya,2)];
$datRekap[$no++] += ['GP'=> number_format($totalGp,2)];
}
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp proyek berjalan",
'rekap' => $datRekap,
'pelanggan' => $datPelanggan,
'sales' => $datSales,
'tgl' => $tgl
];
$this->load->view('proses/RekapGpProyek_Sales_A1', $data);
}
public function kodeProyek() { // [2]
$kk = $this->RekapGp->getKode_Proyek();
$tgl = date('y');
if (is_array($kk) || is_object($kk)) {
foreach ($kk as $row) {
if ($row['KODE'] == null) {
return "PRO".$tgl."-0001";
} else {
$str = (string) $row['KODE'];
$tgl_lama = substr($str, 3, -5);
if ($tgl_lama!=$tgl) {
return "PRO".$tgl."-0001";
} else {
$panjang = 4;
$data = substr($str, 6, $panjang);
$ko = (int) $data + 1;
$str = (string) $ko;
$panjang = 10 - strlen($str);
$data = "PRO".$tgl."-0000";
$data = substr($data, 0, $panjang) . $str;
return $data;
}
}
}
}
}
public function simpanproyek_SA1() { // [3]
$method = $this->input->post('method');
$id_proyek = $this->input->post('id');
$id_sales = $this->input->post('id_sales');
$id_pelanggan = $this->input->post('id_pelanggan');
$po_proyek = $this->input->post('po_proyek');
$tgl_proyek = $this->input->post('tgl_proyek');
$kode_proyek = $this->kodeProyek();
$po_proyek = strtoupper($po_proyek);
$datProyek = $this->RekapGp->getData_Proyek_byPO($po_proyek, NULL);
if ($datProyek==TRUE) {
$this->session->set_flashdata('po_same', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$input = [
'KODE_PROYEK' => $kode_proyek,
'SALES_ID' => $id_sales,
'PELANGGAN_ID' => $id_pelanggan,
'PO_PROYEK' => $po_proyek,
'TGL_PROYEK' => $tgl_proyek
];
$action = $this->RekapGp->create('proyek', $input);
if ($action) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function ubahproyek_SA1() { // [4]
$method = $this->input->post('method');
$id_proyek = $this->input->post('id_proyeked');
$id_sales = $this->input->post('id_salesed');
$id_pelanggan = $this->input->post('id_pelangganed');
$po_proyek = $this->input->post('po_proyeked');
$tgl_proyek = $this->input->post('tgl_proyeked');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek[0]['STATUS_PROYEK']!=NULL) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$po_proyek = strtoupper($po_proyek);
$dataProyek = $this->RekapGp->getData_Proyek_byPO($po_proyek,$id_proyek);
if ($dataProyek==TRUE) {
$this->session->set_flashdata('po_same', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($id_sales==NULL) {
$update = [
'PELANGGAN_ID' => $id_pelanggan,
'PO_PROYEK' => $po_proyek,
'TGL_PROYEK' => $tgl_proyek
];
$action = $this->RekapGp->update('proyek', $update, 'ID_PROYEK', $id_proyek);
} else {
$update = [
'SALES_ID' => $id_sales,
'PELANGGAN_ID' => $id_pelanggan,
'PO_PROYEK' => $po_proyek,
'TGL_PROYEK' => $tgl_proyek
];
$action = $this->RekapGp->update('proyek', $update, 'ID_PROYEK', $id_proyek);
}
if ($action) {
$this->session->set_flashdata('success', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function hapusproyek_SA1() { // [5]
$method = $this->input->post('method');
$id_proyek = $this->input->post('id_proyekdel');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek[0]['STATUS_PROYEK']!=NULL) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datDpr = $this->RekapGp->getData_DaftarProyek_byPROYEK($id_proyek);
if ($datDpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datIo = $this->RekapGp->getData_TransaksiStock_byPROYEK($id_proyek);
if ($datIo==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSpr = $this->RekapGp->getData_SoProyek_byPROYEK($id_proyek);
if ($datSpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datBpry = $this->RekapGp->getData_BiayaProyek_byPROYEK($id_proyek);
if ($datBpry==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$action = $this->RekapGp->delete('proyek', $id_proyek, 'ID_PROYEK');
if ($action) {
$this->session->set_flashdata('success', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataProyekBerjalan_Sales_A2($id) { // [6]
$datRekap = $this->RekapGp->getData_DaftarProyek_byPROYEK($id);
$datProyek = $this->RekapGp->getData_Proyek_byID($id);
$datHppProyek = $this->RekapGp->getData_HppProyek_byPROYEK($id);
$sumHppProyek = $this->RekapGp->getSum_HppProyek_byPROYEK($id);
$datSo = $this->RekapGp->getData_SalesOrder_byPELANGGAN_bySALES_status1_forProyek($datProyek[0]['PELANGGAN_ID'],$datProyek[0]['SALES_ID']);
$datSoProyek = $this->RekapGp->getData_SoProyek_byPROYEK($id);
$sumSoProyek = $this->RekapGp->getSum_SoProyek_byPROYEK($id);
$sumSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($id);
$datBiayaProyek = $this->RekapGp->getData_BiayaProyek_byPROYEK($id);
$sumBiayaProyek = $this->RekapGp->getSum_BiayaProyek_byPROYEK($id);
//Detail Perhitungan Barang Proyek yang akan Keluar
$no = 0;
$total_hppbarang = 0;
foreach ($datRekap as $dat) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0($dat['BARANG_ID']);
$no2 = 0;
$totkeluar = 0 ;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $key) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $key['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $key['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $key['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $key['NILAI_HQ'] / $key['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $key['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$hppsatuan = number_format($hppakhir, 2);
$subtot = $hppakhir * $dat['QTY_DPR'];
$hppakhirtot = number_format($subtot, 2);
$total_hppbarang = $total_hppbarang + $subtot;
$datRekap[$no] += ['HARGAAVG' => $hppsatuan];
$datRekap[$no++] += ['HARGATOTAVG' => $hppakhirtot];
}
//List Kode Barang yang dimunculkan di Nota SO
$no = 0;
foreach ($datSoProyek as $key) {
$sumDo = $this->RekapGp->getSum_DaftarOrder_bySO($key['SID']);
$datSoProyek[$no] += ['NILAISO' => number_format($sumDo[0]['TOTAL'],2)];
$datDo = $this->RekapGp->getData_DaftarOrder_bySO($key['SID']);
$datSoProyek[$no++] += ['BARANG' => $datDo];
}
//Detail Perhitungan Barang SO yang sudah Keluar
$noso = 0;
$datHppSo = [];
foreach ($datSoProyek as $keydat) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($keydat['SID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($keydat['SID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($keydat['SID']);
foreach ($datDo as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_DO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$hargatotavg = $dot['QTY_IO']*$dot['HARGA_IO'];
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '1',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
'HARGAAVG' => $dot['HARGA_IO'],
'HARGATOTAVG' => $hargatotavg
];
}
}
$nosub = 0;
$total_hppso = 0;
foreach ($datHppSo as $dat) {
if ($dat['JENIS']==0) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGLHPP']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $key) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $key['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $key['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $key['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $key['NILAI_HQ'] / $key['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $key['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$hppsatuan = number_format($hppakhir, 2);
$subtot = $hppakhir * $dat['QTY'];
$hppakhirtot = number_format($subtot, 2);
$total_hppso = $total_hppso + $subtot;
$datHppSo[$nosub] += ['HARGAAVG' => $hppsatuan];
$datHppSo[$nosub] += ['HARGATOTAVG' => $hppakhirtot];
} else if ($dat['JENIS']==1) {
$total_hppso = $total_hppso-$dat['HARGATOTAVG'];
}
$nosub++;
}
if ($sumHppProyek=="" OR $sumHppProyek==NULL) {
$total_hpr = 0;
} else {
$total_hpr = $sumHppProyek[0]['TOTAL'];
}
if ($sumSoProyek=="" OR $sumSoProyek==NULL) {
$total_spr = 0;
} else {
$total_spr = $sumSoProyek[0]['NILAI'];
}
if ($sumSprFee=="" OR $sumSprFee==NULL) {
$total_sprfee = 0;
} else {
$total_sprfee = $sumSprFee[0]['FEE'];
}
if ($sumBiayaProyek=="" OR $sumBiayaProyek==NULL) {
$total_bpry = 0;
} else {
$total_bpry = $sumBiayaProyek[0]['TOTAL'];
}
$total_gp = $total_spr-$total_sprfee-$total_hppso-$total_hppbarang-$total_hpr-$total_bpry;
$total_spr = $total_spr-$total_sprfee;
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp proyek berjalan",
'persediaan' => $datRekap,
'hpp_proyek' => $datHppProyek,
'so' => $datSo,
'so_proyek' => $datSoProyek,
'hpp_so' => $datHppSo,
'biaya_proyek' => $datBiayaProyek,
'kode_proyek' => $datProyek[0]['KODE_PROYEK'],
'nama_pelanggan' => $datProyek[0]['NAMA_PELANGGAN'],
'id_proyek' => $id,
'total_hppbarang' => number_format($total_hppbarang,2),
'total_hpr' => number_format($total_hpr,2),
'total_spr' => number_format($total_spr,2),
'total_bpry' => number_format($total_bpry,2),
'total_gp' => number_format($total_gp,2),
'total_hppso' => number_format($total_hppso,2)
];
$this->load->view('proses/RekapGpProyek_Sales_A2', $data);
}
public function simpansoproyek_SA2() { // [7]
$method = $this->input->post('method');
$id_spr = $this->input->post('id');
$id_proyek = $this->input->post('id_proyek');
$id_so = $this->input->post('id_so');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek==FALSE OR $datProyek[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$datSo = $this->RekapGp->getData_SalesOrder_byID($id_so);
if ($datSo==FALSE OR $datSo[0]['STATUS_SO']!=1) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSpr = $this->RekapGp->getData_SoProyek_bySO($id_so);
if ($datSpr==TRUE) {
$this->session->set_flashdata('so_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$input = [
'PROYEK_ID' => $id_proyek,
'SO_ID' => $id_so,
];
$action = $this->RekapGp->create('so_proyek', $input);
if ($action) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function hapussoproyek_SA2() { // [8]
$method = $this->input->post('method');
$id_spr = $this->input->post('id_sprdel');
$datSpr = $this->RekapGp->getData_SoProyek_byID($id_spr);
if ($datSpr==FALSE) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
} else if ($datSpr[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$action = $this->RekapGp->delete('so_proyek', $id_spr, 'ID_SPR');
if ($action) {
$this->session->set_flashdata('success', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function simpanbiayaproyek_SA2() { // [9]
$method = $this->input->post('method');
$id_bpry = $this->input->post('id');
$id_proyek = $this->input->post('id_proyek');
$nilai_bpry = $this->input->post('nilai_bpry');
$nama_bpry = $this->input->post('nama_bpry');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$nilai_bpry = str_replace(',', '.', $nilai_bpry);
$check_nilai = is_numeric($nilai_bpry);
if ($check_nilai==FALSE) {
$nilai_bpry = 0;
}
if ($nilai_bpry<=0) {
$this->session->set_flashdata('not_zero_negative', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$input = [
'PROYEK_ID' => $id_proyek,
'NILAI_BPRY' => $nilai_bpry,
'NAMA_BPRY' => $nama_bpry,
];
$action = $this->RekapGp->create('biaya_proyek', $input);
if ($action) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function ubahbiayaproyek_SA2() { // [10]
$method = $this->input->post('method');
$id_bpry = $this->input->post('id_bpryed');
$nilai_bpry = $this->input->post('nilai_bpryed');
$nama_bpry = $this->input->post('nama_bpryed');
$datBpry = $this->RekapGp->getData_BiayaProyek_byID($id_bpry);
if ($datBpry==FALSE) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
} else if ($datBpry[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$nilai_bpry = str_replace(',', '.', $nilai_bpry);
$check_nilai = is_numeric($nilai_bpry);
if ($check_nilai==FALSE) {
$nilai_bpry = 0;
}
if ($nilai_bpry<=0) {
$this->session->set_flashdata('not_zero_negative', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'NILAI_BPRY' => $nilai_bpry,
'NAMA_BPRY' => $nama_bpry,
];
$action = $this->RekapGp->update('biaya_proyek', $update, 'ID_BPRY', $id_bpry);
if ($action) {
$this->session->set_flashdata('success', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function hapusbiayaproyek_SA2() { // [11]
$method = $this->input->post('method');
$id_bpry = $this->input->post('id_bprydel');
$datBpry = $this->RekapGp->getData_BiayaProyek_byID($id_bpry);
if ($datBpry==FALSE) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
} else if ($datBpry[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$action = $this->RekapGp->delete('biaya_proyek', $id_bpry, 'ID_BPRY');
if ($action) {
$this->session->set_flashdata('success', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function kunciproyek_SA2() { // [12]
$method = $this->input->post('method');
$id_proyek = $this->input->post('id_proyek');
$tgl = date('Y-m-d');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek==FALSE OR $datProyek[0]['STATUS_PROYEK']=="1") {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$datSoProyek = $this->RekapGp->getData_SoProyek_byPROYEK($id_proyek);
foreach ($datSoProyek as $key) {
if ($key['STATUS_SO']==5) {
$kode_so = $key['KODE_SO'];
$this->session->set_flashdata('so_void', "$kode_so");
redirect($_SERVER['HTTP_REFERER']);
}
}
$datDpr = $this->RekapGp->getData_DaftarProyek_byPROYEK($id_proyek);
foreach ($datDpr as $key) {
if ($key['TYPE_JENIS']==1) {
$countSnProyek = $this->RekapGp->getCount_SnProyek_byDPR($key['ID_DPR']);
if ($countSnProyek<$key['QTY_DPR']) {
$this->session->set_flashdata('sn_empty_gudang', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
if ($key['HARGA_DPR']==NULL) {
$this->session->set_flashdata('gudangproses_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$update = [
'STATUS_PROYEK' => '1',
'TGL_KUNCI' => $tgl
];
$action = $this->RekapGp->update('proyek', $update, 'ID_PROYEK', $id_proyek);
if ($action) {
$this->session->set_flashdata('data_lock', 'dikunci');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
} else {
$this->session->set_flashdata('failed', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataRekapKuartal_Sales_A1() { // [13]
$datKuartal = $this->RekapGp->getData_Kuartal();
$username = $this->session->userdata('username');
$id_karyawan = $this->session->userdata('id_karyawan');
if ($username=="fridho" OR $username=="ricky") {
$id_karyawan = 16;
$datRekap = $this->RekapGp->getData_Proyek_status1_RQNotNull($id_karyawan);
$datProyek = $this->RekapGp->getData_Proyek_status1_RQNull($id_karyawan);
$datRq = $this->RekapGp->getData_RekapKuartal_bySALES_statusNull0($id_karyawan);
} else if ($username=="admin" OR $username=="rifka") {
$datRekap = $this->RekapGp->getData_Proyek_1_RqNotNull();
$datProyek = $this->RekapGp->getData_Proyek_1_RqNull();
$datRq = $this->RekapGp->getData_RekapKuartal_bySALES_statusNull0(NULL);
} else {
$datRekap = $this->RekapGp->getData_Proyek_status1_RQNotNull($id_karyawan);
$datProyek = $this->RekapGp->getData_Proyek_status1_RQNull($id_karyawan);
$datRq = $this->RekapGp->getData_RekapKuartal_bySALES_statusNull0($id_karyawan);
}
$no = 0;
foreach ($datRekap as $key) {
$datSpr = $this->RekapGp->getSum_SoProyek_byPROYEK($key['ID_PROYEK']);
$datSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($key['ID_PROYEK']);
$datRekap[$no] += ['NILAI'=> number_format($datSpr[0]['NILAI'],2)];
$datRekap[$no++] += ['FEE'=> number_format($datSprFee[0]['FEE'],2)];
}
$no = 0;
foreach ($datRq as $key) {
$dataProyek = $this->RekapGp->getData_Proyek_byRQ($key['ID_RQ']);
$dataSpr = $this->RekapGp->getData_SoProyek_byRQ($key['ID_RQ']);
$sumSpr = $this->RekapGp->getSum_SoProyek_byRQ($key['ID_RQ']);
$sumFee = $this->RekapGp->getSum_FeeSO_byRQ($key['ID_RQ']);
$sumBpry = $this->RekapGp->getSum_BiayaProyek_byRQ($key['ID_RQ']);
$sumHpr = $this->RekapGp->getSum_HppProyek_byRQ($key['ID_RQ']);
if ($sumSpr==FALSE) {
$sumSpr = 0;
} else {
$sumSpr = $sumSpr[0]['TOTAL'];
}
if ($sumFee==FALSE) {
$sumFee = 0;
} else {
$sumFee = $sumFee[0]['TOTAL'];
}
if ($sumBpry==FALSE) {
$sumBpry = 0;
} else {
$sumBpry = $sumBpry[0]['TOTAL'];
}
if ($sumHpr==FALSE) {
$sumHpr = 0;
} else {
$sumHpr = $sumHpr[0]['TOTAL'];
}
$total_hppbarang = 0;
foreach ($dataProyek as $dat) {
if ($dat['SO_ID']==NULL) {
$sumDpr = $this->RekapGp->getSum_DaftarProyek_byPROYEK($dat['ID_PROYEK']);
$total_hppbarang = $total_hppbarang + $sumDpr[0]['TOTAL'];
}
}
$noso0 = 0;
$noso1 = 0;
$datHppSo0 = [];
$datHppSo1 = [];
foreach ($dataSpr as $dat) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($dat['SOID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($dat['SOID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($dat['SOID']);
foreach ($datDo as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_DO'],
'TGL' => $dat['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dat['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$datHppSo1[$noso1++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dat['TGL_PENJUALAN'],
'HARGA' => $dot['HARGA_IO'],
];
}
}
$total_hppso0 = 0;
foreach ($datHppSo0 as $dat) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGL']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $datkey) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $datkey['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $datkey['NILAI_HQ'] / $datkey['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $datkey['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$subtot = $hppakhir * $dat['QTY'];
$total_hppso0 = $total_hppso0+$subtot;
}
$total_hppso1 = 0;
foreach ($datHppSo1 as $dat) {
$subtot = $dat['QTY']*$dat['HARGA'];
$total_hppso1 = $total_hppso1+$subtot;
}
$totalNota = $sumSpr-$sumFee;
$totalBiaya = $sumBpry+$sumHpr+$total_hppso0-$total_hppso1+$total_hppbarang;
$totalGp = $totalNota-$totalBiaya;
$datRq[$no] += ['NOTA'=> number_format($totalNota,2)];
$datRq[$no] += ['BIAYA'=> number_format($totalBiaya,2)];
$datRq[$no] += ['GP'=> number_format($totalGp,2)];
$datRq[$no++] += ['PRO'=> $dataProyek];
}
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp rekap kuartal",
'rekap' => $datRekap,
'proyek' => $datProyek,
'rq' => $datRq,
'kuartal' => $datKuartal,
];
$this->load->view('proses/RekapGpKuartal_Sales_A1', $data);
}
public function simpanrekap_SA1() { // [14]
$method = $this->input->post('method');
$id_rq = $this->input->post('id');
$id_kuartal = $this->input->post('id_kuartal');
$proyek = $this->input->post('proyek');
$datKuartal = $this->RekapGp->getData_Kuartal_byID($id_kuartal);
if ($datKuartal[0]['STATUS_KUARTAL']!=NULL) {
$nama_kuartal = $datKuartal[0]['NAMA_KUARTAL'];
$this->session->set_flashdata('kuartal_error', "$nama_kuartal");
redirect($_SERVER['HTTP_REFERER']);
}
foreach ($proyek as $key) {
$datProyek = $this->RekapGp->getData_Proyek_byID($key);
$kode_proyek = $datProyek[0]['KODE_PROYEK'];
if ($datProyek[0]['RQ_ID']!=NULL) {
$this->session->set_flashdata('proyek_error', "$kode_proyek");
redirect($_SERVER['HTTP_REFERER']);
}
if (strtotime($datProyek[0]['TGL_PROYEK'])<strtotime($datKuartal[0]['AWAL_KUARTAL']) OR strtotime($datProyek[0]['TGL_PROYEK'])>strtotime($datKuartal[0]['AKHIR_KUARTAL'])) {
$this->session->set_flashdata('proyek_time', "$kode_proyek");
redirect($_SERVER['HTTP_REFERER']);
}
}
//Proses Rekap Kuartal
foreach ($proyek as $key) {
$datProyek = $this->RekapGp->getData_Proyek_byID($key);
$datRq = $this->RekapGp->getData_RekapKuartal_bySALES_byKUARTAL_statusNull($datProyek[0]['SALES_ID'], $id_kuartal);
if ($datRq==FALSE) {
$input = [
'KUARTAL_ID' => $id_kuartal,
'SALES_ID' => $datProyek[0]['SALES_ID']
];
$action = $this->RekapGp->create('rekap_kuartal', $input);
$id_rq = $this->RekapGp->getID_RQMax();
$id_rq = $id_rq[0]['ID_RQ'];
} else {
$id_rq = $datRq[0]['ID_RQ'];
}
$update = [
'RQ_ID' => $id_rq
];
$action = $this->RekapGp->update('proyek', $update, 'ID_PROYEK', $key);
}
if ($action) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function kuncirekap_SA1() { // [15]
$method = $this->input->post('method');
$id_rq = $this->input->post('id_rqlock');
$datRq = $this->RekapGp->getData_RekapKuartal_byID($id_rq);
if ($datRq==FALSE OR $datRq[0]['STATUS_RQ']!=NULL) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datProyek = $this->RekapGp->getData_Proyek_byRQ($id_rq);
foreach ($datProyek as $key) {
$checkProyek = $this->RekapGp->getData_Proyek_bySALES_statusNull($key['SID'], $datRq[0]['AWAL_KUARTAL'], $datRq[0]['AKHIR_KUARTAL']);
if ($checkProyek==TRUE) {
$nama_kuartal = $datRq[0]['NAMA_KUARTAL'];
$this->session->set_flashdata('proyek_periode', "$nama_kuartal");
redirect($_SERVER['HTTP_REFERER']);
}
}
$update = [
'STATUS_RQ' => '0'
];
$action = $this->RekapGp->update('rekap_kuartal', $update, 'ID_RQ', $id_rq);
if ($action) {
$this->session->set_flashdata('success', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function excelrekap_SA1() { // [16]
$id_rq = $this->input->post('id_rqprint');
$datRq = $this->RekapGp->getData_RekapKuartal_byID($id_rq);
$datSpr = $this->RekapGp->getData_SoProyek_byRQ($id_rq);
$no = 0;
$totnota = 0;
$tothpp = 0;
$totgp = 0;
$kode_proyek = NULL;
foreach ($datSpr as $key) {
$sumSo = $this->RekapGp->getSum_SoProyek_bySO($key['SOID']);
$sumSoProyek = $this->RekapGp->getSum_SoProyek_byPROYEK($key['PROYEK_ID']);
$sumSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($key['PROYEK_ID']);
$sumBiayaProyek = $this->RekapGp->getSum_BiayaProyek_byPROYEK($key['PROYEK_ID']);
$sumHppProyek = $this->RekapGp->getSum_HppProyek_byPROYEK($key['PROYEK_ID']);
//$sumHppAwal1 = $this->RekapGp->getSum_HppAwalProyek_byPROYEK_status1($key['PROYEK_ID']);
//$sumHppAwal2 = $this->RekapGp->getSum_HppAwalProyek_byPROYEK_status2($key['PROYEK_ID']);
$datSoProyek = $this->RekapGp->getData_SoProyek_byPROYEK($key['PROYEK_ID']);
$datProyek = $this->RekapGp->getData_DaftarProyek_byPROYEK($key['PROYEK_ID']);
$datHppProyek = $this->RekapGp->getData_HppProyek_byPROYEK($key['PROYEK_ID']);
$datBiayaProyek = $this->RekapGp->getData_BiayaProyek_byPROYEK($key['PROYEK_ID']);
if ($datProyek==TRUE AND $datProyek[0]['SO_ID']==NULL) {
$nodut = 0;
foreach ($datProyek as $dut) {
$subtotpro = $dut['QTY_DPR']*$dut['HARGA_DPR'];
$datProyek[$nodut++] += ['SUBTOTPRO'=>number_format($subtotpro,2)];
}
} else {
$datProyek = NULL;
}
$total_hppbarang = 0;
if ($key['POID']==NULL) {
$sumDpr = $this->RekapGp->getSum_DaftarProyek_byPROYEK($key['PROYEK_ID']);
$total_hppbarang = $total_hppbarang + $sumDpr[0]['TOTAL'];
}
$nodit = 0;
foreach ($datSoProyek as $dit) {
$sumDo = $this->RekapGp->getSum_DaftarOrder_bySO($dit['SO_ID']);
$subSo = $sumDo[0]['TOTAL']-$dit['FEE_SO'];
$datSoProyek[$nodit] += ['NILAISO' => number_format($sumDo[0]['TOTAL'],2)];
$datSoProyek[$nodit++] += ['NILAISUB' => number_format($subSo,2)];
}
$noso = 0;
$datHppSo = [];
foreach ($datSoProyek as $dit) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($dit['SID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($dit['SID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($dit['SID']);
foreach ($datDo as $dot) {
$datHppSo[$noso++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'KODE' => $dot['KODE_BARANG'],
'JENIS' => "Keluar",
'QTY' => $dot['QTY_DO'],
'AWAL' => '0',
'TGL' => $dit['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo[$noso++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'KODE' => $dot['KODE_BARANG'],
'JENIS' => "Keluar",
'QTY' => $dot['QTY_IO'],
'AWAL' => '0',
'TGL' => $dit['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$datHppSo[$noso++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'KODE' => $dot['KODE_BARANG'],
'JENIS' => "Masuk",
'QTY' => $dot['QTY_IO'],
'AWAL' => $dot['HARGA_IO'],
'TGL' => $dit['TGL_PENJUALAN'],
];
}
}
$total_hppso = 0;
$nohppso = 0;
foreach ($datHppSo as $dat) {
if ($dat['JENIS']=="Keluar") {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGL']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $datkey) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $datkey['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $datkey['NILAI_HQ'] / $datkey['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $datkey['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$subtot = $hppakhir * $dat['QTY'];
$total_hppso = $total_hppso+$subtot;
$hargater = number_format($hppakhir,2);
$hargatot = number_format($subtot,2);
$datHppSo[$nohppso] += ['HARGA' => $hargater];
$datHppSo[$nohppso] += ['TOTAVG'=> $hargatot];
} else if ($dat['JENIS']=="Masuk") {
$subtot = $dat['QTY']*$dat['AWAL'];
$total_hppso = $total_hppso-$subtot;
$hargater = number_format($dat['AWAL'],2);
$hargatot = number_format($subtot,2);
$datHppSo[$nohppso] += ['HARGA' => $hargater];
$datHppSo[$nohppso] += ['TOTAVG'=> $hargatot];
}
$nohppso++;
}
$nota = $sumSo[0]['TOTAL'];
//$hppawal = $sumHppAwal1[0]['TOTAL']+$sumHppAwal2[0]['TOTAL'];
$hppawal = 0;
$hppakhir2 = $sumBiayaProyek[0]['TOTAL']+$sumHppProyek[0]['TOTAL']+$total_hppbarang+$total_hppso;
$nilaisotot = $sumSoProyek[0]['NILAI']-$sumSprFee[0]['FEE'];
$gp = $nilaisotot-$hppakhir2;
if ($hppakhir2<=0) {
$percent = "~";
} else {
$percent = number_format(round((($gp/$hppakhir2)*100),2),2);
$percent = "$percent%";
}
$datSpr[$no] += ['NIPRO'=>$datSoProyek];
$datSpr[$no] += ['BASO'=>$datHppSo];
$datSpr[$no] += ['BAPRO'=>$datProyek];
$datSpr[$no] += ['BIPRO'=>$datHppProyek];
$datSpr[$no] += ['BILAIN'=>$datBiayaProyek];
//$datSpr[$no] += ['HPPAWAL1'=>number_format($sumHppAwal1[0]['TOTAL'],2)];
//$datSpr[$no] += ['HPPAWAL2'=>number_format($sumHppAwal2[0]['TOTAL'],2)];
//$datSpr[$no] += ['HPPAWAL'=>number_format($hppawal,2)];
$datSpr[$no] += ['HPPAWAL1'=>number_format(0,2)];
$datSpr[$no] += ['HPPAWAL2'=>number_format(0,2)];
$datSpr[$no] += ['HPPAWAL'=>number_format(0,2)];
$datSpr[$no] += ['NILAISOTOT'=>number_format($nilaisotot,2)];
$datSpr[$no] += ['BARANGSO'=>number_format($total_hppso,2)];
$datSpr[$no] += ['BARANGPR'=>number_format($total_hppbarang,2)];
$datSpr[$no] += ['BIAYAPR'=>number_format($sumHppProyek[0]['TOTAL'],2)];
$datSpr[$no] += ['BIAYALAIN'=>number_format($sumBiayaProyek[0]['TOTAL'],2)];
$datSpr[$no] += ['NOTA'=>number_format($nota,2)];
$datSpr[$no] += ['HPP'=>number_format($hppakhir2,2)];
$datSpr[$no] += ['GP'=>number_format($gp,2)];
$datSpr[$no++] += ['PERCENT'=>$percent];
if ($kode_proyek!=$key['KODE_PROYEK']) {
$kode_proyek = $key['KODE_PROYEK'];
$tothpp = $tothpp+$hppakhir2;
$totgp = $totgp+$gp;
}
$totnota = $totnota+$nota;
}
if ($tothpp<=0) {
$totpercent = "~";
} else {
$totpercent = number_format(round((($totgp/$tothpp)*100),2),2);
$totpercent = "$totpercent%";
}
$data = [
'title' => '',
'laporan' => $datSpr,
'sales' => $datRq[0]['NAMA_PANGGILAN_KARYAWAN'],
'nama_kuartal' => $datRq[0]['NAMA_KUARTAL'],
'awal' => $datRq[0]['AWAL'],
'akhir' => $datRq[0]['AKHIR'],
'totnota' => number_format($totnota,2),
'tothpp' => number_format($tothpp,2),
'totgp' => number_format($totgp,2),
'totpercent' => $totpercent,
];
$this->load->view('cetak/excel_rekapkuartal', $data);
}
public function batalrekap_SA1() { // [17]
$method = $this->input->post('method');
$id_proyek = $this->input->post('id_proyekdel');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek==FALSE OR $datProyek[0]['STATUS_PROYEK']==NULL OR $datProyek[0]['RQ_ID']==NULL) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datRq = $this->RekapGp->getData_RekapKuartal_byID($datProyek[0]['RQ_ID']);
if ($datRq[0]['STATUS_RQ']!=NULL) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'RQ_ID' => NULL
];
$action = $this->RekapGp->update('proyek', $update, 'ID_PROYEK', $id_proyek);
if ($action) {
$this->session->set_flashdata('success', 'dibatalkan');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dibatalkan');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataRekapKuartal_Sales_A2($id) { // [18]
$datProyek = $this->RekapGp->getData_Proyek_byID($id);
$datHppProyek = $this->RekapGp->getData_HppProyek_byPROYEK($id);
$sumHppProyek = $this->RekapGp->getSum_HppProyek_byPROYEK($id);
$datSo = $this->RekapGp->getData_SalesOrder_byPELANGGAN_bySALES_status1_forProyek($datProyek[0]['PELANGGAN_ID'],$datProyek[0]['SALES_ID']);
$datSoProyek = $this->RekapGp->getData_SoProyek_byPROYEK($id);
$sumSoProyek = $this->RekapGp->getSum_SoProyek_byPROYEK($id);
$sumSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($id);
$datBiayaProyek = $this->RekapGp->getData_BiayaProyek_byPROYEK($id);
$sumBiayaProyek = $this->RekapGp->getSum_BiayaProyek_byPROYEK($id);
if ($datProyek[0]['SO_ID']==NULL) {
$datRekap = $this->RekapGp->getData_DaftarProyek_byPROYEK($id);
//Detail Perhitungan Barang Proyek yang akan Keluar
$no = 0;
$total_hppbarang = 0;
foreach ($datRekap as $dat) {
$hppakhir = $dat['HARGA_DPR'];
$hppsatuan = number_format($hppakhir, 2);
$subtot = $dat['HARGA_DPR'] * $dat['QTY_DPR'];
$hppakhirtot = number_format($subtot, 2);
$total_hppbarang = $total_hppbarang + $subtot;
$datRekap[$no] += ['HARGAAVG' => $hppsatuan];
$datRekap[$no++] += ['HARGATOTAVG' => $hppakhirtot];
}
} else {
$datRekap = NULL;
$total_hppbarang = 0;
}
//List Kode Barang yang dimunculkan di Nota SO
$no = 0;
foreach ($datSoProyek as $key) {
$sumDo = $this->RekapGp->getSum_DaftarOrder_bySO($key['SID']);
$datSoProyek[$no] += ['NILAISO' => number_format($sumDo[0]['TOTAL'],2)];
$datDo = $this->RekapGp->getData_DaftarOrder_bySO($key['SID']);
$datSoProyek[$no++] += ['BARANG' => $datDo];
}
//Detail Perhitungan Barang SO yang sudah Keluar
$noso = 0;
$datHppSo = [];
foreach ($datSoProyek as $keydat) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($keydat['SID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($keydat['SID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($keydat['SID']);
foreach ($datDo as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_DO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$hargatotavg = $dot['QTY_IO']*$dot['HARGA_IO'];
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '1',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
'HARGAAVG' => $dot['HARGA_IO'],
'HARGATOTAVG' => $hargatotavg
];
}
}
$nosub = 0;
$total_hppso = 0;
foreach ($datHppSo as $dat) {
if ($dat['JENIS']==0) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGLHPP']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $key) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $key['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $key['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $key['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $key['NILAI_HQ'] / $key['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $key['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$hppsatuan = number_format($hppakhir, 2);
$subtot = $hppakhir * $dat['QTY'];
$hppakhirtot = number_format($subtot, 2);
$total_hppso = $total_hppso + $subtot;
$datHppSo[$nosub] += ['HARGAAVG' => $hppsatuan];
$datHppSo[$nosub] += ['HARGATOTAVG' => $hppakhirtot];
} else if ($dat['JENIS']==1) {
$total_hppso = $total_hppso-$dat['HARGATOTAVG'];
}
$nosub++;
}
if ($sumHppProyek=="" OR $sumHppProyek==NULL) {
$total_hpr = 0;
} else {
$total_hpr = $sumHppProyek[0]['TOTAL'];
}
if ($sumSoProyek=="" OR $sumSoProyek==NULL) {
$total_spr = 0;
} else {
$total_spr = $sumSoProyek[0]['NILAI'];
}
if ($sumSprFee=="" OR $sumSprFee==NULL) {
$total_sprfee = 0;
} else {
$total_sprfee = $sumSprFee[0]['FEE'];
}
if ($sumBiayaProyek=="" OR $sumBiayaProyek==NULL) {
$total_bpry = 0;
} else {
$total_bpry = $sumBiayaProyek[0]['TOTAL'];
}
$total_gp = $total_spr-$total_sprfee-$total_hppso-$total_hppbarang-$total_hpr-$total_bpry;
$total_spr = $total_spr-$total_sprfee;
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp rekap kuartal",
'persediaan' => $datRekap,
'hpp_proyek' => $datHppProyek,
'so' => $datSo,
'so_proyek' => $datSoProyek,
'hpp_so' => $datHppSo,
'biaya_proyek' => $datBiayaProyek,
'kode_proyek' => $datProyek[0]['KODE_PROYEK'],
'nama_pelanggan' => $datProyek[0]['NAMA_PELANGGAN'],
'id_proyek' => $id,
'total_hppbarang' => number_format($total_hppbarang,2),
'total_hpr' => number_format($total_hpr,2),
'total_spr' => number_format($total_spr,2),
'total_bpry' => number_format($total_bpry,2),
'total_gp' => number_format($total_gp,2),
'total_hppso' => number_format($total_hppso,2)
];
$this->load->view('proses/RekapGpKuartal_Sales_A2', $data);
}
public function dataRekapKuartal_Keuangan_A1() { // [19]
$datRekap = $this->RekapGp->getData_RekapKuartal_bySALES_status0();
$no = 0;
foreach ($datRekap as $key) {
$dataProyek = $this->RekapGp->getData_Proyek_byRQ($key['ID_RQ']);
$dataSpr = $this->RekapGp->getData_SoProyek_byRQ($key['ID_RQ']);
$sumSpr = $this->RekapGp->getSum_SoProyek_byRQ($key['ID_RQ']);
$sumFee = $this->RekapGp->getSum_FeeSO_byRQ($key['ID_RQ']);
$sumBpry = $this->RekapGp->getSum_BiayaProyek_byRQ($key['ID_RQ']);
$sumHpr = $this->RekapGp->getSum_HppProyek_byRQ($key['ID_RQ']);
$total_hppbarang = 0;
foreach ($dataProyek as $dat) {
if ($dat['SO_ID']==NULL) {
$sumDpr = $this->RekapGp->getSum_DaftarProyek_byPROYEK($dat['ID_PROYEK']);
$total_hppbarang = $total_hppbarang + $sumDpr[0]['TOTAL'];
}
}
$noso0 = 0;
$noso1 = 0;
$datHppSo0 = [];
$datHppSo1 = [];
foreach ($dataSpr as $dat) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($dat['SOID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($dat['SOID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($dat['SOID']);
foreach ($datDo as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_DO'],
'TGL' => $dat['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo0[$noso0++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dat['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$datHppSo1[$noso1++] = [
'BARANG_ID' => $dot['BARANG_ID'],
'QTY' => $dot['QTY_IO'],
'TGL' => $dat['TGL_PENJUALAN'],
'HARGA' => $dot['HARGA_IO'],
];
}
}
$total_hppso0 = 0;
foreach ($datHppSo0 as $dat) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGL']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $datkey) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $datkey['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $datkey['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $datkey['NILAI_HQ'] / $datkey['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $datkey['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$subtot = $hppakhir * $dat['QTY'];
$total_hppso0 = $total_hppso0+$subtot;
}
$total_hppso1 = 0;
foreach ($datHppSo1 as $dat) {
$subtot = $dat['QTY']*$dat['HARGA'];
$total_hppso1 = $total_hppso1+$subtot;
}
$totalNota = $sumSpr[0]['TOTAL']-$sumFee[0]['TOTAL'];
$totalBiaya = $sumBpry[0]['TOTAL']+$sumHpr[0]['TOTAL']+$total_hppso0-$total_hppso1+$total_hppbarang;
$totalGp = $totalNota-$totalBiaya;
$datRekap[$no] += ['NOTA'=> number_format($totalNota,2)];
$datRekap[$no] += ['BIAYA'=> number_format($totalBiaya,2)];
$datRekap[$no++] += ['GP'=> number_format($totalGp,2)];
}
$username = $this->session->userdata('username');
$id_karyawan = $this->session->userdata('id_karyawan');
if ($username=="fridho" OR $username=="ricky") {
$id_karyawan = 16;
$datProyek = $this->RekapGp->getData_Proyek_status1_Rq0($id_karyawan);
} else if ($username=="admin" OR $username=="venny" OR $username=="suvi") {
$datProyek = $this->RekapGp->getData_Proyek_1_Rq0();
} else {
$datProyek = $this->RekapGp->getData_Proyek_status1_Rq0($id_karyawan);
}
$no = 0;
foreach ($datProyek as $key) {
$datSpr = $this->RekapGp->getSum_SoProyek_byPROYEK($key['ID_PROYEK']);
$datSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($key['ID_PROYEK']);
$datProyek[$no] += ['NILAI'=> number_format($datSpr[0]['NILAI'],2)];
$datProyek[$no++] += ['FEE'=> number_format($datSprFee[0]['FEE'],2)];
}
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp kuartal selesai",
'rekap' => $datRekap,
'proyek' => $datProyek,
];
$this->load->view('proses/RekapGpKuartal_Keuangan_A1', $data);
}
public function revisirekap_KA1() { // [20]
$method = $this->input->post('method');
$id_rq = $this->input->post('id_rqrev');
$datRq = $this->RekapGp->getData_RekapKuartal_byID($id_rq);
if ($datRq==FALSE OR $datRq[0]['STATUS_RQ']==NULL OR $datRq[0]['STATUS_RQ']==1) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'STATUS_RQ' => NULL
];
$action = $this->RekapGp->update('rekap_kuartal', $update, 'ID_RQ', $id_rq);
if ($action) {
$this->session->set_flashdata('success', 'direvisi');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'direvisi');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function kuncirekap_KA1() { // [21]
$method = $this->input->post('method');
$id_rq = $this->input->post('id_rqlock');
$datRq = $this->RekapGp->getData_RekapKuartal_byID($id_rq);
if ($datRq==FALSE OR $datRq[0]['STATUS_RQ']!=0) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'STATUS_RQ' => '1'
];
$action = $this->RekapGp->update('rekap_kuartal', $update, 'ID_RQ', $id_rq);
if ($action) {
$this->session->set_flashdata('success', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataRekapKuartal_Keuangan_A2($id) { // [22]
$datProyek = $this->RekapGp->getData_Proyek_byID($id);
$datHppProyek = $this->RekapGp->getData_HppProyek_byPROYEK($id);
$sumHppProyek = $this->RekapGp->getSum_HppProyek_byPROYEK($id);
$datSo = $this->RekapGp->getData_SalesOrder_byPELANGGAN_bySALES_status1_SPR($datProyek[0]['PELANGGAN_ID'],$datProyek[0]['SALES_ID']);
$datSoProyek = $this->RekapGp->getData_SoProyek_byPROYEK($id);
$sumSoProyek = $this->RekapGp->getSum_SoProyek_byPROYEK($id);
$sumSprFee = $this->RekapGp->getSum_SoProyek_byPROYEK_forFEE($id);
$datBiayaProyek = $this->RekapGp->getData_BiayaProyek_byPROYEK($id);
$sumBiayaProyek = $this->RekapGp->getSum_BiayaProyek_byPROYEK($id);
$no = 0;
foreach ($datSo as $key) {
$datSpr = $this->RekapGp->getData_SoProyek_bySO($key['ID_SO']);
if ($datSpr==TRUE) {
$lock = 1;
} else {
$lock = 0;
}
$datSo[$no++] += ['LOCK'=> $lock];
}
if ($datProyek[0]['SO_ID']==NULL) {
$datRekap = $this->RekapGp->getData_DaftarProyek_byPROYEK($id);
//Detail Perhitungan Barang Proyek yang akan Keluar
$no = 0;
$total_hppbarang = 0;
foreach ($datRekap as $dat) {
$hppakhir = $dat['HARGA_DPR'];
$hppsatuan = number_format($hppakhir, 2);
$subtot = $dat['HARGA_DPR'] * $dat['QTY_DPR'];
$hppakhirtot = number_format($subtot, 2);
$total_hppbarang = $total_hppbarang + $subtot;
$datRekap[$no] += ['HARGAAVG' => $hppsatuan];
$datRekap[$no++] += ['HARGATOTAVG' => $hppakhirtot];
}
} else {
$datRekap = NULL;
$total_hppbarang = 0;
}
//List Kode Barang yang dimunculkan di Nota SO
$no = 0;
foreach ($datSoProyek as $key) {
$sumDo = $this->RekapGp->getSum_DaftarOrder_bySO($key['SID']);
$datSoProyek[$no++] += ['NILAISO' => number_format($sumDo[0]['TOTAL'],2)];
}
//Detail Perhitungan Barang SO yang sudah Keluar
//Detail Perhitungan Barang SO yang sudah Keluar
$noso = 0;
$datHppSo = [];
foreach ($datSoProyek as $keydat) {
$datDo = $this->RekapGp->getData_DaftarOrder_bySO_jenisNot2($keydat['SID']);
$datIo0 = $this->RekapGp->getData_TransaksiStock_bySO_jenis0($keydat['SID']);
$datIo1 = $this->RekapGp->getData_TransaksiStock_bySO_jenis1($keydat['SID']);
foreach ($datDo as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_DO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo0 as $dot) {
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '0',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
];
}
foreach ($datIo1 as $dot) {
$hargatotavg = $dot['QTY_IO']*$dot['HARGA_IO'];
$datHppSo[$noso++] = [
'KODE_BARANG' => $dot['KODE_BARANG'],
'NAMA_BARANG' => $dot['NAMA_BARANG'],
'BARANG_ID' => $dot['BARANG_ID'],
'JENIS' => '1',
'QTY' => $dot['QTY_IO'],
'TANGGAL' => $dot['TANGGAL'],
'TGLHPP' => $keydat['TGL_PENJUALAN'],
'HARGAAVG' => $dot['HARGA_IO'],
'HARGATOTAVG' => $hargatotavg
];
}
}
$nosub = 0;
$total_hppso = 0;
foreach ($datHppSo as $dat) {
if ($dat['JENIS']==0) {
$datHq = $this->RekapGp->getData_HistoriKuantiti_byBARANG_MasukLebih0_beforeTGL($dat['BARANG_ID'], $dat['TGLHPP']);
$totkeluar = 0;
$totpersediaan = 0;
$hargaavglama = 0;
foreach ($datHq as $key) {
//Kuantiti Sebelumnya
$sumHq = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ($dat['BARANG_ID'], $key['ID_HQ']);
if ($totkeluar!=$sumHq[0]['KELUAR']) {
$totkeluar = $sumHq[0]['KELUAR'];
$datHqLimit = $this->RekapGp->getData_HistoriKuantiti_limitHQ($dat['BARANG_ID'], $key['ID_HQ']);
$limit = $this->RekapGp->getSum_HistoriKuantiti_byBARANG_byHQ1_byHQ2($dat['BARANG_ID'], $key['ID_HQ'], $datHqLimit[0]['ID_HQ']);
$keluar = $limit[0]['KELUAR'];
} else {
$keluar = 0;
$totkeluar = 0;
}
//Harga Per Item, DPP
$harga = $key['NILAI_HQ'] / $key['MASUK_HQ'];
//Nilai Total Persediaan Akhir
$nilaiPersediaanKeluar = $hargaavglama * $keluar;
$totpersediaan = $totpersediaan + ($harga * $key['MASUK_HQ']) - $nilaiPersediaanKeluar;
$hppakhir = $totpersediaan/$sumHq[0]['TOTAL'];
$hargaavglama = $hppakhir;
}
$hppakhir = round($hppakhir,2);
$hppsatuan = number_format($hppakhir, 2);
$subtot = $hppakhir * $dat['QTY'];
$hppakhirtot = number_format($subtot, 2);
$total_hppso = $total_hppso + $subtot;
$datHppSo[$nosub] += ['HARGAAVG' => $hppsatuan];
$datHppSo[$nosub] += ['HARGATOTAVG' => $hppakhirtot];
} else if ($dat['JENIS']==1) {
$total_hppso = $total_hppso-$dat['HARGATOTAVG'];
}
$nosub++;
}
if ($sumHppProyek=="" OR $sumHppProyek==NULL) {
$total_hpr = 0;
} else {
$total_hpr = $sumHppProyek[0]['TOTAL'];
}
if ($sumSoProyek=="" OR $sumSoProyek==NULL) {
$total_spr = 0;
} else {
$total_spr = $sumSoProyek[0]['NILAI'];
}
if ($sumSprFee=="" OR $sumSprFee==NULL) {
$total_sprfee = 0;
} else {
$total_sprfee = $sumSprFee[0]['FEE'];
}
if ($sumBiayaProyek=="" OR $sumBiayaProyek==NULL) {
$total_bpry = 0;
} else {
$total_bpry = $sumBiayaProyek[0]['TOTAL'];
}
$total_gp = $total_spr-$total_sprfee-$total_hppso-$total_hppbarang-$total_hpr-$total_bpry;
$total_spr = $total_spr-$total_sprfee;
$data = [
'sidebar' => "menu rekapgp",
'navChild' => "rekapgp kuartal selesai",
'persediaan' => $datRekap,
'hpp_proyek' => $datHppProyek,
'so' => $datSo,
'so_proyek' => $datSoProyek,
'hpp_so' => $datHppSo,
'biaya_proyek' => $datBiayaProyek,
'kode_proyek' => $datProyek[0]['KODE_PROYEK'],
'nama_pelanggan' => $datProyek[0]['NAMA_PELANGGAN'],
'id_proyek' => $id,
'total_hppbarang' => number_format($total_hppbarang,2),
'total_hpr' => number_format($total_hpr,2),
'total_spr' => number_format($total_spr,2),
'total_bpry' => number_format($total_bpry,2),
'total_gp' => number_format($total_gp,2),
'total_hppso' => number_format($total_hppso,2)
];
$this->load->view('proses/RekapGpKuartal_Keuangan_A2', $data);
}
public function ubahrekap_KA1() { // [23]
$method = $this->input->post('method');
$id_spr = $this->input->post('id_spred');
$id_so = $this->input->post('id_soed');
$id_proyek = $this->input->post('id_proyeked');
$datProyek = $this->RekapGp->getData_Proyek_byID($id_proyek);
if ($datProyek==FALSE) {
$this->session->set_flashdata('not_valid', 'error');
redirect('ManageRekapGp/dataProyekBerjalan_Sales_A1');
}
$datSo = $this->RekapGp->getData_SalesOrder_byID($id_so);
if ($datSo==FALSE OR $datSo[0]['STATUS_SO']!=1) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSpr = $this->RekapGp->getData_SoProyek_bySO($id_so);
if ($datSpr==TRUE) {
$this->session->set_flashdata('so_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'SO_ID' => $id_so
];
$action = $this->RekapGp->update('so_proyek', $update, 'ID_SPR', $id_spr);
if ($action) {
$this->session->set_flashdata('success', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'diubah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function kodePraProyek() { // [24]
$kk = $this->RekapGp->getKode_Proyek_Pra();
$tgl = date('y');
if (is_array($kk) || is_object($kk)) {
foreach ($kk as $row) {
if ($row['KODE'] == null) {
return "PRA".$tgl."-0001";
} else {
$str = (string) $row['KODE'];
$tgl_lama = substr($str, 3, -5);
if ($tgl_lama!=$tgl) {
return "PRA".$tgl."-0001";
} else {
$panjang = 4;
$data = substr($str, 6, $panjang);
$ko = (int) $data + 1;
$str = (string) $ko;
$panjang = 10 - strlen($str);
$data = "PRA".$tgl."-0000";
$data = substr($data, 0, $panjang) . $str;
return $data;
}
}
}
}
}
}