1318 lines
46 KiB
PHP
1318 lines
46 KiB
PHP
<?php
|
|
if (session_status() !== PHP_SESSION_ACTIVE) {
|
|
// ini_set('session.gc_maxlifetime', 10800);
|
|
// ini_set('session.gc_probability', 1);
|
|
// ini_set('session.gc_divisor', 100);
|
|
// ini_set('session.use_strict_mode', 1);
|
|
// ini_set('session.cookie_httponly', 1);
|
|
// ini_set('session.name','SIMRSV1');
|
|
// ini_set('session.cookie_samesite','Strict');
|
|
|
|
session_start();
|
|
$lifetime=60 * 60 * 24 * 365;
|
|
setcookie(session_name(),session_id(),time()+$lifetime);
|
|
}
|
|
$path = realpath(dirname(__FILE__));
|
|
require_once $path.'/../include/config.php';
|
|
require_once $path.'/../include/function.php';
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
require_once 'db.php';
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
require_once 'PostgresDb.php';
|
|
}
|
|
require_once 'pagination.php';
|
|
require_once 'pagination_big.php';
|
|
require_once $path.'/../include/request.php';
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$db = new db();
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db = new PostgresDb();
|
|
}
|
|
require_once 'Billing.php';
|
|
require_once ($path.'/../vendor/autoload.php');
|
|
use Verot\Upload\Upload;
|
|
|
|
$tmp_profil = $db->query("SELECT * from profil");
|
|
if($tmp_profil)
|
|
{
|
|
if($tmp_profil->numRows() > 0)
|
|
{
|
|
$arr_profil = $tmp_profil->fetchAll();
|
|
$data = $arr_profil[0];
|
|
$rstitle = $data['rstitle'];
|
|
$singrstitl = $data['singrstitl'];
|
|
$singhead1 = $data['singhead1'];
|
|
$singsurat = $data['singsurat'];
|
|
$header1 = $data['header1'];
|
|
$header2 = $data['header2'];
|
|
$header3 = $data['header3'];
|
|
$header4 = $data['header4'];
|
|
$KDRS = $data['kdrs'];
|
|
$KelasRS = $data['kelasrs'];
|
|
$NamaRS = $data['namars'];
|
|
$KDTarifINACBG = $data['kdtarifnacbg'];
|
|
}
|
|
}
|
|
|
|
$global_var = 'SELECT * FROM global_var';
|
|
$sql = $db->query($global_var);
|
|
if($sql->numRows() > 0){
|
|
foreach($sql->fetchAll() as $data_row){
|
|
$_SESSION[$data_row['var_name']] = $data_row['var_value'];
|
|
}
|
|
}
|
|
|
|
// Dev Lib
|
|
$bootstrap_css = '<link href="'._LIB_.'bootstrap-4.1.3/css/bootstrap.min.css" rel="stylesheet">';
|
|
$bootstrap_js = '<script src="'._LIB_.'bootstrap-4.1.3/js/bootstrap.bundle.min.js" type="text/javascript"></script>';
|
|
$select2_css = '<link href="'._LIB_.'select2/dist/css/select2.min.css" rel="stylesheet" />';
|
|
$select2_js = '<script src="'._LIB_.'select2/dist/js/select2.min.js"></script>';
|
|
$jquery_js = '<script src="'._LIB_.'jquery-3.3.1/jquery-3.3.1.min.js"></script>';
|
|
$jquery_validation_js = '<script src="'._LIB_.'jquery-validation-1.17.0/dist/jquery.validate.min.js"></script>';
|
|
$datatable_css = '<link href="'._LIB_.'DataTables/DataTables-1.10.18/css/jquery.dataTables.min.css" rel="stylesheet" />';
|
|
$datatable_bootstrap4_css = '<link href="'._LIB_.'DataTables/DataTables-1.10.18/css/dataTables.bootstrap4.min.css" rel="stylesheet" />';
|
|
$datatable_js = '<script src="'._LIB_.'DataTables/DataTables-1.10.18/js/jquery.dataTables.min.js"></script>';
|
|
$datatable_bootstrap4_js = '<script src="'._LIB_.'DataTables/DataTables-1.10.18/js/dataTables.bootstrap4.min.js"></script>';
|
|
$datatable_pipeline = '<script src="'._LIB_.'datatable-pipeline.js"></script>';
|
|
$datepicker_css = '<link href="'._LIB_.'bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css" rel="stylesheet"/>';
|
|
$datepicker_js = '<script src="'._LIB_.'bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>';
|
|
$datepicker_id_js = '<script src="'._LIB_.'bootstrap-datepicker/dist/locales/bootstrap-datepicker.id.min.js"></script>';
|
|
$inputmask_js = '<script src="'._LIB_.'Inputmask/dist/min/jquery.inputmask.bundle.min.js"></script>';
|
|
$typeahead_js = '<script src="'._LIB_.'typeahead.js/dist/typeahead.bundle.js"></script>';
|
|
$floatthead_js = '<script src="'._LIB_.'floatthead/jquery.floatThead.min.js"></script>';
|
|
$autocomplete_js = '<script src="'._LIB_.'jquery.autocomplete.pack.js"></script>';
|
|
$typeahead_css = '<link href="'._LIB_.'typeahead.js/dist/typeahead.css" rel="stylesheet">';
|
|
$fontawesome_4_7_css = '<link href="'._LIB_.'font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet">';
|
|
$fontawesome_css = '<link href="'._LIB_.'fontawesome-free-5.10.2-web/css/all.min.css" rel="stylesheet">';
|
|
$datetimepicker_css = '<link href="'._LIB_.'bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet"/>';
|
|
$datetimepicker_js = '<script src="'._LIB_.'bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js"></script>';
|
|
|
|
$froala_js = '<script src="'._LIB_.'froala_editor_4.0.4/js/froala_editor.pkgd.js"></script>';
|
|
$froala_js .= "\n".'<script src="'._LIB_.'froala_editor_4.0.4/js/plugins/font_family.min.js"></script>';
|
|
$froala_js .= "\n".'<script src="'._LIB_.'froala_editor_4.0.4/js/plugins/font_size.min.js"></script>';
|
|
$froala_js .= "\n".'<script src="'._LIB_.'froala_editor_4.0.4/js/plugins/table.min.js"></script>';
|
|
$froala_js .= "\n".'<script src="'._LIB_.'froala_editor_4.0.4/js/plugins/special_characters.min.js"></script>';
|
|
$froala_css = '<link href="'._LIB_.'froala_editor_4.0.4/css/froala_editor.pkgd.min.css" rel="stylesheet">';
|
|
$froala_css .= "\n".'<link href="'._LIB_.'froala_editor_4.0.4/css/themes/gray.min.css" rel="stylesheet">';
|
|
$froala_css .= "\n".'<link href="'._LIB_.'froala_editor_4.0.4/css/plugins/special_characters.min.css" rel="stylesheet">';
|
|
|
|
// datagrid easyui
|
|
$easyui_js = '<script src="'._LIB_.'jquery-easyui-1.6.10/jquery.easyui.min.js"></script>';
|
|
$easyui_js .= "\n".'<script src="'._LIB_.'jquery-easyui-1.6.10/easyloader.js"></script>';
|
|
$easyui_js .= "\n".'<script src="'._LIB_.'jquery-easyui-1.6.10/jquery-easyui-edatagrid/jquery.edatagrid.js"></script>';
|
|
$easyui_js .= '<script src="'._LIB_.'jquery-easyui-1.6.10/datagrid-filter.js"></script>';
|
|
$easyui_css = '<link href="'._LIB_.'jquery-easyui-1.6.10/themes/material-teal/easyui.css" rel="stylesheet">';
|
|
$easyui_css .= "\n".'<link href="'._LIB_.'jquery-easyui-1.6.10/themes/icon.css" rel="stylesheet">';
|
|
|
|
$sweetalert_js = '<script src="'._LIB_.'sweetalert2-8.0.1/dist/sweetalert2.all.min.js"></script>';
|
|
$slick_css = '<link href="'._LIB_.'slick-1.8.1/slick/slick.css" rel="stylesheet">';
|
|
$slick_css .= '<link href="'._LIB_.'slick-1.8.1/slick/slick-theme.css" rel="stylesheet">';
|
|
$slick_js = '<script src="'._LIB_.'slick-1.8.1/slick/slick.min.js"></script>';
|
|
$jspm_js = '<script src="'._LIB_.'JSPrintManager/scripts/zip.js"></script>';
|
|
$jspm_js .= '<script src="'._LIB_.'JSPrintManager/scripts/zip-ext.js"></script>';
|
|
$jspm_js .= '<script src="'._LIB_.'JSPrintManager/scripts/deflate.js"></script>';
|
|
$jspm_js .= '<script src="'._LIB_.'JSPrintManager/scripts/JSPrintManager.js?v=2"></script>';
|
|
$navigation_css = '<link href="css/dropdown/dropdown.css" media="all" rel="stylesheet" type="text/css" />';
|
|
$navigation_css .= '<link href="css/dropdown/themes/default/default.css" media="all" rel="stylesheet" type="text/css" />';
|
|
|
|
$add_to_cart_css = '<link href="'._BASE_.'css/quick-add-to-cart.css" rel="stylesheet">';
|
|
$mdb_js = '<script src="'._LIB_.'MDB/js/mdb.min.js"></script>';
|
|
$mdb_css = '<link href="'._LIB_.'MDB/css/mdb.min.css" rel="stylesheet"><link href="'._LIB_.'MDB/css/style.css" rel="stylesheet">';
|
|
$typit_js = '<script src="'._LIB_.'typeit/typeit.min.js"></script>';
|
|
$typing_js = '<script src="'._LIB_.'typing.js"></script>';
|
|
$chat_css = '<link href="'._LIB_.'bootstrap-chatbox/chatbox.css?v=1" rel="stylesheet">';
|
|
$chat_js = '<script src="'._LIB_.'bootstrap-chatbox/chatbox.js"></script>';
|
|
$calculator_css = '<link href="'._LIB_.'calculator/jquery.calculator.alt.css" rel="stylesheet">';
|
|
$calculator_js = '<script src="'._LIB_.'calculator/jquery.plugin.min.js"></script> <script src="'._LIB_.'calculator/jquery.calculator.min.js"></script>';
|
|
|
|
$main_js = '<script src="'._LIB_.'main.js?v=1.3"></script>';
|
|
|
|
$jspm_rawprint = 'var clientPrinters = null;
|
|
var _this = this;
|
|
|
|
JSPM.JSPrintManager.auto_reconnect = true;
|
|
JSPM.JSPrintManager.start();
|
|
JSPM.JSPrintManager.WS.onStatusChanged = function () {
|
|
if (jspmWSStatus()) {
|
|
console.log("JSPM Status = "+jspmWSStatus());
|
|
}
|
|
};
|
|
|
|
function jspmWSStatus() {
|
|
if (JSPM.JSPrintManager.websocket_status == JSPM.WSStatus.Open)
|
|
return true;
|
|
else if (JSPM.JSPrintManager.websocket_status == JSPM.WSStatus.Closed) {
|
|
console.log("JSPrintManager (JSPM) is not installed or not running! Download JSPM Client App from https://neodynamic.com/downloads/jspm");
|
|
return false;
|
|
}
|
|
else if (JSPM.JSPrintManager.websocket_status == JSPM.WSStatus.BlackListed) {
|
|
console.log("JSPM has blacklisted this website!");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function jspm_print_raw(file_to_print) {
|
|
if (jspmWSStatus()) {
|
|
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
var myPrinter = new JSPM.DefaultPrinter;
|
|
|
|
cpj.clientPrinter = myPrinter;
|
|
|
|
cpj.printerCommands = file_to_print;
|
|
|
|
cpj.sendToClient();
|
|
}
|
|
}
|
|
function jspm_print_tracer(file_to_print) {
|
|
get_shared_printer = Cookies.get(\'shared_printer_tracer\');
|
|
get_local_printer = Cookies.get(\'local_printer_tracer\');
|
|
|
|
if (jspmWSStatus() && get_local_printer != "") {
|
|
if(get_shared_printer != get_local_printer) {
|
|
console.log("Printer Beda");
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
cpj.clientPrinter = new JSPM.InstalledPrinter(get_local_printer);
|
|
|
|
cpj.printerCommands = file_to_print+file_to_print; /* 2 kali */
|
|
|
|
var cpj2 = new JSPM.ClientPrintJob();
|
|
|
|
cpj2.clientPrinter = new JSPM.InstalledPrinter(get_shared_printer);
|
|
|
|
cpj2.printerCommands = file_to_print;
|
|
|
|
var cpjg = new JSPM.ClientPrintJobGroup();
|
|
cpjg.jobs.push(cpj);
|
|
cpjg.jobs.push(cpj2);
|
|
cpjg.sendToClient();
|
|
}
|
|
else if(get_shared_printer == get_local_printer) {
|
|
console.log("Printer Sama");
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
cpj.clientPrinter = new JSPM.InstalledPrinter(get_local_printer);
|
|
|
|
cpj.printerCommands = file_to_print;
|
|
|
|
cpj.sendToClient();
|
|
}
|
|
|
|
}
|
|
else {
|
|
alert("Printer Ke 2 Tidak terdeteksi, silakan setup ulang printer tracer");
|
|
}
|
|
}
|
|
|
|
function jspm_print_tracer_pdf(file_to_print) {
|
|
get_shared_printer = Cookies.get(\'shared_printer_tracer\');
|
|
get_local_printer = Cookies.get(\'local_printer_tracer\');
|
|
|
|
if (jspmWSStatus() && get_local_printer != "") {
|
|
if(get_shared_printer != get_local_printer) {
|
|
console.log("Printer Beda");
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
cpj.clientPrinter = new JSPM.InstalledPrinter(get_local_printer);
|
|
|
|
/*cpj.printerCommands = file_to_print;*/
|
|
var the_file1 = new JSPM.PrintFilePDF(file_to_print, JSPM.FileSourceType.URL, "Tracer 1.pdf", 1);
|
|
the_file1.printRotation = "None";
|
|
|
|
cpj.files.push(the_file1);
|
|
|
|
var cpj2 = new JSPM.ClientPrintJob();
|
|
|
|
cpj2.clientPrinter = new JSPM.InstalledPrinter(get_shared_printer);
|
|
|
|
var the_file = new JSPM.PrintFilePDF(file_to_print, JSPM.FileSourceType.URL, "Tracer 2-3.pdf", 1);
|
|
the_file.printRotation = "None";
|
|
|
|
cpj2.files.push(the_file);
|
|
cpj2.files.push(the_file);
|
|
|
|
var cpjg = new JSPM.ClientPrintJobGroup();
|
|
cpjg.jobs.push(cpj);
|
|
cpjg.jobs.push(cpj2);
|
|
cpjg.sendToClient();
|
|
}
|
|
else if(get_shared_printer == get_local_printer) {
|
|
console.log("Printer Sama");
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
cpj.clientPrinter = new JSPM.InstalledPrinter(get_local_printer);
|
|
|
|
var the_file = new JSPM.PrintFilePDF(file_to_print, JSPM.FileSourceType.URL, "Tracer.pdf", 1);
|
|
the_file.printRotation = "None";
|
|
|
|
cpj.files.push(the_file);
|
|
cpj.sendToClient();
|
|
}
|
|
|
|
}
|
|
else {
|
|
alert("Printer Ke 2 Tidak terdeteksi, silakan setup ulang printer tracer");
|
|
}
|
|
}
|
|
';
|
|
|
|
$jspm_init ='
|
|
function jspm_print_pdf(file_to_print,file_name) {
|
|
if (jspmWSStatus()) {
|
|
var cpj = new JSPM.ClientPrintJob();
|
|
|
|
var myPrinter = new JSPM.DefaultPrinter;
|
|
|
|
cpj.clientPrinter = myPrinter;
|
|
|
|
var the_file = new JSPM.PrintFilePDF(file_to_print, JSPM.FileSourceType.URL, file_name, 1);
|
|
the_file.printerPaperName = "1/2";
|
|
the_file.printRotation = "None";
|
|
|
|
cpj.files.push(the_file);
|
|
|
|
cpj.sendToClient();
|
|
}
|
|
}
|
|
|
|
function jspm_print(file_to_print,modal_id,file_name,is_raw,callback) {
|
|
|
|
jQuery("#"+modal_id+" #print_body").html("<div style=\"position:relative;overflow:hidden\"><embed src=\""+file_to_print+"#toolbar=0\" width=\"100%\" height=\"450\" id=\"embed_pdf\"></embed><div style=\"position: absolute; top: 0; left: 0; bottom: 0; right: 0;\"></div></div>");
|
|
jQuery("#"+modal_id+" .btn-success").click(function() {
|
|
jspm_print_pdf(file_to_print,file_name);
|
|
}).hide();
|
|
jQuery("#"+modal_id).modal("show");
|
|
if(typeof callback == "function") {
|
|
callback();
|
|
}
|
|
|
|
}
|
|
function jspm_print_with_toolbar(file_to_print,modal_id,file_name,is_raw,callback) {
|
|
|
|
jQuery("#"+modal_id+" #print_body").html("<div style=\"position:relative;overflow:hidden\"><embed src=\""+file_to_print+"\" width=\"100%\" height=\"450\" id=\"embed_pdf\"></embed></div>");
|
|
jQuery("#"+modal_id+" .btn-success").click(function() {
|
|
jspm_print_pdf(file_to_print,file_name);
|
|
}).hide();
|
|
jQuery("#"+modal_id).modal("show");
|
|
if(typeof callback == "function") {
|
|
callback();
|
|
}
|
|
|
|
}
|
|
';
|
|
|
|
$datagrid_init = '(function($){
|
|
function pagerFilter(data){
|
|
if ($.isArray(data)){
|
|
data = {
|
|
total: data.length,
|
|
rows: data
|
|
}
|
|
}
|
|
var target = this;
|
|
var dg = $(target);
|
|
var state = dg.data("datagrid");
|
|
var opts = dg.datagrid("options");
|
|
if (!state.allRows){
|
|
state.allRows = (data.rows);
|
|
}
|
|
if (!opts.remoteSort && opts.sortName){
|
|
var names = opts.sortName.split(",");
|
|
var orders = opts.sortOrder.split(",");
|
|
state.allRows.sort(function(r1,r2){
|
|
var r = 0;
|
|
for(var i=0; i<names.length; i++){
|
|
var sn = names[i];
|
|
var so = orders[i];
|
|
var col = $(target).datagrid("getColumnOption", sn);
|
|
var sortFunc = col.sorter || function(a,b){
|
|
return a==b ? 0 : (a>b?1:-1);
|
|
};
|
|
r = sortFunc(r1[sn], r2[sn]) * (so=="asc"?1:-1);
|
|
if (r != 0){
|
|
return r;
|
|
}
|
|
}
|
|
return r;
|
|
});
|
|
}
|
|
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
|
|
var end = start + parseInt(opts.pageSize);
|
|
data.rows = state.allRows.slice(start, end);
|
|
return data;
|
|
}
|
|
|
|
var loadDataMethod = $.fn.datagrid.methods.loadData;
|
|
var deleteRowMethod = $.fn.datagrid.methods.deleteRow;
|
|
$.extend($.fn.datagrid.methods, {
|
|
clientPaging: function(jq){
|
|
return jq.each(function(){
|
|
var dg = $(this);
|
|
var state = dg.data("datagrid");
|
|
var opts = state.options;
|
|
opts.loadFilter = pagerFilter;
|
|
var onBeforeLoad = opts.onBeforeLoad;
|
|
opts.onBeforeLoad = function(param){
|
|
state.allRows = null;
|
|
return onBeforeLoad.call(this, param);
|
|
}
|
|
var pager = dg.datagrid("getPager");
|
|
pager.pagination({
|
|
onSelectPage:function(pageNum, pageSize){
|
|
opts.pageNumber = pageNum;
|
|
opts.pageSize = pageSize;
|
|
pager.pagination("refresh",{
|
|
pageNumber:pageNum,
|
|
pageSize:pageSize
|
|
});
|
|
dg.datagrid("loadData",state.allRows);
|
|
}
|
|
});
|
|
$(this).datagrid("loadData", state.data);
|
|
if (opts.url){
|
|
$(this).datagrid("reload");
|
|
}
|
|
});
|
|
},
|
|
loadData: function(jq, data){
|
|
jq.each(function(){
|
|
$(this).data("datagrid").allRows = null;
|
|
});
|
|
return loadDataMethod.call($.fn.datagrid.methods, jq, data);
|
|
},
|
|
deleteRow: function(jq, index){
|
|
return jq.each(function(){
|
|
var row = $(this).datagrid("getRows")[index];
|
|
deleteRowMethod.call($.fn.datagrid.methods, $(this), index);
|
|
var state = $(this).data("datagrid");
|
|
if (state.options.loadFilter == pagerFilter){
|
|
for(var i=0; i<state.allRows.length; i++){
|
|
if (state.allRows[i] == row){
|
|
state.allRows.splice(i,1);
|
|
break;
|
|
}
|
|
}
|
|
$(this).datagrid("loadData", state.allRows);
|
|
}
|
|
});
|
|
},
|
|
getAllRows: function(jq){
|
|
return jq.data("datagrid").allRows;
|
|
}
|
|
})
|
|
})(jQuery);';
|
|
|
|
if(array_key_exists('valid_nip', $_REQUEST) && $_REQUEST['NIP'] != '')
|
|
{
|
|
echo valid_nip($db->escape($_REQUEST['NIP']));
|
|
exit;
|
|
}
|
|
|
|
if(!function_exists('paginate')) {
|
|
function paginate($query)
|
|
{
|
|
// $totalQuery, $rowPerPage = 15, $linkPerPage = 5, $url_string
|
|
global $db;
|
|
$jml_args = func_num_args();
|
|
$args = func_get_args();
|
|
$args = array_slice($args, 1);
|
|
if($jml_args > 4) {
|
|
$is_total_query = (is_int($args[0])) ? FALSE : TRUE;
|
|
if($is_total_query){
|
|
$totalQuery = $args[0];
|
|
$rowPerPage = $args[1];
|
|
$linkPerPage = $args[2];
|
|
$url_string = $args[3];
|
|
$pager = new Pagination_big($db, $query, $totalQuery, $rowPerPage, $linkPerPage, $url_string);
|
|
}
|
|
else {
|
|
$rowPerPage = $args[0];
|
|
$linkPerPage = $args[1];
|
|
$url_string = $args[2];
|
|
$current = $args[3];
|
|
$pager = new Pagination($db, $query, $rowPerPage, $linkPerPage, $url_string, $current);
|
|
}
|
|
}
|
|
else {
|
|
$rowPerPage = $args[0];
|
|
$linkPerPage = $args[1];
|
|
$url_string = $args[2];
|
|
$current = (array_key_exists(3, $args)) ? $args[3] : 'index.php?link='.$_GET['link'].'&';
|
|
$pager = new Pagination($db, $query, $rowPerPage, $linkPerPage, $url_string, $current);
|
|
}
|
|
$pager->setDebug(TRUE);
|
|
$list = $pager->paginate();
|
|
return ['list'=>$list->fetchAll(),'nav'=>$pager->renderFullNav()];
|
|
}
|
|
}
|
|
|
|
if(!function_exists('bind_sql')) {
|
|
function bind_sql($input, $is_update = false, $use_override = false) {
|
|
$str_value = 'SET ';
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$arr_set = array();
|
|
foreach($input as $key => $value)
|
|
{
|
|
if(is_array($value)) {
|
|
$val = $value['value'];
|
|
$type = $value['type'];
|
|
|
|
if($type == 'number') {
|
|
$arr_set[] = $key." = ".$val;
|
|
}
|
|
}
|
|
else {
|
|
$arr_set[] = $key." ='".$value."'";
|
|
}
|
|
}
|
|
$str_value .= implode(",".PHP_EOL,$arr_set);
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$arr_column_set = $arr_value_set = $arr_update_set = [];
|
|
foreach($input as $key => $value)
|
|
{
|
|
if($is_update == true) {
|
|
if(is_array($value)) {
|
|
$val = $value['value'];
|
|
$type = $value['type'];
|
|
|
|
if($type == 'number') {
|
|
if($val == 'NULL' || $val == NULL) {
|
|
$arr_update_set[] = $key." = NULL";
|
|
}
|
|
else {
|
|
$arr_update_set[] = $key." = ".$val;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
$arr_update_set[] = $key." ='".$value."'";
|
|
}
|
|
}
|
|
else {
|
|
$arr_column_set[] = (preg_match("/[A-Z]/", $key)) ? '"'.$key.'"' : $key;
|
|
if(is_array($value)) {
|
|
if(array_key_exists('type', $value)) {
|
|
$val = $value['value'];
|
|
$type = $value['type'];
|
|
|
|
if($type == 'number') {
|
|
$arr_value_set[] = $val;
|
|
}
|
|
}
|
|
else {
|
|
foreach($value as $k => $v) {
|
|
if($v == '') {
|
|
unset($value[$k]);
|
|
}
|
|
}
|
|
$arr_value_set[] = '\'{"'.implode('","', $value).'"}\'';
|
|
}
|
|
}
|
|
else {
|
|
$arr_value_set[] = "'".$value."'";
|
|
}
|
|
}
|
|
}
|
|
|
|
if($is_update == true) {
|
|
$str_value .= implode(",".PHP_EOL,$arr_update_set);
|
|
}
|
|
else {
|
|
if($use_override == true) {
|
|
$str_value = '('.implode(',',$arr_column_set).') OVERRIDING SYSTEM VALUE VALUES ('.implode(',', $arr_value_set).')';
|
|
}else {
|
|
$str_value = '('.implode(',',$arr_column_set).') VALUES ('.implode(',', $arr_value_set).')';
|
|
}
|
|
}
|
|
}
|
|
|
|
return $str_value;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('datediff_sql')) {
|
|
function datediff_sql($type, $d1, $d2) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
if($type == 'day') {
|
|
if(preg_match("/".date('Y')."/", $d1) && preg_match("/".date('Y')."/", $d2))
|
|
{
|
|
$diff = "DATEDIFF('$d1','$d2')";
|
|
}
|
|
elseif(preg_match("/[a-zA-Z]/", $d1) && preg_match("/[a-zA-Z]/", $d2))
|
|
{
|
|
$diff = "DATEDIFF($d1,$d2)";
|
|
}
|
|
}
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
if($type == 'day') {
|
|
if(preg_match("/".date('Y')."/", $d1) && preg_match("/".date('Y')."/", $d2))
|
|
{
|
|
$diff = "DATE_PART('day','$d1'::timestamp-'$d2'::timestamp)";
|
|
}
|
|
elseif(preg_match("/[a-zA-Z]/", $d1) && preg_match("/[a-zA-Z]/", $d2))
|
|
{
|
|
$diff = "DATE_PART('day',$d1::timestamp-$d2::timestamp)";
|
|
}
|
|
}
|
|
}
|
|
return $diff;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('get_date_sql')) {
|
|
function get_date_sql($field) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$db_date = "date(".$field.") ";
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_date = "substring(date_trunc('day',".$field."::timestamp)::varchar from 1 for 10) ";
|
|
}
|
|
return $db_date;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('concat_sql')) {
|
|
function concat_sql($field) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$db_format = "concat(".$field.") ";
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_format = "concat(".$field.") ";
|
|
// $db_format = "string_agg(".$field.") ";
|
|
}
|
|
return $db_format;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('group_concat_sql')) {
|
|
function group_concat_sql($field,$separator,$orderby) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$is_orderby = ($orderby != '') ? "ORDER BY ".$orderby : '';
|
|
$db_format = "group_concat(DISTINCT $field $is_orderby SEPARATOR '$separator') ";
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_format = "string_agg(DISTINCT ".$field.", '$separator') ";
|
|
}
|
|
return $db_format;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('length_sql')) {
|
|
function length_sql($field) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$db_format = "length(".$field.") ";
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_format = "char_length(".$field.") ";
|
|
}
|
|
return $db_format;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('extract_sql')) {
|
|
function extract_sql($field,$type) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
if($type = 'year'){
|
|
$db_format = "YEAR(".$field.") ";
|
|
}
|
|
elseif($type == 'month'){
|
|
$db_format = "MONTH(".$field.") ";
|
|
}
|
|
elseif($type == 'day'){
|
|
$db_format = "DAY(".$field.") ";
|
|
}
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_format = "extract(".strtoupper($type)." FROM ".$field.") ";
|
|
}
|
|
return $db_format;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('age_sql')) {
|
|
function age_sql($current_date,$date_of_birth) {
|
|
if(_DBTYPE_ == 'mysqli') {
|
|
$db_format = "ROUND(DATEDIFF($current_date,$date_of_birth) / 365) ";
|
|
}
|
|
elseif(_DBTYPE_ == 'postgre') {
|
|
$db_format = "EXTRACT(year FROM age($current_date,$date_of_birth))::int ";
|
|
}
|
|
return $db_format;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('datagrid_method'))
|
|
{
|
|
function datagrid_method($ajax_url, $datagrid_id) {
|
|
if($ajax_url == '' || $datagrid_id == '') {
|
|
return false;
|
|
}
|
|
else {
|
|
$method = 'function updateActions(){
|
|
var rowcount = $("#'.$datagrid_id.'").datagrid("getRows").length;
|
|
for(var i=0; i<rowcount; i++){
|
|
$("#'.$datagrid_id.'").datagrid("updateRow",{
|
|
index:i,
|
|
row:{action:""}
|
|
});
|
|
}
|
|
}
|
|
var editIndex = undefined;
|
|
function endEditing(){
|
|
if (editIndex == undefined){return true}
|
|
if ($("#'.$datagrid_id.'").datagrid("validateRow", editIndex)){
|
|
$("#'.$datagrid_id.'").datagrid("endEdit", editIndex);
|
|
editIndex = undefined;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function onClickCell(index, field){
|
|
if (editIndex != index){
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", index)
|
|
.datagrid("beginEdit", index);
|
|
var ed = $("#'.$datagrid_id.'").datagrid("getEditor", {index:index,field:field});
|
|
if (ed){
|
|
($(ed.target).data("textbox") ? $(ed.target).textbox("textbox") : $(ed.target)).focus();
|
|
}
|
|
editIndex = index;
|
|
} else {
|
|
setTimeout(function(){
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", editIndex);
|
|
},0);
|
|
}
|
|
}
|
|
}
|
|
function onEndEdit(index, row){
|
|
$.post("'._BASE_.$ajax_url.'?action=save",$("#'.$datagrid_id.'").datagrid("getSelected"),function(data){
|
|
console.log("Update data "+data);
|
|
});
|
|
}
|
|
function append(){
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("appendRow",{status:"P"});
|
|
editIndex = $("#'.$datagrid_id.'").datagrid("getRows").length-1;
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", editIndex)
|
|
.datagrid("beginEdit", editIndex);
|
|
}
|
|
}
|
|
function removeit(){
|
|
var c = confirm("Yakin menghapus data ini?");
|
|
if(c == true) {
|
|
if (editIndex == undefined){return}
|
|
|
|
$.post("'._BASE_.$ajax_url.'?action=softdelete",$("#'.$datagrid_id.'").datagrid("getSelected"),function(data){
|
|
console.log("Hapus data "+editIndex+" "+data);
|
|
});
|
|
|
|
$("#'.$datagrid_id.'").datagrid("cancelEdit", editIndex)
|
|
.datagrid("deleteRow", editIndex);
|
|
|
|
editIndex = undefined;
|
|
}
|
|
}
|
|
function accept(){
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("acceptChanges");
|
|
}
|
|
}
|
|
function reject(){
|
|
$("#'.$datagrid_id.'").datagrid("rejectChanges");
|
|
editIndex = undefined;
|
|
}
|
|
function getChanges(){
|
|
var rows = $("#'.$datagrid_id.'").datagrid("getChanges");
|
|
alert(rows.length+" rows are changed!");
|
|
}
|
|
|
|
function reload(){
|
|
var node = $("#'.$datagrid_id.'").datagrid("getSelected");
|
|
if (node){
|
|
$("#'.$datagrid_id.'").datagrid("reload", node.code);
|
|
} else {
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
}
|
|
}
|
|
|
|
function newData(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Tambah Data");
|
|
$("#fmdetil").form("clear").show();
|
|
$("#fmimpor").form("clear").hide();
|
|
$("#save_btn").data("form","#fmdetil");
|
|
url = "'._BASE_.$ajax_url.'?action=add";
|
|
}
|
|
|
|
function impormaster(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=impor";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function ekspormaster(){
|
|
url = "'._BASE_.$ajax_url.'?action=ekspor";
|
|
window.location.href = url;
|
|
}
|
|
|
|
function importtarif(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=impor";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function komponentarif(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor Komponen Tarif");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=imporkomponen";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function saveData(){
|
|
var target = $("#save_btn").data("form");
|
|
if(target == "#fmimpor")
|
|
{
|
|
$("#preloader").css("display","block");
|
|
}
|
|
$(target).form("submit",{
|
|
url: url,
|
|
onSubmit: function(){
|
|
return $(this).form("validate");
|
|
},
|
|
success: function(result){
|
|
/*var result = eval("("+result+")");
|
|
if (result.errorMsg){
|
|
$.messager.show({
|
|
title: "Error",
|
|
msg: result.errorMsg
|
|
});
|
|
} else {*/
|
|
$("#preloader").css("display","none");
|
|
$("#dlg").dialog("close");
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
/*}*/
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
function destroyData(){
|
|
var row = $("#'.$datagrid_id.'").datagrid("getSelected");
|
|
if (row){
|
|
$.messager.confirm("Confirm","Lanjutkan menghapus data?",function(r){
|
|
if (r){
|
|
$.post("'._BASE_.$ajax_url.'?action=softdelete",{id:row.id},function(result){
|
|
if (result.success){
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
} else {
|
|
$.messager.show({
|
|
title: "Error",
|
|
msg: result.errorMsg
|
|
});
|
|
}
|
|
},"json");
|
|
}
|
|
});
|
|
}
|
|
}';
|
|
return $method;
|
|
}
|
|
}
|
|
}
|
|
if(!function_exists('datagrid_v2'))
|
|
{
|
|
function datagrid_v2($ajax_url, $datagrid_id, $additional_source = []) {
|
|
if($ajax_url == '' || $datagrid_id == '') {
|
|
return false;
|
|
}
|
|
else {
|
|
$additional_source['edit'] = (array_key_exists('edit', $additional_source)) ? $additional_source['edit'] : '';
|
|
$additional_source['add'] = (array_key_exists('add', $additional_source)) ? $additional_source['add'] : '$("#fmdetil").form("clear").show();';
|
|
$other_method = (array_key_exists('method', $additional_source)) ? $additional_source['method'] : '';
|
|
$method = 'function updateActions(){
|
|
var rowcount = $("#'.$datagrid_id.'").datagrid("getRows").length;
|
|
for(var i=0; i<rowcount; i++){
|
|
$("#'.$datagrid_id.'").datagrid("updateRow",{
|
|
index:i,
|
|
row:{action:""}
|
|
});
|
|
}
|
|
}
|
|
var editIndex = undefined;
|
|
function endEditing(){
|
|
if (editIndex == undefined){return true}
|
|
if ($("#'.$datagrid_id.'").datagrid("validateRow", editIndex)){
|
|
$("#'.$datagrid_id.'").datagrid("endEdit", editIndex);
|
|
editIndex = undefined;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function onClickCell(index, field){
|
|
if (editIndex != index){
|
|
/*
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", index)
|
|
.datagrid("beginEdit", index);
|
|
var ed = $("#'.$datagrid_id.'").datagrid("getEditor", {index:index,field:field});
|
|
if (ed){
|
|
($(ed.target).data("textbox") ? $(ed.target).textbox("textbox") : $(ed.target)).focus();
|
|
}
|
|
editIndex = index;
|
|
} else {
|
|
*/
|
|
editIndex = index;
|
|
setTimeout(function(){
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", editIndex);
|
|
},0);
|
|
// }
|
|
}
|
|
}
|
|
function onEndEdit(index, row){
|
|
$.post("'._BASE_.$ajax_url.'?action=save",$("#'.$datagrid_id.'").datagrid("getSelected"),function(data){
|
|
console.log("Update data "+data);
|
|
});
|
|
}
|
|
function append(){
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("appendRow",{status:"P"});
|
|
editIndex = $("#'.$datagrid_id.'").datagrid("getRows").length-1;
|
|
$("#'.$datagrid_id.'").datagrid("selectRow", editIndex)
|
|
.datagrid("beginEdit", editIndex);
|
|
}
|
|
}
|
|
function removeit(){
|
|
var c = confirm("Yakin menghapus/menonaktifkan data ini?");
|
|
if(c == true) {
|
|
if (editIndex == undefined){return}
|
|
|
|
$.post("'._BASE_.$ajax_url.'?action=softdelete",$("#'.$datagrid_id.'").datagrid("getSelected"),function(data){
|
|
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
|
|
$.messager.show({
|
|
title: "Info",
|
|
msg: data
|
|
});
|
|
});
|
|
|
|
/*$("#'.$datagrid_id.'").datagrid("cancelEdit", editIndex)
|
|
.datagrid("deleteRow", editIndex);*/
|
|
|
|
editIndex = undefined;
|
|
}
|
|
}
|
|
function setActive(){
|
|
var c = confirm("Yakin mengaktifkan data ini?");
|
|
if(c == true) {
|
|
if (editIndex == undefined){return}
|
|
|
|
$.post("'._BASE_.$ajax_url.'?action=setactive",$("#'.$datagrid_id.'").datagrid("getSelected"),function(data){
|
|
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
|
|
$.messager.show({
|
|
title: "Info",
|
|
msg: data
|
|
});
|
|
});
|
|
|
|
/*$("#'.$datagrid_id.'").datagrid("cancelEdit", editIndex)
|
|
.datagrid("deleteRow", editIndex);*/
|
|
}
|
|
}
|
|
function accept(){
|
|
if (endEditing()){
|
|
$("#'.$datagrid_id.'").datagrid("acceptChanges");
|
|
}
|
|
}
|
|
function reject(){
|
|
$("#'.$datagrid_id.'").datagrid("rejectChanges");
|
|
editIndex = undefined;
|
|
}
|
|
function getChanges(){
|
|
var rows = $("#'.$datagrid_id.'").datagrid("getChanges");
|
|
alert(rows.length+" rows are changed!");
|
|
}
|
|
|
|
function reload(){
|
|
var node = $("#'.$datagrid_id.'").datagrid("getSelected");
|
|
if (node){
|
|
$("#'.$datagrid_id.'").datagrid("reload", node.code);
|
|
} else {
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
}
|
|
}
|
|
|
|
function newData(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Tambah Data");
|
|
'.$additional_source['add'].'
|
|
$("#fmimpor").form("clear").hide();
|
|
$("#save_btn").data("form","#fmdetil");
|
|
url = "'._BASE_.$ajax_url.'?action=add";
|
|
}
|
|
|
|
function editData(){
|
|
if (editIndex == undefined){return}
|
|
|
|
data_edit = $("#'.$datagrid_id.'").datagrid("getSelected");
|
|
|
|
$("#fmdetil").form("clear").show();
|
|
|
|
$.each(data_edit,function(k,v){
|
|
if($("#"+k).length > 0) {
|
|
easy_class = $("#"+k)[0].classList[0];
|
|
if(easy_class.match(/combobox/)){
|
|
$("#"+k).combobox(\'select\',v);
|
|
return true;
|
|
}
|
|
$("#"+k).textbox(\'setValue\',v);
|
|
}
|
|
});
|
|
|
|
'.$additional_source['edit'].'
|
|
|
|
$("#dlg").dialog("open").dialog("setTitle","Edit Data");
|
|
$("#fmimpor").form("clear").hide();
|
|
$("#save_btn").data("form","#fmdetil");
|
|
url = "'._BASE_.$ajax_url.'?action=save&id="+data_edit.id;
|
|
}
|
|
|
|
function impormaster(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=impor";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function ekspormaster(){
|
|
url = "'._BASE_.$ajax_url.'?action=ekspor";
|
|
window.location.href = url;
|
|
}
|
|
|
|
function importtarif(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=impor";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function komponentarif(){
|
|
$("#dlg").dialog("open").dialog("setTitle","Impor Komponen Tarif");
|
|
$("#fmdetil").form("clear").hide();
|
|
$("#fmimpor").form("clear").show();
|
|
$("#save_btn").data("form","#fmimpor");
|
|
url = "'._BASE_.$ajax_url.'?action=imporkomponen";
|
|
$("#preloader").css("display","none");
|
|
}
|
|
|
|
function saveData(){
|
|
var target = $("#save_btn").data("form");
|
|
if(target == "#fmimpor")
|
|
{
|
|
$("#preloader").css("display","block");
|
|
}
|
|
$(target).form("submit",{
|
|
url: url,
|
|
onSubmit: function(){
|
|
return $(this).form("validate");
|
|
},
|
|
success: function(result){
|
|
/*var result = eval("("+result+")");
|
|
if (result.errorMsg){
|
|
$.messager.show({
|
|
title: "Error",
|
|
msg: result.errorMsg
|
|
});
|
|
} else {*/
|
|
$("#preloader").css("display","none");
|
|
$("#dlg").dialog("close");
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
|
|
$.messager.show({
|
|
title: "Info",
|
|
msg: result
|
|
});
|
|
/*}*/
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
function destroyData(){
|
|
var row = $("#'.$datagrid_id.'").datagrid("getSelected");
|
|
if (row){
|
|
$.messager.confirm("Confirm","Lanjutkan menghapus data?",function(r){
|
|
if (r){
|
|
$.post("'._BASE_.$ajax_url.'?action=softdelete",{id:row.id},function(result){
|
|
if (result.success){
|
|
$("#'.$datagrid_id.'").datagrid("reload");
|
|
} else {
|
|
$.messager.show({
|
|
title: "Error",
|
|
msg: result.errorMsg
|
|
});
|
|
}
|
|
},"json");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
'.$other_method;
|
|
return $method;
|
|
}
|
|
}
|
|
}
|
|
if(!function_exists('proc_rawat_jalan'))
|
|
{
|
|
function proc_rawat_jalan($request)
|
|
{
|
|
global $db;
|
|
ini_set('memory_limit', '3048M');
|
|
ini_set('max_execution_time', '0');
|
|
$post = $request;
|
|
$bulan = str_pad($post['bulan'],2,'0',STR_PAD_LEFT);
|
|
|
|
if(array_key_exists('filter',$post))
|
|
{
|
|
if($post['filter'] == 'range_date')
|
|
{
|
|
$tgl_awal = $post['tgl_awal'];
|
|
$tgl_akhir = $post['tgl_akhir'];
|
|
$kondisi = "a.tglreg::date between '$tgl_awal' and '$tgl_akhir'";
|
|
}
|
|
elseif($post['filter'] == 'idxdaftar')
|
|
{
|
|
$kondisi = "a.idxdaftar = ".$post['idxdaftar'];
|
|
}
|
|
}
|
|
else {
|
|
$tgl_awal = $post['tahun'].'-'.$post['bulan'].'-01';
|
|
$tgl_akhir = date('Y-m-t',strtotime($post['tahun'].'-'.$post['bulan'].'-01'));
|
|
$kondisi = "a.tglreg::date between '$tgl_awal' and '$tgl_akhir'";
|
|
}
|
|
$query_list = "SELECT '$bulan' as bulan,'{$post['tahun']}' as tahun,a.idxdaftar,a.nomr,
|
|
date(a.tglreg) as tgl_datang, p.nama,alamat,concat(r.nama,' / ',r.kelompok ) as ruang,notelp,
|
|
p.txt_kelurahan,p.txt_kecamatan,p.txt_kota,p.txt_provinsi,p.jeniskelamin,p.suku ,p.txt_status, p.kebangsaan,p.txt_agama ,p.txt_pendidikan ,p.pekerjaan,
|
|
p.tgllahir,p.noktp as identitas,a.st_asal_masuk as sistem,
|
|
(select nobill from t_billrajal where idxdaftar = a.idxdaftar limit 1) as nobill,
|
|
date(a.masukpoly) as tgl_masuk,
|
|
a.masukpoly::time as jam_masuk,
|
|
null as kirimoleh,
|
|
ms.keterangan as carapulang,
|
|
case when mr.nama is null then 'TANPA RUJUKAN' else mr.nama end as caramasuk,
|
|
c.nama as status,
|
|
date(a.keluarpoly) as tgl_pulang, a.keluarpoly::time as jam_pulang, null as alasan_dtg,
|
|
l.nama_pegawai as petugas,
|
|
null as keringanan,
|
|
regexp_match(age(tglreg::date,p.tgllahir::date)::text,'(\d+ years)')::text as umur_tahun,
|
|
regexp_match(age(tglreg::date,p.tgllahir::date)::text,'(\d+ mons)')::text as umur_bulan,
|
|
regexp_match(age(tglreg::date,p.tgllahir::date)::text,'(\d+ days)')::text as umur_hari,
|
|
d.kode_dpjp,d.namadokter,
|
|
p.nama_ayah,p.nama_ibu,mppa.nama_pendidikan as pendidikan_ayah,mppi.nama_pendidikan as pendidikan_ibu,null as pekerjaan_ayah,null as pekerjaan_ibu,null as kiupibu, split_part(ketrujuk,' - ',1) as asalrujuk,split_part(ketrujuk,' - ',2) as almrujuk,split_part(ketrujuk,' - ',3) as kotarujuk,date(a.tglrujukan) as tglrujuk,a.tglrujukan::time as jamrujuk,a.norujukan
|
|
FROM t_pendaftaran a
|
|
JOIN m_pasien p on a.nomr = p.nomr
|
|
join m_ruang r on a.kdpoly = r.no
|
|
join m_carabayar c on a.kdcarabayar = c.kode
|
|
left join m_rujukan mr on a.kdrujuk = mr.kode
|
|
left join m_login l on a.nip = l.nip
|
|
left join m_statuskeluar ms on a.status = ms.status
|
|
left join m_pendidikan_pasien mppa on mppa.id_pendidikan = p.pendidikan_ayah::int
|
|
left join m_pendidikan_pasien mppi on mppi.id_pendidikan = p.pendidikan_ibu::int
|
|
left join m_dokter d on a.kddokter = d.kddokter
|
|
WHERE $kondisi and a.status != 11";
|
|
$tmp_proses_fix = $db->query($query_list);
|
|
|
|
if($tmp_proses_fix) {
|
|
foreach($tmp_proses_fix->fetchAll() as $row) {
|
|
$db_diagnosa = $db->query("SELECT *,case when kasus_bl = 0 then 'Lama' else 'Baru' end as kasus,case when kunjungan_bl = 0 then 'Lama' else 'Baru' end as kunjungan from t_diagnosadanterapi where rajal = 1 and idxdaftar = {$row['idxdaftar']}");
|
|
$data_diagnosa = $db_diagnosa->fetchFirst();
|
|
|
|
$db_icd_verified = $db->query("SELECT icd_verified,icd.dtd,jenis_penyakit,t_icd.icd_verif_by from t_icd join icd on t_icd.icd_verified = icd.icd_code where idxdaftar = {$row['idxdaftar']} and status_rajal = 1 and icd_verified_order = 1 and status_verif = 1");
|
|
$data_icd_verif_utama = $db_icd_verified->fetchFirst();
|
|
|
|
$db_icd_dpjp = $db->query("SELECT icd,icd.dtd,jenis_penyakit from t_icd join icd on t_icd.icd = icd.icd_code where idxdaftar = {$row['idxdaftar']} and status_rajal = 1 and status_verif is NULL order by idx");
|
|
$data_icd_dpjp_utama = $db_icd_dpjp->fetchAll();
|
|
$icd_dpjp_utama = null;
|
|
$dtd_dpjp_utama = null;
|
|
$jenis_penyakit_dpjp_utama = null;
|
|
|
|
$icd_dpjp_kompl = [];
|
|
$dtd_dpjp_kompl = [];
|
|
$jenis_penyakit_dpjp_kompl = [];
|
|
if($db_icd_dpjp->numRows() > 0) {
|
|
$i = 0;
|
|
foreach($data_icd_dpjp_utama as $icd_dpjp) {
|
|
if($i==0) {
|
|
$icd_dpjp_utama = $icd_dpjp['icd'];
|
|
if($icd_dpjp['dtd'] != '') {
|
|
$dtd_dpjp_utama = $icd_dpjp['dtd'];
|
|
}
|
|
$jenis_penyakit_dpjp_utama = $icd_dpjp['jenis_penyakit'];
|
|
}
|
|
else {
|
|
$icd_dpjp_kompl[] = $icd_dpjp['icd'].';'.$icd_dpjp['jenis_penyakit'];
|
|
if($icd_dpjp['dtd'] != '') {
|
|
$dtd_dpjp_kompl[] = $icd_dpjp['dtd'];
|
|
}
|
|
$jenis_penyakit_dpjp_kompl[] = $icd_dpjp['jenis_penyakit'];
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
$db_icd_verified = $db->query("SELECT string_agg(icd_verified||';'||replace(jenis_penyakit,'''','`'),';\r\n') as komplikasi_verif,string_agg(jenis_penyakit,';\r\n') as jenispenyakit_komplikasi_verif from t_icd join icd on t_icd.icd_verified = icd.icd_code where idxdaftar = {$row['idxdaftar']} and status_rajal = 1 and icd_verified_order > 1 and status_verif = 1");
|
|
$data_icd_verif_komplikasi = $db_icd_verified->fetchFirst();
|
|
|
|
$db_penjamin = $db->query("SELECT case when bran.nobayar is not null then 'UMUM' else jamin.nama_penjamin end as nama_penjamin
|
|
from t_billrajal br join t_bayarrajal bran on bran.idxbill = br.idxbill
|
|
left join t_piutang pi on pi.idxbill = br.idxbill
|
|
and pi.nobilling = bran.nobill and st_billing = 'IRJA'
|
|
and (st_piutang is null or st_piutang = 'LUNAS')
|
|
left join m_penjamin jamin on pi.kode_penjamin = jamin.id_penjamin
|
|
where br.idxdaftar = {$row['idxdaftar']} order by br.idxbill desc limit 1 ");
|
|
|
|
$data_penjamin = $db_penjamin->fetchFirst();
|
|
|
|
if($row['tgl_datang'] == '' || $row['tgl_datang'] == NULL) {
|
|
unset($row['tgl_datang']);
|
|
}
|
|
if($row['tgl_masuk'] == '' || $row['tgl_masuk'] == NULL) {
|
|
unset($row['tgl_masuk']);
|
|
}
|
|
if($row['jam_masuk'] == '' || $row['jam_masuk'] == NULL) {
|
|
unset($row['jam_masuk']);
|
|
}
|
|
if($row['tgl_pulang'] == '' || $row['tgl_pulang'] == NULL) {
|
|
unset($row['tgl_pulang']);
|
|
}
|
|
if($row['jam_pulang'] == '' || $row['jam_pulang'] == NULL) {
|
|
unset($row['jam_pulang']);
|
|
}
|
|
|
|
$arr_save_report = [];
|
|
|
|
$arr_save_report = array_merge($row,[
|
|
'diagmasuk' =>$data_diagnosa['diagnosa'],
|
|
'keluhan' => $data_diagnosa['anamnesa'],
|
|
'tekanan_darah' => $data_diagnosa['tekanan_darah'],
|
|
'tinggi_badan' => $data_diagnosa['tinggi_badan'],
|
|
'berat_badan' => $data_diagnosa['berat_badan'],
|
|
'golongan_darah' => $data_diagnosa['golongan_darah'],
|
|
'penjamin' => $data_penjamin['nama_penjamin'],
|
|
'diagnosa_utama' => $data_icd_verif_utama['icd_verified'],
|
|
'dtd'=>$data_icd_verif_utama['dtd'],
|
|
'jenis_penyakit'=>preg_replace("/\'/",'`',$data_icd_verif_utama['jenis_penyakit']),
|
|
'icdkompl'=>preg_replace("/\'/",'`',$data_icd_verif_komplikasi['komplikasi_verif']),
|
|
'diagkompl'=>preg_replace("/\'/",'`',$data_icd_verif_komplikasi['jenipenyakit_komplikasi']),
|
|
'icd_tindakan_utama'=>'',
|
|
'tindakan_utama'=>'',
|
|
'icd_tindakan_lain'=>'',
|
|
'tindakan_lain'=>'',
|
|
'petugas_icd'=>$data_icd_verif_utama['icd_verif_by'],
|
|
'kasus'=>$data_diagnosa['kasus'],
|
|
'kunjungan'=>$data_diagnosa['kunjungan'],
|
|
'sudah_vaksin'=>$data_diagnosa['sudah_vaksin'],
|
|
'diagnosa_utama_dpjp'=>preg_replace("/\'/",'`',$icd_dpjp_utama),
|
|
'dtd_dpjp'=>$dtd_dpjp_utama,
|
|
'jenis_penyakit_dpjp'=>preg_replace("/\'/",'`',$jenis_penyakit_dpjp_utama),
|
|
'icd_komplikasi_dpjp'=>preg_replace("/\'/",'`',implode(";",$icd_dpjp_kompl)),
|
|
'dtd_komplikasi_dpjp'=>preg_replace("/\'/",'`',implode(";",$dtd_dpjp_kompl)),
|
|
'diagnosa_komplikasi_dpjp'=>preg_replace("/\'/",'`',implode(";",$jenis_penyakit_dpjp_kompl)),
|
|
]);
|
|
|
|
$cek_record = $db->query("SELECT nomr from report_rm_rawat_jalan where idxdaftar = {$row['idxdaftar']}");
|
|
if($cek_record->numRows() > 0) {
|
|
$save_report = execute("UPDATE report_rm_rawat_jalan ".bind_sql($arr_save_report,1)." where idxdaftar = {$row['idxdaftar']}");
|
|
}
|
|
else {
|
|
$save_report = execute("INSERT into report_rm_rawat_jalan ".bind_sql($arr_save_report));
|
|
}
|
|
unset($arr_save_report);
|
|
}
|
|
if(array_key_exists('filter',$post) && $post['filter'] == 'idxdaftar') {
|
|
$msg = "Data rawat jalan selesai diproses";
|
|
}
|
|
elseif(array_key_exists('filter',$post) && $post['filter'] == 'range_date') {
|
|
$msg = "Data rawat jalan tanggal ".$tgl_awal." s.d ".$tgl_akhir." selesai diproses";
|
|
}
|
|
else {
|
|
$msg = "Data rawat jalan $bulan {$post['tahun']} selesai diproses";
|
|
}
|
|
$type = 'success';
|
|
}
|
|
else {
|
|
$msg = 'Error';
|
|
$type = 'error';
|
|
}
|
|
|
|
return json_encode(['message'=>$msg,'type'=>$type]);
|
|
}
|
|
}
|
|
if(!function_exists('image_save'))
|
|
{
|
|
function image_save($file,$config)
|
|
{
|
|
$base_upload_dir = './storage/';
|
|
|
|
// handle upload
|
|
$handle = new Upload($file);
|
|
$handle->file_max_size = (array_key_exists('file_max_size',$config)) ? $config['file_max_size'] : '2M';
|
|
$handle->allowed = (array_key_exists('allowed',$config)) ? $config['allowed'] : array('image/jpg','image/jpeg','image/png');
|
|
if($config['resize'])
|
|
{
|
|
$handle->image_resize = $config['resize'];
|
|
$handle->image_x = $config['image_x'];
|
|
$handle->image_y = $config['image_y'];
|
|
if(array_key_exists('image_ratio_y',$config) && $config['image_ratio_y'])
|
|
{
|
|
$handle->image_ratio_y = $config['image_ratio_y'];
|
|
}
|
|
if(array_key_exists('image_ratio_x',$config) && $config['image_ratio_x'])
|
|
{
|
|
$handle->image_ratio_x = $config['image_ratio_x'];
|
|
}
|
|
}
|
|
if ($handle->uploaded) {
|
|
$sub = (array_key_exists('storage_dir',$config)) ? $config['storage_dir'].'/' : '';
|
|
$sub_dir = makeDir($base_upload_dir.$sub,0777);
|
|
|
|
$handle->process($base_upload_dir.$sub);
|
|
if ($handle->processed) {
|
|
$handle->clean();
|
|
return $handle->file_dst_pathname;
|
|
} else {
|
|
log_message('error','Upload error '.$handle->error.". Dir ".$base_upload_dir.$sub);
|
|
throw new Exception("Error Upload : ".$handle->error.". Dir ".$base_upload_dir.$sub, 1);
|
|
return $handle->error;
|
|
}
|
|
}
|
|
else {
|
|
log_message('error','Upload error '.$handle->error.". Dir ".$base_upload_dir.$sub);
|
|
throw new Exception("Error Upload : ".$handle->error.". Dir ".$base_upload_dir.$sub, 1);
|
|
return false;
|
|
}
|
|
|
|
}
|
|
}
|
|
?>
|