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

598 lines
18 KiB
PHP

<?php
defined('BASEPATH') or exit('No direct script access allowed');
class ManageVisit extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('ModelVisit', 'Visit');
$this->load->model('ModelDashboard', 'Dashboard');
$this->load->model('AllModels', 'Amod');
$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 dataVisitUser_Sales_A1() { // [1]
$id_karyawan = $this->session->userdata('id_karyawan');
$visit = $this->Visit->getData_SalesVisit_bySALES_status0($id_karyawan);
$tgl = date('Y-m-d');
$tgl_now = date('d/m/Y');
$no = 0;
foreach ($visit as $key) {
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($key['ID_SAV']);
if ($datDsav==FALSE) {
$ket = NULL;
$status = NULL;
} else {
$ket = $datDsav[0]['KET_DSAV'];
$status = $datDsav[0]['STATUS_DSAV'];
}
$visit[$no] += ['KET' => $ket];
$visit[$no++] += ['STATUS' => $status];
}
$data = [
'sidebar' => "menu visitsales",
'navChild' => "visit laporansales",
'visit' => $visit,
'tgl' => $tgl,
'tgl_now' => $tgl_now,
'id_karyawan' => $id_karyawan,
];
$this->load->view('proses/VisitUser_Sales_A1', $data);
}
public function simpanvisit_SA1() { // [2]
$id_sav = $this->input->post('id');
$tgl_sav = $this->input->post('tgl_sav');
$nama_sav = $this->input->post('nama_sav');
$id_karyawan = $this->session->userdata('id_karyawan');
$nama_sav = strtoupper($nama_sav);
$input = [
'TGL_SAV' => $tgl_sav,
'SALES_ID' => $id_karyawan,
'NAMA_SAV' => $nama_sav,
'STATUS_SAV' => '0',
'AKUN_ID' => '0',
'KONTAK_ID' => '0',
'SO_ID' => '0'
];
$action = $this->Visit->create('sales_visit', $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 batalvisit_SA1() { // [3]
$id_sav = $this->input->post('id_savvoid');
$ket_batal = $this->input->post('ket_batal');
$ket_batal = preg_replace('/\R+/', " " , $ket_batal);
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav==FALSE OR $datSav[0]['STATUS_SAV']!="0") {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderASC($id_sav);
if ($datDsav==TRUE) {
$this->session->set_flashdata('data_used', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'KET_BATAL' => $ket_batal,
'STATUS_SAV' => '3',
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
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 dataVisitUser_Sales_A2($id) { // [4]
$id_karyawan = $this->session->userdata('id_karyawan');
$visit = $this->Visit->getData_DaftarSalesVisit_bySAV_orderASC($id);
$datAkun = $this->Visit->getData_Akun();
$datKontak = $this->Visit->getData_Kontak();
$datSo = $this->Visit->getData_SalesOrder_bySALES_status0_status1($id_karyawan);
$datSav = $this->Visit->getData_SalesVisit_byID($id);
$datDsavLast = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($id);
$tgl = date('Y-m-d');
if ($datDsavLast==FALSE) {
$status_dsav = NULL;
} else {
$status_dsav = $datDsavLast[0]['STATUS_DSAV'];
}
$diffawal = new DateTime($datSav[0]['TGL_SAV']);
if ($datSav[0]['SELESAI_SAV']==NULL) {
$diffakhir = new DateTime($tgl);
} else {
$diffakhir = new DateTime($datSav[0]['SELESAI_SAV']);
}
$diff = date_diff($diffawal, $diffakhir);
$diff = $diff->format("%a");
$datPda = $this->Visit->getData_PiutangDagang_bySO($datSav[0]['SO_ID']);
$pdaTrans0 = $this->Visit->getSum_PiutangDagang_bySO_transaksi0($datSav[0]['SO_ID']);
$pdaTrans1 = $this->Visit->getSum_PiutangDagang_bySO_transaksi1($datSav[0]['SO_ID']);
if ($pdaTrans0==FALSE) {
$debet = 0;
} else {
$debet = $pdaTrans0[0]['TOTAL'];
}
if ($pdaTrans1==FALSE) {
$kredit = 0;
} else {
$kredit = $pdaTrans1[0]['TOTAL'];
}
$sisa = $debet-$kredit;
$data = [
'sidebar' => "menu visitsales",
'navChild' => "visit laporansales",
'visit' => $visit,
'pda' => $datPda,
'count' => count($visit),
'akun' => $datAkun,
'kontak' => $datKontak,
'so' => $datSo,
'id_akun' => $datSav[0]['AKUN_ID'],
'id_kontak' => $datSav[0]['KONTAK_ID'],
'id_so' => $datSav[0]['SO_ID'],
'nama_sav' => $datSav[0]['NAMA_SAV'],
'tgl_sav' => $datSav[0]['TGL_SAV'],
'tanggal' => $datSav[0]['TANGGAL'],
'status_dsav' => $status_dsav,
'tgl' => $tgl,
'diff' => $diff,
'debet' => $debet,
'kredit' => $kredit,
'sisa' => $sisa,
'id_karyawan' => $id_karyawan,
'id_sav' => $id,
];
$this->load->view('proses/VisitUser_Sales_A2', $data);
}
public function simpanset_SA2() { // [5]
$id_sav = $this->input->post('id_sav');
$tgl_sav = $this->input->post('tgl_sav');
$id_akun = $this->input->post('id_akun');
$id_kontak = $this->input->post('id_kontak');
$id_so = $this->input->post('id_so');
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav==FALSE OR $datSav[0]['STATUS_SAV']!="0") {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($datSav[0]['KONTAK_ID']!=0 AND $datSav[0]['AKUN_ID']!=0) {
if ($id_akun!=$datSav[0]['AKUN_ID']) {
$this->session->set_flashdata('akun_notvalid', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
if ($id_kontak!="") {
$datKontak = $this->Visit->getData_Kontak($id_kontak);
$id_akun = $datKontak[0]['AKUN_ID'];
}
$update = [
'TGL_SAV' => $tgl_sav,
'AKUN_ID' => $id_akun,
'KONTAK_ID' => $id_kontak,
'SO_ID' => $id_so,
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
if ($action) {
$this->session->set_flashdata('success', 'disimpan');
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->session->set_flashdata('failed', 'disimpan');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function simpanvisit_SA2() { // [6]
$id_sav = $this->input->post('id_sav');
$tgl_dsav = $this->input->post('tgl_dsav');
$ket_dsav = $this->input->post('ket_dsav');
$status_dsav = $this->input->post('status_dsav');
$timer_dsav = $this->input->post('timer_dsav');
$id_karyawan = $this->session->userdata('id_karyawan');
if ($timer_dsav<=$tgl_dsav) {
$this->session->set_flashdata('date_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav==FALSE OR $datSav[0]['STATUS_SAV']!="0") {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($status_dsav==1) {
if ($datSav[0]['AKUN_ID']==0) {
$this->session->set_flashdata('akun_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav>=2 OR $status_dsav<=8) {
if ($datSav[0]['KONTAK_ID']==0) {
$this->session->set_flashdata('kontak_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav==9) {
if ($datSav[0]['SO_ID']==0) {
$this->session->set_flashdata('so_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav==10) {
if ($datSav[0]['AKUN_ID']==0 OR $datSav[0]['KONTAK_ID']==0 OR $datSav[0]['SO_ID']==0) {
$this->session->set_flashdata('lock_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$ket_dsav = preg_replace('/\R+/', " " , $ket_dsav);
$input = [
'SAV_ID' => $id_sav,
'KARYAWAN_ID' => $id_karyawan,
'TGL_DSAV' => $tgl_dsav,
'KET_DSAV' => $ket_dsav,
'TIMER_DSAV' => $timer_dsav,
'STATUS_DSAV' => $status_dsav,
];
$action = $this->Visit->create('daftar_salesvisit', $input);
$id_dsav = $this->Visit->getID_DaftarSalesVisitMax();
$id_dsav = $id_dsav[0]['ID_DSAV'];
$input = [
'TGL_NOTIFIKASI' => $timer_dsav,
'JENIS_NOTIFIKASI' => '7',
'KET_NOTIFIKASI' => $datSav[0]['NAMA_SAV'],
'DSAV_ID' => $id_dsav
];
$action = $this->Visit->create('notifikasi', $input);
$id_notifikasi = $this->Visit->getID_NotifikasiMax();
$id_notifikasi = $id_notifikasi[0]['ID_NOTIFIKASI'];
$input = [
'KARYAWAN_ID' => $id_karyawan,
'NOTIFIKASI_ID' => $id_notifikasi,
'STATUS' => '1',
];
$action = $this->Visit->create('log_notifikasi', $input);
$update = [
'REMINDER_SAV' => $timer_dsav
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
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 ubahvisit_SA2() { // [7]
$id_sav = $this->input->post('id_saved');
$id_dsav = $this->input->post('id_dsaved');
$tgl_dsav = $this->input->post('tgl_dsaved');
$ket_dsav = $this->input->post('ket_dsaved');
$status_dsav = $this->input->post('status_dsaved');
$timer_dsav = $this->input->post('timer_dsaved');
$id_karyawan = $this->session->userdata('id_karyawan');
if ($timer_dsav<=$tgl_dsav) {
$this->session->set_flashdata('date_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav==FALSE OR $datSav[0]['STATUS_SAV']!="0") {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datDsav = $this->Visit->getData_DaftarSalesVisit_byID($id_dsav);
if ($datDsav==FALSE) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$checkDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($id_sav);
if ($checkDsav[0]['ID_DSAV']!=$id_dsav) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($status_dsav==1) {
if ($datSav[0]['AKUN_ID']==0) {
$this->session->set_flashdata('akun_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav>=2 OR $status_dsav<=8) {
if ($datSav[0]['KONTAK_ID']==0) {
$this->session->set_flashdata('kontak_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav==9) {
if ($datSav[0]['SO_ID']==0) {
$this->session->set_flashdata('so_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
} else if ($status_dsav==10) {
if ($datSav[0]['AKUN_ID']==0 OR $datSav[0]['KONTAK_ID']==0 OR $datSav[0]['SO_ID']==0) {
$this->session->set_flashdata('lock_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
}
$ket_dsav = preg_replace('/\R+/', " " , $ket_dsav);
$update = [
'KARYAWAN_ID' => $id_karyawan,
'TGL_DSAV' => $tgl_dsav,
'KET_DSAV' => $ket_dsav,
'TIMER_DSAV' => $timer_dsav,
'STATUS_DSAV' => $status_dsav,
];
$action = $this->Visit->update('daftar_salesvisit', $update, 'ID_DSAV', $id_dsav);
$datNotifikasi = $this->Visit->getData_Notifikasi_byDSAV($id_dsav);
$update = [
'TGL_NOTIFIKASI' => $timer_dsav
];
$action = $this->Visit->update('notifikasi', $update, 'ID_NOTIFIKASI', $datNotifikasi[0]['ID_NOTIFIKASI']);
$update = [
'STATUS' => '1'
];
$action = $this->Visit->update('log_notifikasi', $update, 'NOTIFIKASI_ID', $datNotifikasi[0]['ID_NOTIFIKASI']);
$update = [
'REMINDER_SAV' => $timer_dsav
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
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 hapusvisit_SA2() { // [8]
$id_dsav = $this->input->post('id_dsavdel');
$id_karyawan = $this->session->userdata('id_karyawan');
$datDsav = $this->Visit->getData_DaftarSalesVisit_byID($id_dsav);
if ($datDsav==FALSE) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$checkDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($datDsav[0]['SAV_ID']);
if ($checkDsav[0]['ID_DSAV']!=$id_dsav) {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datNotifikasi = $this->Visit->getData_Notifikasi_byDSAV($id_dsav);
$action = $this->Visit->delete('log_notifikasi', $datNotifikasi[0]['ID_NOTIFIKASI'], 'NOTIFIKASI_ID');
$action = $this->Visit->delete('notifikasi', $datNotifikasi[0]['ID_NOTIFIKASI'], 'ID_NOTIFIKASI');
$action = $this->Visit->delete('daftar_salesvisit', $id_dsav, 'ID_DSAV');
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 kuncivisit_SA2() { // [9]
$id_sav = $this->input->post('id_sav');
$id_so = $this->input->post('id_so');
$sisa = $this->input->post('sisa');
$tgl = date('Y-m-d');
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav[0]['KONTAK_ID']==0 OR $datSav[0]['AKUN_ID']==0 OR $datSav[0]['SO_ID']==0) {
$this->session->set_flashdata('lock_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($id_sav);
if ($datDsav[0]['STATUS_DSAV']!=10) {
$this->session->set_flashdata('ten_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$checkSo = $this->Visit->getData_SalesOrder_byID_status0_status1($id_so);
if ($checkSo==FALSE) {
$this->session->set_flashdata('so_status_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
if ($sisa>0) {
$this->session->set_flashdata('piutang_error', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$update = [
'STATUS_SAV' => '1',
'STATUS_AKHIR' => '10',
'SELESAI_SAV' => $tgl
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
if ($action) {
$this->session->set_flashdata('data_lock', 'dikunci');
redirect('ManageVisit/dataVisitUser_Sales_A1');
} else {
$this->session->set_flashdata('failed', 'dikunci');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function takeoutvisit_SA2() { // [10]
$id_sav = $this->input->post('id_sav');
$ket_batal = $this->input->post('ket_batal');
$tgl = date('Y-m-d');
$datSav = $this->Visit->getData_SalesVisit_byID($id_sav);
if ($datSav==FALSE OR $datSav[0]['STATUS_SAV']!="0") {
$this->session->set_flashdata('latest', 'error');
redirect($_SERVER['HTTP_REFERER']);
}
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($id_sav);
$ket_batal = preg_replace('/\R+/', " " , $ket_batal);
$update = [
'STATUS_SAV' => '2',
'SELESAI_SAV' => $tgl,
'KET_BATAL' => $ket_batal,
'STATUS_AKHIR' => $datDsav[0]['STATUS_DSAV']
];
$action = $this->Visit->update('sales_visit', $update, 'ID_SAV', $id_sav);
if ($action) {
$this->session->set_flashdata('data_lock', 'Take Out');
redirect('ManageVisit/dataVisitUser_Sales_A1');
} else {
$this->session->set_flashdata('failed', 'Take Out');
redirect($_SERVER['HTTP_REFERER']);
}
}
public function dataRekapVisit_Sales_A1($id_karyawan=null) { // [11]
$id_kar = $this->session->userdata('id_karyawan');
$datKaryawan = $this->Visit->getData_Karyawan_SalesOnly_NonFree();
if ($id_karyawan==null) {
$datSav = $this->Visit->getData_SalesVisit_bySALES_status1_status2();
} else {
$datSav = $this->Visit->getData_SalesVisit_bySALES_status1_status2($id_karyawan);
}
$stat01 = 0; $stat02 = 0; $stat03 = 0; $stat04 = 0; $stat05 = 0;
$stat06 = 0; $stat07 = 0; $stat08 = 0; $stat09 = 0; $stat10 = 0;
foreach ($datSav as $key) {
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($key['ID_SAV']);
if ($datDsav[0]['STATUS_DSAV']=="1") {
$stat01++;
} else if ($datDsav[0]['STATUS_DSAV']=="2") {
$stat02++;
} else if ($datDsav[0]['STATUS_DSAV']=="3") {
$stat03++;
} else if ($datDsav[0]['STATUS_DSAV']=="4") {
$stat04++;
} else if ($datDsav[0]['STATUS_DSAV']=="5") {
$stat05++;
} else if ($datDsav[0]['STATUS_DSAV']=="6") {
$stat06++;
} else if ($datDsav[0]['STATUS_DSAV']=="7") {
$stat07++;
} else if ($datDsav[0]['STATUS_DSAV']=="8") {
$stat08++;
} else if ($datDsav[0]['STATUS_DSAV']=="9") {
$stat09++;
} else if ($datDsav[0]['STATUS_DSAV']=="10") {
$stat10++;
}
}
$data = [
'sidebar' => "menu visitsales",
'navChild' => "visit rekaplaporan",
'id_kar' => $id_kar,
'id_karyawan' => $id_karyawan,
'karyawan' => $datKaryawan,
'stat01' => $stat01,
'stat02' => $stat02,
'stat03' => $stat03,
'stat04' => $stat04,
'stat05' => $stat05,
'stat06' => $stat06,
'stat07' => $stat07,
'stat08' => $stat08,
'stat09' => $stat09,
'stat10' => $stat10,
];
$this->load->view('proses/VisitRekap_Sales_A1', $data);
}
public function dataRekapVisit_Sales_A2($id_karyawan, $bintang) { // [12]
$visit = $this->Visit->getData_SalesVisit_bySALES_byAKHIR($id_karyawan, $bintang);
$no = 0;
foreach ($visit as $key) {
$datDsav = $this->Visit->getData_DaftarSalesVisit_bySAV_orderDESC_limit1($key['ID_SAV']);
if ($datDsav==FALSE) {
$ket = NULL;
$status = NULL;
} else {
$ket = $datDsav[0]['KET_DSAV'];
$status = $datDsav[0]['STATUS_DSAV'];
}
$visit[$no] += ['KET' => $ket];
$visit[$no++] += ['STATUS' => $status];
}
if ($id_karyawan==0) {
$judul = "Semua Sales";
} else {
$datKaryawan = $this->Visit->getData_Karyawan_byID($id_karyawan);
$judul = $datKaryawan[0]['NAMA_PANGGILAN_KARYAWAN'];
}
$data = [
'sidebar' => "menu visitsales",
'navChild' => "visit rekaplaporan",
'id_karyawan' => $id_karyawan,
'visit' => $visit,
'judul' => $judul,
];
$this->load->view('proses/VisitRekap_Sales_A2', $data);
}
}