Files
simrs-jatim/core/main.php
2024-04-19 14:04:41 +07:00

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;
}
}
}
?>