Files
2026-06-13 16:02:07 +10:00

1221 lines
36 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 ManageKlaim extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('ModelDashboard', 'Dashboard');
$this->load->model('ModelKlaim', 'Klaim');
$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);
}
//Controller untuk Ambil Data
public function dataAmbil_AdminSales_A1() { // [1]
$datSupplier = $this->Klaim->getData_Supplier();
$datMerk = $this->Klaim->getData_Merk();
$kondisi = $this->input->post('kondisi');
$supplier_id = $this->input->post('supplier_id');
$merk_id = $this->input->post('merk_id');
if ($kondisi==NULL) {
$title = "Belum dipilih*";
$all = 0;
$datKlaim = NULL;
$supplier_id = NULL;
$merk_id = NULL;
$tgl_awal = date('Y-m-d');
$tgl_akhir = date('Y-m-d');
} else {
$tgl_awal = $this->input->post('tgl_awal');
$tgl_akhir = $this->input->post('tgl_akhir');
$all = 1;
$dataSupplier = $this->Klaim->getData_Supplier($supplier_id);
$nama_supplier = $dataSupplier[0]['NAMA_SUPPLIER'];
$nama_kota = $dataSupplier[0]['NAMA_KOTA'];
if ($merk_id=="") {
$nama_merk = "Semua Merk";
$merk_id = NULL;
} else {
$dataMerk = $this->Klaim->getData_Merk($merk_id);
$nama_merk = $dataMerk[0]['NAMA_MERK'];
}
$title = "Supplier ($nama_supplier, $nama_kota) | Merk ($nama_merk)";
$datKlaim = $this->Klaim->getData_DaftarBeli_status1($supplier_id, $merk_id, $tgl_awal, $tgl_akhir);
$noklaim = 0;
foreach ($datKlaim as $key) {
$datSnBeli = $this->Klaim->getData_SnBeli_byDB_status1($key['ID_DB']);
$countAlready = 0;
$countCheck = 0;
$nosn = 0;
foreach ($datSnBeli as $dat) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_bySNSTOCK($dat['ID_SNSTOCK']);
if ($datSnKlaimProgram==TRUE) {
$check = 0;
$already = 1;
$color = 1;
} else {
$check = 1;
$already = 0;
$color = 0;
}
$countAlready = $countAlready + $already;
$countCheck = $countCheck + $check;
$datSnBeli[$nosn++] += ['COLOR' => $color];
}
$datKlaim[$noklaim] += ['SN' => $datSnBeli];
$datKlaim[$noklaim] += ['ALREADY' => $countAlready];
$datKlaim[$noklaim++] += ['CHECK' => $countCheck];
}
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim ambil pembelian",
'klaim' => $datKlaim,
'supplier' => $datSupplier,
'merk' => $datMerk,
'supplier_id' => $supplier_id,
'merk_id' => $merk_id,
'tgl_awal' => $tgl_awal,
'tgl_akhir' => $tgl_akhir,
'title' => $title,
'all' => $all
];
$this->load->view('proses/KlaimAmbilData_AdminSales_A1', $data);
}
public function simpandata_ASA1() { // [2]
$method = $this->input->post('method');
$barang = $this->input->post('barang');
$id_produk = $this->input->post('id_produk');
foreach ($barang as $key) {
$datSnBeli = $this->Klaim->getData_SnBeli_byDB_status1($key);
$saveIdSnkpr = [];
$ubah = 0;
$noid = 0;
foreach ($datSnBeli as $dat) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_bySNSTOCK($dat['ID_SNSTOCK']);
if ($datSnKlaimProgram==FALSE) {
$input = [
'SNSTOCK_ID' => $dat['ID_SNSTOCK'],
'NAMA_SNKPR' => $dat['NAMA_SNSTOCK']
];
$action = $this->Klaim->create('sn_klaimprogram', $input);
$id_snkpr = $this->Klaim->getID_SNKPRMax();
$id_snkpr = $id_snkpr[0]['ID_SNKPR'];
$saveIdSnkpr[$noid++] = [
'SNKPR' => $id_snkpr
];
$ubah = 1;
}
}
//Jika ada perubahan Data
if ($ubah==1) {
$datDb = $this->Klaim->getData_DaftarBeli_byDB($key);
$checkDkpr = $this->Klaim->getData_DaftarKlaimProgram_byBARANG_bySUPPLIER_byNOTA($datDb[0]['BARANG_ID'], $datDb[0]['SUPPLIER_ID'], $datDb[0]['INV_PEMBELIAN']);
if ($checkDkpr==TRUE) {
foreach ($saveIdSnkpr as $keydat) {
$update = [
'DKPR_ID' => $checkDkpr[0]['ID_DKPR']
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $keydat['SNKPR']);
}
} else {
$harga_dkpr = round(($datDb[0]['HARGA_DB']*(($datDb[0]['PPN_PEMBELIAN']+100)/100)),0);
$input = [
'PRODUK_ID' => $id_produk,
'BARANG_ID' => $datDb[0]['BARANG_ID'],
'SUPPLIER_ID' => $datDb[0]['SUPPLIER_ID'],
'TGL_DKPR' => $datDb[0]['TGL_INVBELI'],
'NOTA_DKPR' => $datDb[0]['INV_PEMBELIAN'],
'HARGA_DKPR' => $harga_dkpr,
'JENIS_DKPR' => '1'
];
$action = $this->Klaim->create('daftar_klaimprogram', $input);
$id_dkpr = $this->Klaim->getID_DKPRMax();
$id_dkpr = $id_dkpr[0]['ID_DKPR'];
foreach ($saveIdSnkpr as $keydat) {
$update = [
'DKPR_ID' => $id_dkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $keydat['SNKPR']);
}
}
}
}
if ($ubah==1) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else if ($ubah==0) {
$this->session->set_flashdata('nochange', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataAmbil_AdminSales_B1() { // [3]
$datMerk = $this->Klaim->getData_Merk();
$kondisi = $this->input->post('kondisi');
$merk_id = $this->input->post('merk_id');
if ($kondisi==NULL) {
$title = "Belum dipilih*";
$all = 0;
$merk_id = NULL;
$datKlaim = NULL;
} else {
if ($merk_id=="") {
$nama_merk = "Semua Merk";
$merk_id = NULL;
} else {
$dataMerk = $this->Klaim->getData_Merk($merk_id);
$nama_merk = $dataMerk[0]['NAMA_MERK'];
}
$title = "Merk ($nama_merk)";
$all = 1;
$datKlaim = $this->Klaim->getData_TransaksiStock_jenis1($merk_id);
$noklaim = 0;
foreach ($datKlaim as $key) {
$datSnIo = $this->Klaim->getData_SnIo_byID_jenis1($key['ID_IO']);
$countAlready = 0;
$countCheck = 0;
$nosn = 0;
foreach ($datSnIo as $dat) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_bySNSTOCK($dat['ID_SNSTOCK']);
if ($datSnKlaimProgram==TRUE) {
$check = 0;
$already = 1;
$color = 1;
} else {
$check = 1;
$already = 0;
$color = 0;
}
$countAlready = $countAlready + $already;
$countCheck = $countCheck + $check;
$datSnIo[$nosn++] += ['COLOR' => $color];
}
$datKlaim[$noklaim] += ['SN' => $datSnIo];
$datKlaim[$noklaim] += ['ALREADY' => $countAlready];
$datKlaim[$noklaim++] += ['CHECK' => $countCheck];
}
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim ambil opname",
'klaim' => $datKlaim,
'merk' => $datMerk,
'merk_id' => $merk_id,
'title' => $title,
'all' => $all
];
$this->load->view('proses/KlaimAmbilData_AdminSales_B1', $data);
}
public function simpandata_ASB1() { // [4]
$method = $this->input->post('method');
$barang = $this->input->post('barang');
$id_produk = $this->input->post('id_produk');
foreach ($barang as $key) {
$datSnIo = $this->Klaim->getData_SnIo_byID_jenis1($key);
$ubah = 0;
$noid = 0;
$saveIdSnkpr = [];
foreach ($datSnIo as $dat) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_bySNSTOCK($dat['ID_SNSTOCK']);
if ($datSnKlaimProgram==FALSE) {
$input = [
'SNSTOCK_ID' => $dat['ID_SNSTOCK'],
'NAMA_SNKPR' => $dat['NAMA_SNSTOCK'],
];
$action = $this->Klaim->create('sn_klaimprogram', $input);
$id_snkpr = $this->Klaim->getID_SNKPRMax();
$id_snkpr = $id_snkpr[0]['ID_SNKPR'];
$saveIdSnkpr[$noid++] = [
'SNKPR' => $id_snkpr
];
$ubah = 1;
}
}
if ($ubah==1) {
$datIo = $this->Klaim->getData_TransaksiStock_byID($key);
$checkDkpr = $this->Klaim->getData_DaftarKlaimProgram_byBARANG_jenis0($datIo[0]['BARANG_ID']);
if ($checkDkpr==TRUE) {
foreach ($saveIdSnkpr as $keydat) {
$update = [
'DKPR_ID' => $checkDkpr[0]['ID_DKPR']
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $keydat['SNKPR']);
}
} else {
$input = [
'PRODUK_ID' => $id_produk,
'BARANG_ID' => $datIo[0]['BARANG_ID'],
'JENIS_DKPR' => '0'
];
$action = $this->Klaim->create('daftar_klaimprogram', $input);
$id_dkpr = $this->Klaim->getID_DKPRMax();
$id_dkpr = $id_dkpr[0]['ID_DKPR'];
foreach ($saveIdSnkpr as $keydat) {
$update = [
'DKPR_ID' => $id_dkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $keydat['SNKPR']);
}
}
}
}
if ($ubah==1) {
$this->session->set_flashdata('success', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else if ($ubah==0) {
$this->session->set_flashdata('nochange', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
//Controller untuk Proses Data
public function dataOlah_AdminSales_A1() { // [5]
$datKlaim = $this->Klaim->getData_DaftarKlaimProgram_AmbilPembelian();
$tgl = date('d/m/Y');
$no = 0;
foreach ($datKlaim as $key) {
$countSnkpr = $this->Klaim->getCount_SnKlaimProgram_byBARANG_byDKPR($key['BARANG_ID'], $key['ID_DKPR']);
$datKlaim[$no++] += ['COUNT' => $countSnkpr];
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'tgl' => $tgl,
];
$this->load->view('proses/KlaimOlahData_AdminSales_A1', $data);
}
public function dataOlah_AdminSales_A2($id) { // [5A]
$datKlaim = $this->Klaim->getData_SnKlaimProgram_byDKPR($id);
$datSupplier = $this->Klaim->getData_Supplier();
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id);
$tgl = date('d/m/Y');
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'supplier' => $datSupplier,
'kode_barang' => $datDkpr[0]['KODE_BARANG'],
'id_dkpr' => $id,
'tgl' => $tgl,
];
$this->load->view('proses/KlaimOlahData_AdminSales_A2', $data);
}
public function ubahsn_ASA1() { // [6]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpred');
$id_produk = $this->input->post('id_produked');
$harga_dkpr = $this->input->post('harga_dkpred');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$harga_dkpr = str_replace(',', '.', $harga_dkpr);
$check_nilai = is_numeric($harga_dkpr);
if ($check_nilai==FALSE) {
$harga_dkpr = 0;
}
if ($harga_dkpr<0) {
$this->session->set_flashdata('not_zero_negative', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'PRODUK_ID' => $id_produk,
'HARGA_DKPR' => $harga_dkpr
];
$action = $this->Klaim->update('daftar_klaimprogram', $update, 'ID_DKPR', $id_dkpr);
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 hapussn_ASA1() { // [7]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkprdel');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byDKPR($id_dkpr);
foreach ($datSnkpr as $key) {
$datLkpr = $this->Klaim->getData_LinkKlaimProgram_bySNKPR($key['ID_SNKPR']);
if ($datLkpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$action = $this->Klaim->delete('sn_klaimprogram', $id_dkpr, 'DKPR_ID');
$action = $this->Klaim->delete('daftar_klaimprogram', $id_dkpr, 'ID_DKPR');
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 pindahsn_ASA2() { // [8]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpr');
$id_supplier = $this->input->post('id_supplier');
$nota_dkpr = $this->input->post('nota_dkpr');
$snkpr = $this->input->post('snkpr');
$tgl = date('Y-m-d');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
foreach ($snkpr as $key) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_byID($key);
if ($datSnKlaimProgram==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$nota_dkpr = strtoupper($nota_dkpr);
$checkDkpr = $this->Klaim->getData_DaftarKlaimProgram_byBARANG_bySUPPLIER_byNOTA($datDkpr[0]['BARANG_ID'], $id_supplier, $nota_dkpr);
if ($checkDkpr==TRUE) {
foreach ($snkpr as $key) {
$update = [
'DKPR_ID' => $checkDkpr[0]['ID_DKPR']
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
} else {
$input = [
'SUPPLIER_ID' => $id_supplier,
'PRODUK_ID' => $datDkpr[0]['PRODUK_ID'],
'BARANG_ID' => $datDkpr[0]['BARANG_ID'],
'TGL_DKPR' => $tgl,
'NOTA_DKPR' => $nota_dkpr,
'HARGA_DKPR' => '0',
'JENIS_DKPR' => '1',
];
$action = $this->Klaim->create('daftar_klaimprogram', $input);
$id_dkpr = $this->Klaim->getID_DKPRMax();
$id_dkpr = $id_dkpr[0]['ID_DKPR'];
foreach ($snkpr as $key) {
$update = [
'DKPR_ID' => $id_dkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
}
if ($action) {
$this->session->set_flashdata('success', 'diproses');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'diproses');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataOlah_AdminSales_B1() { // [9]
$datKlaim = $this->Klaim->getData_DaftarKlaimProgram_AmbilOpname();
$tgl = date('d/m/Y');
$no = 0;
foreach ($datKlaim as $key) {
$countSnkpr = $this->Klaim->getCount_SnKlaimProgram_byBARANG_byDKPR($key['BARANG_ID'], $key['ID_DKPR']);
$datKlaim[$no++] += ['COUNT' => $countSnkpr];
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'tgl' => $tgl,
];
$this->load->view('proses/KlaimOlahData_AdminSales_B1', $data);
}
public function dataOlah_AdminSales_B2($id) { // [9A]
$datKlaim = $this->Klaim->getData_SnKlaimProgram_byDKPR($id);
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id);
$datSupplier = $this->Klaim->getData_Supplier();
$tgl = date('d/m/Y');
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'kode_barang' => $datDkpr[0]['KODE_BARANG'],
'supplier' => $datSupplier,
'tgl' => $tgl,
'id_dkpr' => $id,
];
$this->load->view('proses/KlaimOlahData_AdminSales_B2', $data);
}
public function pindahsn_ASB2() { // [10]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpr');
$id_supplier = $this->input->post('id_supplier');
$nota_dkpr = $this->input->post('nota_dkpr');
$snkpr = $this->input->post('snkpr');
$tgl = date('Y-m-d');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
foreach ($snkpr as $key) {
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_byID($key);
if ($datSnKlaimProgram==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$nota_dkpr = strtoupper($nota_dkpr);
$checkDkpr = $this->Klaim->getData_DaftarKlaimProgram_byBARANG_bySUPPLIER_byNOTA($datDkpr[0]['BARANG_ID'], $id_supplier, $nota_dkpr);
if ($checkDkpr==TRUE) {
foreach ($snkpr as $key) {
$update = [
'DKPR_ID' => $checkDkpr[0]['ID_DKPR']
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
} else {
$input = [
'SUPPLIER_ID' => $id_supplier,
'PRODUK_ID' => $datDkpr[0]['PRODUK_ID'],
'BARANG_ID' => $datDkpr[0]['BARANG_ID'],
'TGL_DKPR' => $tgl,
'NOTA_DKPR' => $nota_dkpr,
'HARGA_DKPR' => '0',
'JENIS_DKPR' => '1',
];
$action = $this->Klaim->create('daftar_klaimprogram', $input);
$id_dkpr = $this->Klaim->getID_DKPRMax();
$id_dkpr = $id_dkpr[0]['ID_DKPR'];
foreach ($snkpr as $key) {
$update = [
'DKPR_ID' => $id_dkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
}
if ($action) {
$this->session->set_flashdata('success', 'diproses');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'diproses');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function hapussn_ASB1() { // [11]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkprdel');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byDKPR($id_dkpr);
foreach ($datSnkpr as $key) {
$datLkpr = $this->Klaim->getData_LinkKlaimProgram_bySNKPR($key['ID_SNKPR']);
if ($datLkpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$action = $this->Klaim->delete('sn_klaimprogram', $id_dkpr, 'DKPR_ID');
$action = $this->Klaim->delete('daftar_klaimprogram', $id_dkpr, 'ID_DKPR');
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 dataOlah_AdminSales_C1() { // [12]
$datKlaim = $this->Klaim->getData_DaftarKlaimProgram_AmbilSemua();
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_kunciNotNull();
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_forRedirect();
$tgl = date('d/m/Y');
$no = 0;
foreach ($datKlaim as $key) {
$countSnkpr = $this->Klaim->getCount_SnKlaimProgram_byBARANG_byDKPR($key['BARANG_ID'], $key['ID_DKPR']);
$countSnkprNotNull = $this->Klaim->getCount_SnKlaimProgram_byBARANG_byDKPR_NotNull($key['BARANG_ID'], $key['ID_DKPR']);
$datKlaim[$no] += ['NOTNULL' => $countSnkprNotNull];
$datKlaim[$no++] += ['COUNT' => $countSnkpr];
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'dkpr' => $datDkpr,
'snkpr' => $datSnkpr,
'tgl' => $tgl,
];
$this->load->view('proses/KlaimOlahData_AdminSales_C1', $data);
}
public function kunciklaim_ASC1() { // [25]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpr');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE OR $datDkpr[0]['KUNCI_DKPR']!=NULL) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'KUNCI_DKPR' => '1'
];
$action = $this->Klaim->update('daftar_klaimprogram', $update, 'ID_DKPR', $id_dkpr);
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 tarikulang_ASC1() { // [26]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpr');
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDkpr==FALSE OR $datDkpr[0]['KUNCI_DKPR']==NULL) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'KUNCI_DKPR' => NULL
];
$action = $this->Klaim->update('daftar_klaimprogram', $update, 'ID_DKPR', $id_dkpr);
if ($action) {
$this->session->set_flashdata('success', 'dikembalikan');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dikembalikan');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataOlah_AdminSales_C2($id) { // [13]
$datKlaim = $this->Klaim->getData_SnKlaimProgram_byDKPR($id);
$datPelanggan = $this->Klaim->getData_Pelanggan_byID();
$datProgram = $this->Klaim->getData_Program();
$datSnKpr = $this->Klaim->getData_SnKlaimProgram_byDKPR_status0($id);
$datDkpr = $this->Klaim->getData_DaftarKlaimProgram_byID($id);
$datPkpr = $this->Klaim->getData_PotonganKlaimProgram_byDKPR_groupPKPR($id);
$tgl = date('Y-m-d');
$no = 0;
foreach ($datKlaim as $key) {
//Histori SN
$datHsn = $this->Klaim->getData_HistoriSn_bySNKPR($key['ID_SNKPR']);
if ($datHsn==TRUE) {
$datHsnID = $this->Klaim->getData_HistoriSn_byID($datHsn[0]['ID_HSN']);
if (strlen($datHsnID[0]['NAMA_PELANGGAN'])>=25) {
$nama_pelanggan = substr($datHsnID[0]['NAMA_PELANGGAN'],0,25);
$nama_pelanggan = "$nama_pelanggan...";
} else {
$nama_pelanggan = $datHsnID[0]['NAMA_PELANGGAN'];
}
$datKlaim[$no] += ['NAPEL' => $nama_pelanggan];
$datKlaim[$no] += ['TANGGAL' => $datHsnID[0]['TANGGAL']];
} else {
$datKlaim[$no] += ['NAPEL' => NULL];
$datKlaim[$no] += ['TANGGAL' => NULL];
}
//Link Klaim Program
$datLinkKpr = $this->Klaim->getData_LinkKlaimProgram_bySNKPR($key['ID_SNKPR']);
$nolink = 0;
foreach ($datLinkKpr as $dat) {
if ($dat['PROGRAM_ID']==1) {
$nolink++;
}
}
if ($nolink>0) { $lockopt = 1; } else { $lockopt = 0; }
$datKlaim[$no] += ['LOCKOPT' => $lockopt];
$datKlaim[$no++] += ['LINK' => $datLinkKpr];
}
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses olah",
'klaim' => $datKlaim,
'pelanggan' => $datPelanggan,
'program' => $datProgram,
'snkpr' => $datSnKpr,
'pkpr' => $datPkpr,
'tgl' => $tgl,
'id_dkpr' => $id,
'kode_barang' => $datDkpr[0]['KODE_BARANG'],
'nama_barang' => $datDkpr[0]['NAMA_BARANG'],
'nama_supplier' => $datDkpr[0]['NAMA_SUPPLIER'],
'nama_kota' => $datDkpr[0]['NAMA_KOTA'],
'nota_dkpr' => $datDkpr[0]['NOTA_DKPR'],
'tgl_dkpr' => $datDkpr[0]['TANGGAL'],
];
$this->load->view('proses/KlaimOlahData_AdminSales_C2', $data);
}
public function tambahprogram_ASC2() { // [14]
$method = $this->input->post('method');
$id_lkpr = $this->input->post('id');
$id_program = $this->input->post('id_program');
$snkpr = $this->input->post('snkpr');
$nama_pkpr = $this->input->post('nama_pkpr');
$nilai_pkpr = $this->input->post('nilai_pkpr');
foreach ($snkpr as $key) {
$datSnKpr = $this->Klaim->getData_SnKlaimProgram_byID($key);
if ($datSnKpr[0]['STATUS_SNKPR']!=0) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$nama_pkpr = preg_replace('/\R+/', " " , $nama_pkpr);
$nilai_pkpr = str_replace(',', '.', $nilai_pkpr);
$check_nilai = is_numeric($nilai_pkpr);
if ($check_nilai==FALSE) {
$nilai_pkpr = 0;
}
if ($nilai_pkpr<0) {
$this->session->set_flashdata('not_zero_negative', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datPkpr = $this->Klaim->getData_PotonganKlaimProgram_byNAMA_byNILAI($nama_pkpr, $nilai_pkpr);
if ($datPkpr==TRUE) {
$id_pkpr = $datPkpr[0]['ID_PKPR'];
} else {
$input = [
'NAMA_PKPR' => $nama_pkpr,
'NILAI_PKPR' => $nilai_pkpr
];
$action = $this->Klaim->create('potongan_klaimprogram', $input);
$id_pkpr = $this->Klaim->getID_PKPRMax();
$id_pkpr = $id_pkpr[0]['ID_PKPR'];
}
foreach ($snkpr as $key) {
$input = [
'PROGRAM_ID' => $id_program,
'SNKPR_ID' => $key,
'PKPR_ID' => $id_pkpr
];
$action = $this->Klaim->create('link_klaimprogram', $input);
if ($id_program==1) {
$update = [
'STATUS_SNKPR' => '1'
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $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 ubahstatus_ASC2() { // [15]
$method = $this->input->post('method');
$status_snkpr = $this->input->post('status_snkpr');
$snkpr = $this->input->post('snkprall');
foreach ($snkpr as $key) {
$datSnKpr = $this->Klaim->getData_SnKlaimProgram_byID($key);
if ($datSnKpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
if ($status_snkpr==9) {
$status_snkpr = 0;
}
foreach ($snkpr as $key) {
$update = [
'STATUS_SNKPR' => $status_snkpr,
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
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 resetprogram_ASC2() { // [16]
$method = $this->input->post('method');
$id_snkpr = $this->input->post('id_snkpr');
$id_lkpr = $this->input->post('id_lkpr');
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byID($id_snkpr);
if ($datSnkpr[0]['STATUS_SNKPR']==2 OR $datSnkpr[0]['STATUS_SNKPR']==3) {
$this->session->set_flashdata('status_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datLkpr = $this->Klaim->getData_LinkKlaimProgram_byID($id_lkpr);
if ($datLkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($datLkpr[0]['PROGRAM_ID']==1) {
$update = [
'STATUS_SNKPR' => NULL
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $id_snkpr);
}
$action = $this->Klaim->delete('link_klaimprogram', $id_lkpr, 'ID_LKPR');
if ($action) {
$this->session->set_flashdata('success', 'direset');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'direset');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function hapussn_ASC2() { // [17]
$method = $this->input->post('method');
$id_snkpr = $this->input->post('id_snkpr');
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byID($id_snkpr);
if ($datSnkpr[0]['STATUS_SNKPR']!=0) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datLkpr = $this->Klaim->getData_LinkKlaimProgram_bySNKPR($id_snkpr);
if ($datLkpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$action = $this->Klaim->delete('sn_klaimprogram', $id_snkpr, 'ID_SNKPR');
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 hapusmassal_ASC2() { // [18]
$method = $this->input->post('method');
$snkpr = $this->input->post('snkprhapus');
$id_dkpr = $this->input->post('id_dkpr');
$datSnKlaimProgram = $this->Klaim->getData_SnKlaimProgram_byDKPR_NULL($id_dkpr);
foreach ($datSnKlaimProgram as $key) {
if ($key['STATUS_SNKPR']!=NULL) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datLinkKpr = $this->Klaim->getData_LinkKlaimProgram_bySNKPR($key['ID_SNKPR']);
if ($datLinkKpr==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
if ($snkpr!=NULL) {
$no = 0;
foreach ($datSnKlaimProgram as $key) {
$snstay = 0;
foreach ($snkpr as $dat) {
if ($dat==$key['ID_SNKPR']) {
$snstay++;
}
if ($snstay>0) {
$sta = 1;
} else {
$sta = 0;
}
}
$datSnKlaimProgram[$no++] += ['STAY' => $sta];
}
foreach ($datSnKlaimProgram as $key) {
if ($key['STAY']==0) {
$action = $this->Klaim->delete('sn_klaimprogram', $key, 'ID_SNKPR');
}
}
} else {
foreach ($datSnKlaimProgram as $key) {
$action = $this->Klaim->delete('sn_klaimprogram', $key, 'ID_SNKPR');
}
if ($action) {
$this->session->set_flashdata('data_lock', 'dihapus');
redirect('ManageKlaim/dataOlah_AdminSales_C1');
} else {
$this->session->set_flashdata('failed', 'dihapus');
redirect($_SERVER['HTTP_REFERER']);
}
}
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 resetmassal_ASC2() { // [27]
$method = $this->input->post('method');
$id_dkpr = $this->input->post('id_dkpr');
$id_pkpr = $this->input->post('id_pkpr');
$datDaftarKlaimProgram = $this->Klaim->getData_DaftarKlaimProgram_byID($id_dkpr);
if ($datDaftarKlaimProgram==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect('ManageKlaim/dataOlah_AdminSales_C1');
}
$datLkpr = $this->Klaim->getData_LinkKlaimProgram_byDKPR_byPKPR($id_dkpr, $id_pkpr);
if ($datLkpr==FALSE) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
foreach ($datLkpr as $key) {
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byID($key['SNKPR_ID']);
if ($datSnkpr[0]['STATUS_SNKPR']==2 OR $datSnkpr[0]['STATUS_SNKPR']==3) {
$this->session->set_flashdata('status_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
foreach ($datLkpr as $key) {
if ($key['PROGRAM_ID']==1) {
$update = [
'STATUS_SNKPR' => NULL
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key['SNKPR_ID']);
}
}
foreach ($datLkpr as $key) {
$action = $this->Klaim->delete('link_klaimprogram', $key['ID_LKPR'], 'ID_LKPR');
}
if ($action) {
$this->session->set_flashdata('success', 'direset');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'direset');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataNota_AdminSales_A1() { // [19]
$datKlaim = $this->Klaim->getData_SnKlaimProgram_status1();
$datPelanggan = $this->Klaim->getData_Pelanggan_byID();
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_notaNotNull();
$datClean = $this->Klaim->getData_SnKlaimProgram_kunciNotNull();
$tgl = date('Y-m-d');
$data = [
'sidebar' => "menu klaim stok",
'navChild' => "klaim proses nota",
'klaim' => $datKlaim,
'snkpr' => $datSnkpr,
'sntarik' => $datClean,
'pelanggan' => $datPelanggan,
'tgl' => $tgl,
];
$this->load->view('proses/KlaimNota_AdminSales_A1', $data);
}
public function kodeINVKlaim() { //[20]
$kk = $this->Klaim->getKode_INVKlaim();
$tgl = date('y');
if (is_array($kk) || is_object($kk)) {
foreach ($kk as $row) {
if ($row['KODE'] == null) {
return "INV/ITP-K/".$tgl."000001";
} else {
$str = (string) $row['KODE'];
$tgl_lama = substr($str, 10, -6);
if ($tgl_lama!=$tgl) {
return "INV/ITP-K/".$tgl."000001";
} else {
$panjang = 6;
$data = substr($str, 12, $panjang);
$ko = (int) $data + 1;
$str = (string) $ko;
$panjang = 18 - strlen($str);
$data = "INV/ITP-K/".$tgl."000000";
$data = substr($data, 0, $panjang) . $str;
return $data;
}
}
}
}
}
public function ubahnota_ASA1() { // [21]
$method = $this->input->post('method');
$id_snkpr = $this->input->post('id_snkpr');
$tgl_saleout = $this->input->post('tgl_saleout');
$id_pelanggan = $this->input->post('id_pelanggan');
$harga_snkpr = $this->input->post('harga_snkpr');
$datSnkpr = $this->Klaim->getData_SnKlaimProgram_byID($id_snkpr);
if ($datSnkpr==FALSE OR $datSnkpr[0]['STATUS_SNKPR']!=1) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$harga_snkpr = str_replace(',', '.', $harga_snkpr);
$check_nilai = is_numeric($harga_snkpr);
if ($check_nilai==FALSE) {
$harga_snkpr = 0;
}
if ($harga_snkpr<=0) {
$this->session->set_flashdata('not_zero_negative', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($datSnkpr[0]['NOTA_SNKPR']==NULL) {
$nota_snkpr = $this->kodeINVKlaim();
$update = [
'PEL_ID' => $id_pelanggan,
'TGL_SALEOUT' => $tgl_saleout,
'HARGA_SNKPR' => $harga_snkpr,
'NOTA_SNKPR' => $nota_snkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $id_snkpr);
} else {
$update = [
'PEL_ID' => $id_pelanggan,
'TGL_SALEOUT' => $tgl_saleout,
'HARGA_SNKPR' => $harga_snkpr
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $id_snkpr);
}
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 cetakNotaKlaim($id) { // [22]
$datKlaim = $this->Klaim->getData_SnKlaimProgram_forCetakNota($id);
$data = [
'klaim' => $datKlaim
];
$this->load->view('cetak/Nota_Klaim_ITP', $data);
}
public function bersihmassal_ASC2() { // [23]
$method = $this->input->post('method');
$snkpr = $this->input->post('snkprbersih');
foreach ($snkpr as $key) {
$datSnKpr = $this->Klaim->getData_SnKlaimProgram_byID($key);
if ($datSnKpr==FALSE OR $datSnKpr[0]['NOTA_SNKPR']==NULL OR $datSnKpr[0]['HARGA_SNKPR']==NULL OR $datSnKpr[0]['PEL_ID']==NULL OR $datSnKpr[0]['TGL_SALEOUT']==NULL) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
foreach ($snkpr as $key) {
$update = [
'KUNCI_SNKPR' => '1'
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $key);
}
if ($action) {
$this->session->set_flashdata('success', 'dibersihkan');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'dibersihkan');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function tarikulang_ASC2() { // [24]
$method = $this->input->post('method');
$id_snkpr = $this->input->post('id_snkpr');
$datSnKpr = $this->Klaim->getData_SnKlaimProgram_byID($id_snkpr);
if ($datSnKpr==FALSE OR $datSnKpr[0]['KUNCI_SNKPR']==NULL) {
$this->session->set_flashdata('data_changed', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'KUNCI_SNKPR' => NULL
];
$action = $this->Klaim->update('sn_klaimprogram', $update, 'ID_SNKPR', $id_snkpr);
if ($action) {
$this->session->set_flashdata('success', 'ditarik');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'ditarik');
redirect($_SERVER['HTTP_REFERER']);
}
}
}