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

234 lines
7.4 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 ManageDpPembelian extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('ModelDpPembelian', 'DpPembelian');
$this->load->model('ModelHutangDagang', 'Hda');
$this->load->library(['datatables', 'form_validation']);
$this->form_validation->set_error_delimiters('', '');
}
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 index()
{
$dppembelian = $this->DpPembelian->getDataDpPembelian();
$hda = $this->Hda->getDataHutangDagangDetail();
$data = [
'sidebar' => "menu accounting",
'navChild' => "",
'dppembelian' => $dppembelian,
'hda' => $hda
];
$this->load->view('proses/DpPembelian', $data);
}
//Step Two, Input Transaksi
public function tambahTransaksi($id) {
$transaksi = $this->DpPembelian->getDataDetailDpPembelian($id);
$title = $this->DpPembelian->getTitleDPB($id);
$id_supplier = $this->Hda->getDataDPB($id);
$id_supplier = $id_supplier[0]['SUPPLIER_ID'];
$hda = $this->Hda->getDataHutangDagangDPB($id_supplier);
$data = [
'sidebar' => "menu accounting",
'navChild' => "",
'transaksi' => $transaksi,
'id_dpb' => $id,
'title1' => $title[0]['KODE_DPB'],
'title2' => $title[0]['DEBIT'],
'title3' => $title[0]['KREDIT'],
'hda' => $hda
];
$this->load->view('proses/DetailDpPembelian', $data);
}
public function kodeDetailDPB() {
$kk = $this->DpPembelian->getKodeDetailDPB();
if (is_array($kk) || is_object($kk)) {
foreach ($kk as $row) {
if ($row['KODE'] == null) {
return "DDPB/000001";
} else {
$str = (string) $row['KODE'];
$panjang = 6;
$data = substr($str, 5, $panjang);
$ko = (int) $data + 1;
$str = (string) $ko;
$panjang = 11 - strlen($str);
$data = "DDPB/000000";
$data = substr($data, 0, $panjang) . $str;
return $data;
}
}
}
}
public function kodeDetailHDA() {
$kk = $this->DpPembelian->getKodeDetailHDA();
if (is_array($kk) || is_object($kk)) {
foreach ($kk as $row) {
if ($row['KODE'] == null) {
return "DHDA/000001";
} else {
$str = (string) $row['KODE'];
$panjang = 6;
$data = substr($str, 5, $panjang);
$ko = (int) $data + 1;
$str = (string) $ko;
$panjang = 11 - strlen($str);
$data = "DHDA/000000";
$data = substr($data, 0, $panjang) . $str;
return $data;
}
}
}
}
public function savetransaksi() {
//Step Input Transaksi
$method = $this->input->post('method');
$id_ddpb = $this->input->post('id');
$id_dpb = $this->input->post('id_dpb');
$id_hda = $this->input->post('id_hda');
$debit_ddpb = $this->input->post('debit_ddpb');
$kode_ddpb = $this->kodeDetailDPB();
$kode_dhda = $this->kodeDetailHDA();
$datadpb = $this->DpPembelian->getDataDpPembelian($id_dpb);
$nominal_dpb = $datadpb[0]['NOMINAL_DPB'];
$blockcon_dpb = $datadpb[0]['BLOCKCON'];
$id_supplier = $datadpb[0]['SUPPLIER_ID'];
$sisa1 = $nominal_dpb-$blockcon_dpb;
$datahda = $this->DpPembelian->getDataHutangDagang($id_hda);
$nominal_hda = $datahda[0]['NOMINAL_HDA'];
$blockcon_hda = $datahda[0]['BLOCKCON'];
$sisa2 = $nominal_hda-$blockcon_hda;
if ($sisa1<$debit_ddpb) {
$this->session->set_flashdata('flashdpb', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
if ($sisa2<$debit_ddpb) {
$this->session->set_flashdata('flashhda', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
$input = [
'DPB_ID' => $id_dpb,
'HDA_ID' => $id_hda,
'DEBIT_DDPB' => $debit_ddpb,
'KODE_DDPB' => $kode_ddpb
];
$action = $this->DpPembelian->create('detail_dpb', $input);
$input = [
'KODE_BUKTI' => $kode_ddpb,
'HDA_ID' => $id_hda,
'DEBIT_DHDA' => $debit_ddpb,
'KODE_DHDA' => $kode_dhda
];
$action = $this->DpPembelian->create('detail_hda', $input);
//Step Ambil Data Lama
$id_ddpb = $this->DpPembelian->getIDDDPB();
$id_dhda = $this->DpPembelian->getIDDHDA();
$datadpb = $this->DpPembelian->getDataDPB($id_ddpb[0]['ID_DDPB']);
$blockcon_dpb = $datadpb[0]['BLOCKCON'];
$blockcon_dpb = $blockcon_dpb+$debit_ddpb;
$datahda = $this->DpPembelian->getDataHDA($id_dhda[0]['ID_DHDA']);
$blockcon_hda = $datahda[0]['BLOCKCON'];
$blockcon_hda = $blockcon_hda+$debit_ddpb;
$datasupplier = $this->DpPembelian->getDataSupplier($id_supplier);
$piutang_supplier = $datasupplier[0]['PIUTANG_SUPPLIER'];
$saldo_supplier = $datasupplier[0]['SALDO_SUPPLIER'];
$piutang_supplier = $piutang_supplier-$debit_ddpb;
$saldo_supplier = $saldo_supplier-$debit_ddpb;
$update = [
'BLOCKCON' => $blockcon_dpb
];
$action = $this->DpPembelian->update('dp_pembelian', $update, 'ID_DPB', $id_dpb);
$update = [
'BLOCKCON' => $blockcon_hda
];
$action = $this->DpPembelian->update('hutang_dagang', $update, 'ID_HDA', $id_hda);
$update = [
'PIUTANG_SUPPLIER' => $piutang_supplier,
'SALDO_SUPPLIER' => $saldo_supplier
];
$action = $this->DpPembelian->update('supplier', $update, 'ID_SUPPLIER', $id_supplier);
if ($action) {
$this->session->set_flashdata('flash', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('flashgagal', 'ditambah');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function resetdpb() {
$id = $this->input->post('id');
//Step Reset Saldo Data Blockcon di DPB dan HDA
$dataddpb = $this->DpPembelian->getDataDDPB($id);
$id_dpb = $dataddpb[0]['DPB_ID'];
$id_hda = $dataddpb[0]['HDA_ID'];
$debit_ddpb = $dataddpb[0]['DEBIT_DDPB'];
$kode_ddpb = $dataddpb[0]['KODE_DDPB'];
$datadpb = $this->DpPembelian->getDpPembelian($id_dpb);
$id_supplier = $datadpb[0]['SUPPLIER_ID'];
$blockcon_dpb = $datadpb[0]['BLOCKCON'];
$blockcon_dpb = $blockcon_dpb-$debit_ddpb;
$datahda = $this->DpPembelian->getDataHutangDagang($id_hda);
$blockcon_hda = $datahda[0]['BLOCKCON'];
$blockcon_hda = $blockcon_hda-$debit_ddpb;
$datasupplier = $this->DpPembelian->getDataSupplier($id_supplier);
$piutang_supplier = $datasupplier[0]['PIUTANG_SUPPLIER'];
$saldo_supplier = $datasupplier[0]['SALDO_SUPPLIER'];
$piutang_supplier = $piutang_supplier+$debit_ddpb;
$saldo_supplier = $saldo_supplier+$debit_ddpb;
$update = [
'BLOCKCON' => $blockcon_dpb
];
$action = $this->DpPembelian->update('dp_pembelian', $update, 'ID_DPB', $id_dpb);
$update = [
'BLOCKCON' => $blockcon_hda
];
$action = $this->DpPembelian->update('hutang_dagang', $update, 'ID_HDA', $id_hda);
$update = [
'PIUTANG_SUPPLIER' => $piutang_supplier,
'SALDO_SUPPLIER' => $saldo_supplier
];
$action = $this->DpPembelian->update('supplier', $update, 'ID_SUPPLIER', $id_supplier);
//Step Hapus Data
$action = $this->DpPembelian->delete('detail_dpb',$id,'ID_DDPB');
$action = $this->DpPembelian->hapusDetailHda($kode_ddpb);
$this->session->set_flashdata('flash', 'direset');
redirect($_SERVER['HTTP_REFERER']);
}
}