commit pertama

This commit is contained in:
2026-01-30 13:07:53 +07:00
commit 48199537d4
303 changed files with 136097 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
# ignore visual studio code
/.vs/
# ignore cache content
cache/*
!cache/v3
# ignore mysql.php
mysql.php
+22
View File
@@ -0,0 +1,22 @@
# BAPPERIDA KAB SAMBAS
Sistem Informasi Perencanaan Pembangunan Daerah
## Description
Copy of SIPPD MAIN FRAME
## Authors
Developer dan programmer
[@siaupheng](mailto:[email protected])
## Version History
* 1.0
* Initial Release
## License
This project is licensed.
+3581
View File
File diff suppressed because it is too large Load Diff
+2517
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 759 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

+31
View File
@@ -0,0 +1,31 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2000" height="2000" viewBox="0 0 2000 2000" preserveAspectRatio="none">
<!-- TL to BR -->
<line x1="-1500" y1="0" x2="500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="-1000" y1="0" x2="1000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="-500" y1="0" x2="1500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="0" x2="2000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="500" y1="0" x2="2500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="1000" y1="0" x2="3000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="1500" y1="0" x2="3500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<!-- TR to BL -->
<line x2="-1500" y1="0" x1="500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="-1000" y1="0" x1="1000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="-500" y1="0" x1="1500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="0" y1="0" x1="2000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="500" y1="0" x1="2500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="1000" y1="0" x1="3000" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x2="1500" y1="0" x1="3500" y2="2000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<!-- L to R -->
<line x1="0" y1="0" x2="2000" y2="0" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="250" x2="2000" y2="250" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="500" x2="2000" y2="500" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="750" x2="2000" y2="750" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="1000" x2="2000" y2="1000" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="1250" x2="2000" y2="1250" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="1500" x2="2000" y2="1500" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
<line x1="0" y1="1750" x2="2000" y2="1750" style="stroke:rgba(255,255,255,0.075);stroke-width:2" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20px" height="12px" viewBox="0 0 20 12" zoomAndPan="disable">
<rect x="0" y="1" width="20" height="2" style="fill:rgba(0,0,0,0.45);" />
<rect x="0" y="5" width="20" height="2" style="fill:rgba(0,0,0,0.45);" />
<rect x="0" y="9" width="20" height="2" style="fill:rgba(0,0,0,0.45);" />
</svg>

After

Width:  |  Height:  |  Size: 383 B

+2
View File
@@ -0,0 +1,2 @@
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
+2
View File
@@ -0,0 +1,2 @@
/* browser.js v1.0 | @ajlkn | MIT licensed */
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
+587
View File
@@ -0,0 +1,587 @@
(function($) {
/**
* Generate an indented list of links from a nav. Meant for use with panel().
* @return {jQuery} jQuery object.
*/
$.fn.navList = function() {
var $this = $(this);
$a = $this.find('a'),
b = [];
$a.each(function() {
var $this = $(this),
indent = Math.max(0, $this.parents('li').length - 1),
href = $this.attr('href'),
target = $this.attr('target');
b.push(
'<a ' +
'class="link depth-' + indent + '"' +
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
'>' +
'<span class="indent-' + indent + '"></span>' +
$this.text() +
'</a>'
);
});
return b.join('');
};
/**
* Panel-ify an element.
* @param {object} userConfig User config.
* @return {jQuery} jQuery object.
*/
$.fn.panel = function(userConfig) {
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).panel(userConfig);
return $this;
}
// Vars.
var $this = $(this),
$body = $('body'),
$window = $(window),
id = $this.attr('id'),
config;
// Config.
config = $.extend({
// Delay.
delay: 0,
// Hide panel on link click.
hideOnClick: false,
// Hide panel on escape keypress.
hideOnEscape: false,
// Hide panel on swipe.
hideOnSwipe: false,
// Reset scroll position on hide.
resetScroll: false,
// Reset forms on hide.
resetForms: false,
// Side of viewport the panel will appear.
side: null,
// Target element for "class".
target: $this,
// Class to toggle.
visibleClass: 'visible'
}, userConfig);
// Expand "target" if it's not a jQuery object already.
if (typeof config.target != 'jQuery')
config.target = $(config.target);
// Panel.
// Methods.
$this._hide = function(event) {
// Already hidden? Bail.
if (!config.target.hasClass(config.visibleClass))
return;
// If an event was provided, cancel it.
if (event) {
event.preventDefault();
event.stopPropagation();
}
// Hide.
config.target.removeClass(config.visibleClass);
// Post-hide stuff.
window.setTimeout(function() {
// Reset scroll position.
if (config.resetScroll)
$this.scrollTop(0);
// Reset forms.
if (config.resetForms)
$this.find('form').each(function() {
this.reset();
});
}, config.delay);
};
// Vendor fixes.
$this
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
.css('-webkit-overflow-scrolling', 'touch');
// Hide on click.
if (config.hideOnClick) {
$this.find('a')
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
$this
.on('click', 'a', function(event) {
var $a = $(this),
href = $a.attr('href'),
target = $a.attr('target');
if (!href || href == '#' || href == '' || href == '#' + id)
return;
// Cancel original event.
event.preventDefault();
event.stopPropagation();
// Hide panel.
$this._hide();
// Redirect to href.
window.setTimeout(function() {
if (target == '_blank')
window.open(href);
else
window.location.href = href;
}, config.delay + 10);
});
}
// Event: Touch stuff.
$this.on('touchstart', function(event) {
$this.touchPosX = event.originalEvent.touches[0].pageX;
$this.touchPosY = event.originalEvent.touches[0].pageY;
})
$this.on('touchmove', function(event) {
if ($this.touchPosX === null
|| $this.touchPosY === null)
return;
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
th = $this.outerHeight(),
ts = ($this.get(0).scrollHeight - $this.scrollTop());
// Hide on swipe?
if (config.hideOnSwipe) {
var result = false,
boundary = 20,
delta = 50;
switch (config.side) {
case 'left':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
break;
case 'right':
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
break;
case 'top':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
break;
case 'bottom':
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
break;
default:
break;
}
if (result) {
$this.touchPosX = null;
$this.touchPosY = null;
$this._hide();
return false;
}
}
// Prevent vertical scrolling past the top or bottom.
if (($this.scrollTop() < 0 && diffY < 0)
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
event.preventDefault();
event.stopPropagation();
}
});
// Event: Prevent certain events inside the panel from bubbling.
$this.on('click touchend touchstart touchmove', function(event) {
event.stopPropagation();
});
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
$this.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.removeClass(config.visibleClass);
});
// Body.
// Event: Hide panel on body click/tap.
$body.on('click touchend', function(event) {
$this._hide(event);
});
// Event: Toggle.
$body.on('click', 'a[href="#' + id + '"]', function(event) {
event.preventDefault();
event.stopPropagation();
config.target.toggleClass(config.visibleClass);
});
// Window.
// Event: Hide on ESC.
if (config.hideOnEscape)
$window.on('keydown', function(event) {
if (event.keyCode == 27)
$this._hide(event);
});
return $this;
};
/**
* Apply "placeholder" attribute polyfill to one or more forms.
* @return {jQuery} jQuery object.
*/
$.fn.placeholder = function() {
// Browser natively supports placeholders? Bail.
if (typeof (document.createElement('input')).placeholder != 'undefined')
return $(this);
// No elements?
if (this.length == 0)
return $this;
// Multiple elements?
if (this.length > 1) {
for (var i=0; i < this.length; i++)
$(this[i]).placeholder();
return $this;
}
// Vars.
var $this = $(this);
// Text, TextArea.
$this.find('input[type=text],textarea')
.each(function() {
var i = $(this);
if (i.val() == ''
|| i.val() == i.attr('placeholder'))
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('blur', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == '')
i
.addClass('polyfill-placeholder')
.val(i.attr('placeholder'));
})
.on('focus', function() {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
return;
if (i.val() == i.attr('placeholder'))
i
.removeClass('polyfill-placeholder')
.val('');
});
// Password.
$this.find('input[type=password]')
.each(function() {
var i = $(this);
var x = $(
$('<div>')
.append(i.clone())
.remove()
.html()
.replace(/type="password"/i, 'type="text"')
.replace(/type=password/i, 'type=text')
);
if (i.attr('id') != '')
x.attr('id', i.attr('id') + '-polyfill-field');
if (i.attr('name') != '')
x.attr('name', i.attr('name') + '-polyfill-field');
x.addClass('polyfill-placeholder')
.val(x.attr('placeholder')).insertAfter(i);
if (i.val() == '')
i.hide();
else
x.hide();
i
.on('blur', function(event) {
event.preventDefault();
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
});
x
.on('focus', function(event) {
event.preventDefault();
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
x.hide();
i
.show()
.focus();
})
.on('keypress', function(event) {
event.preventDefault();
x.val('');
});
});
// Events.
$this
.on('submit', function() {
$this.find('input[type=text],input[type=password],textarea')
.each(function(event) {
var i = $(this);
if (i.attr('name').match(/-polyfill-field$/))
i.attr('name', '');
if (i.val() == i.attr('placeholder')) {
i.removeClass('polyfill-placeholder');
i.val('');
}
});
})
.on('reset', function(event) {
event.preventDefault();
$this.find('select')
.val($('option:first').val());
$this.find('input,textarea')
.each(function() {
var i = $(this),
x;
i.removeClass('polyfill-placeholder');
switch (this.type) {
case 'submit':
case 'reset':
break;
case 'password':
i.val(i.attr('defaultValue'));
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
if (i.val() == '') {
i.hide();
x.show();
}
else {
i.show();
x.hide();
}
break;
case 'checkbox':
case 'radio':
i.attr('checked', i.attr('defaultValue'));
break;
case 'text':
case 'textarea':
i.val(i.attr('defaultValue'));
if (i.val() == '') {
i.addClass('polyfill-placeholder');
i.val(i.attr('placeholder'));
}
break;
default:
i.val(i.attr('defaultValue'));
break;
}
});
});
return $this;
};
/**
* Moves elements to/from the first positions of their respective parents.
* @param {jQuery} $elements Elements (or selector) to move.
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
*/
$.prioritize = function($elements, condition) {
var key = '__prioritize';
// Expand $elements if it's not already a jQuery object.
if (typeof $elements != 'jQuery')
$elements = $($elements);
// Step through elements.
$elements.each(function() {
var $e = $(this), $p,
$parent = $e.parent();
// No parent? Bail.
if ($parent.length == 0)
return;
// Not moved? Move it.
if (!$e.data(key)) {
// Condition is false? Bail.
if (!condition)
return;
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
$p = $e.prev();
// Couldn't find anything? Means this element's already at the top, so bail.
if ($p.length == 0)
return;
// Move element to top of parent.
$e.prependTo($parent);
// Mark element as moved.
$e.data(key, $p);
}
// Moved already?
else {
// Condition is true? Bail.
if (condition)
return;
$p = $e.data(key);
// Move element back to its original location (using our placeholder).
$e.insertAfter($p);
// Unmark element as moved.
$e.removeData(key);
}
});
};
})(jQuery);
+77
View File
@@ -0,0 +1,77 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/app.php
Desc. : Konfigurasi Global Aplikasi
Created By : Siau Pheng ([email protected]).
Created Date : November 7th, 2009.
Last Modified : January 12th, 2026.
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
require_once(__DIR__."/mysql.php");
use siaupheng\fonia3\DB\MySQL;
$db = (is_resource($db)) ? $db : new MySQL();
if (($_SESSION['__WEB_APP']['APP_CODE'] ?? "")<>"1909811007") {
foreach ($_SESSION as $_key => $_val) {
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
}
}
if (!isset($_SESSION['__WEB_APP'])) {
$real_path = str_replace("\\", "/", __DIR__);
$real_path = str_replace("apps/cfg", "", $real_path);
$web_path = str_replace($_SERVER['DOCUMENT_ROOT'], "/", $real_path);
$web_path = str_replace("//", "/", $web_path);
$real_path = str_replace("//", "/", $real_path);
$apps = [];
$apps['APP_CODE'] = "1909811007";
$apps['APP_NAME'] = "eForum";
$apps['APP_NAMES'] = "Forum / Musyawarah OPD";
$apps['APP_VER'] = "2.0";
$apps['APP_UPDATED'] = "January 12th, 2026.";
$apps['APP_SID'] = md5(time());
$apps['APP_LOCALE'] = ["id"=>"Indonesia", "en"=>"English"];
$apps['DEF_LOCALE'] = "id";
$apps['AUTH_OVER'] = false;
$apps['AUTH_LEVEL'] = 1;
$apps['USER_LEVEL'] = [0 => "ADMINISTRATOR", 1 => "KABUPATEN / BIDANG", 2 => "KECAMATAN", 3 => "OPD", 5 => "DPRD", 9 => "VIEWER"];
$apps['USER_LOG'] = true;
$apps['USE_QZTRAY'] = false;
$apps['CREATOR_YEAR'] = "2019";
$apps['CREATOR_NAME'] = "3FONIA Software";
$apps['CREATOR_WEBSITE'] = "http://www.3fonia.com";
$apps['WEB_PATH'] = $web_path;
$apps['REAL_PATH'] = $real_path;
$apps['MODULE_PATH'] = "../";
$apps['PARENT_SUB'] = true;
$apps['PARENT_CODE'] = "1909811004";
$apps['PARENT_SITE'] = "https://sippdkabsambas.com";
$db->Query("SELECT * FROM app_config WHERE REG_ID='".$apps['APP_CODE']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
if ($apps['APP_BUILD']<>"") $apps['APP_VER'] = $apps['APP_BUILD'];
$db->Query("SELECT * FROM sippd_config WHERE REG_ID='".$apps['PARENT_CODE']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
$db->Query("SELECT Tahun1,Tahun2,Tahun3,Tahun4,Tahun5,Tahun_Min,Tahun_Max,Ket N_RPJMD FROM vi_para_rpjmd WHERE RPJMDID='".$apps['RENC_RPJMDID']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
if ($apps['Tahun1']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T1";
if ($apps['Tahun2']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T2";
if ($apps['Tahun3']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T3";
if ($apps['Tahun4']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T4";
if ($apps['Tahun5']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T5";
$_SESSION['__WEB_APP'] = $apps;
}
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/assets.php
Desc. : Konfigurasi Assets Aplikasi [css / js]
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : November 23rd, 2019.
Last Modified : January 21st, 2024.
(c) 2019 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$A_CSS = ["bootstrap/bootstrap.icon.css", "bootstrap/bootstrap.css"];
$A_JS = ["jquery/jquery.js", "jquery/jquery.base64.js", "bootstrap/bootstrap.bundle.js", "fonia3.js"];
if (!user_logged()) {
$A_JS[] = "jquery/jquery.backstretch.js";
} else {
$A_CSS[] = "datatables/dataTables.bootstrap5.css";
$A_CSS[] = "datatables/responsive.bootstrap5.css";
$A_CSS[] = "datatables/scroller.bootstrap5.css";
$A_CSS[] = "datatables/stateRestore.bootstrap5.css";
$A_CSS[] = "select2/select2.css";
$A_CSS[] = "select2/select2-bootstrap-5-theme.css";
$A_CSS[] = "bootstrap/bootstrap.datepicker.css";
//$A_CSS[] = "simplebar.css";
//$A_CSS[] = "lightbox.css";
//$A_CSS[] = "codemirror.css";
//$A_CSS[] = "summernote-bs4.css";
$A_CSS[] = "default.css";
$A_CSS[] = "print.css";
$A_JS = [
"jquery/jquery.js",
"jquery/jquery.base64.js",
"jquery/jquery.autosize.js",
"jquery/jquery.maskedinput.js",
"jquery/jquery.validate.js",
"bootstrap/bootstrap.bundle.js",
"bootstrap/bootstrap.datepicker.js",
"bootstrap/bootstrap.autocomplete.js",
"datatables/jquery.dataTables.js",
"datatables/dataTables.bootstrap5.js",
"datatables/dataTables.responsive.js",
"datatables/responsive.bootstrap5.js",
"datatables/dataTables.scroller.js",
"datatables/dataTables.stateRestore.js",
"datatables/stateRestore.bootstrap5.js",
//"codemirror/codemirror.js",
//"codemirror/xml.js",
"moment.js",
"select2/select2.js",
"chart/chart.js",
//"chart/chartjs-plugin-datalabels.js",
//"simplebar.js",
//"lightbox.js",
//"summernote-bs4.js",
//"html5-qrcode.js",
"fonia3.js",
"print.js",
"pdf.js",
"export.js",
//"simulator.js",
//"pole-display.js"
];
}
?>
+25
View File
@@ -0,0 +1,25 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/mysql.php
Desc. : Konfigurasi Server MySQL
Created By : Siau Pheng ([email protected]).
Created Date : November 7th, 2009.
Last Modified : June 28th, 2020.
(c) 2009 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$APP_DATA = [
'host' => "127.0.0.1",
'port' => "3306",
'user' => "sippd_sambas",
'pwd' => "s1ppds4mb4s@",
'db' => "sippd_sambas",
'sock' => ""
];
?>
+46
View File
@@ -0,0 +1,46 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/forum/ba_kec.js
Desc. : JS - Cetak Berita Acara / Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FRepoBAKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','KecID','ForumID']
}).send();
}
};
+142
View File
@@ -0,0 +1,142 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/bahan_opd.js
Desc. : JS - Kelola Bahan Forum OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FBahanOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formBahanOPD').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume: {required:true, double_id:true},
SatuanID: {required:true, min:1},
Rupiah: {required:true, double_id:true},
Prio: {required:false},
StatusID: {required:false}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
$('#formBahanOPD').submit();
if (true !== $('#formBahanOPD').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah','Prio','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
+164
View File
@@ -0,0 +1,164 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/forum_opd.js
Desc. : JS - Forum OPD / Pembahasan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FForumOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
keg_1: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=1'],
}).send();
},
keg_2: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=2'],
}).send();
},
keg_3: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=3'],
}).send();
},
keg_4: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=4'],
}).send();
},
keg_5: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=5'],
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
+93
View File
@@ -0,0 +1,93 @@
/*******************************************************************
Module : /apps/js/index.js
Desc. : JS - Halaman Utama Desktop
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 24th, 2010.
Last Modified : August 15th, 2019.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(function(){
jQuery("#preloader").remove();
loadSidebar();
IndexJS.loading();
});
var IndexJS = {
loading: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=default'],
onSuccess: function(ares){
$('#pageContent').html(ares.content);
$('#pageToolbarTop').html('');
$('#pageToolbarBot').html('');
this.loadPagu();
this.loadChart();
}.bind(this)
}).send();
},
loadPagu: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-info'],
onSuccess: function(ares){
$('#divHome1').html(ares.html);
}
}).send();
},
loadChart: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-chart'],
onSuccess: function(data){
var ctx = $('#pieChart');
var pieOptions = {
legend: { display: true, position: 'bottom', labels:{pointStyle:'circle', usePointStyle:true} },
aspectRatio: 1.3,
cutoutPercentage: 35,
responsiveAnimationDuration: 10,
responsive: true,
maintainAspectRatio: true,
onResize: function(mcha, size) {
var leg = (size.width <= 330) ? false : true;
mcha.options.legend.display = leg;
}
};
var myChart = new Chart(ctx, {
type: 'doughnut',
data: data,
options: pieOptions
});
}
}).send();
}
};
function loadSidebar(){
const mySidebar = document.getElementById('sidebarMain');
mySidebar.addEventListener('shown.bs.modal', () => {
document.querySelectorAll('.sidebar .nav-link').forEach((element) => {
element.addEventListener('click', (e) => {
let nextEl = element.nextElementSibling, parentEl = element.parentElement;
if (nextEl){
e.preventDefault();
let mycollapse = new bootstrap.Collapse(nextEl);
if (nextEl.classList.contains('show')){
mycollapse.hide();
} else {
mycollapse.show();
var opened_submenu = parentEl.parentElement.querySelector('.submenu.show');
if (opened_submenu){ new bootstrap.Collapse(opened_submenu); }
}
}
});
})
});
}
+86
View File
@@ -0,0 +1,86 @@
/*******************************************************************
Module : /apps/js/login.js
Desc. : JS - Halaman Proses Login
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 15th, 2008.
Last Modified : June 28th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(function(){
$('#butLogin').click(LoginJS.Proses_Login);
$('#Username').keydown(function(e){
if (e.which==13) $('#Password').focus();
});
$('#Password').keydown(function(e){
if (e.which==13) $('#butLogin').trigger('click');
});
LoginJS.Tampil_Login();
document.oncontextmenu = new Function ('return false');
if (jQuery.backstretch){
jQuery.backstretch([
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_960.jpg" }
],
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_960.jpg" }
],
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/tugu_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/tugu_960.jpg" }
]
], {
duration: 6000,
transition: 'push_left|push_right|cover_up|cover_down|fade',
transitionDuration: 600
});
}
});
var LoginJS = {
Tampil_Login: function(){
var Username = FoniaJS.getCookie('Username');
if (Username != '') {
$('#Username').val(Username);
FoniaJS.setFocus('#Password');
} else {
FoniaJS.setFocus('#Username');
}
},
Proses_Login: function(){
if (!$('#Username').val()){
$('#Username').focus();
FoniaJS.showError('Silahkan masukkan ID Pengguna !');
return false;
}
if (!$('#Password').val()){
$('#Password').focus();
FoniaJS.showError('Silahkan masukkan Kata Sandi !');
return false;
}
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/login.php',
sendParam: ['mode=login','Username','Password'],
onSuccess: function(respon){
if (respon.hasil == 'SUKSES'){
FoniaJS.setCookie('Username', $('#Username').val(), 365);
$('#divLoginMsg').html(respon.pesan).removeClass('d-none');
$('.input-group').addClass('d-none');
setTimeout(function(){self.location = FoniaJS.WEB_PATH+'?auth='+(respon.token??'');}, 1600);
}else{
FoniaJS.showInfo(respon.pesan, 3000);
if (respon.redir) setTimeout(function(){self.location = respon.redir;}, 600);
}
}
}).send();
}
};
+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_kec.js
Desc. : JS - Cetak Bahan Forum untuk Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoBahanKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_opd.js
Desc. : JS - Cetak Bahan Forum untuk OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoBahanOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+45
View File
@@ -0,0 +1,45 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_forum.js
Desc. : JS - Cetak Hasil Forum / Forum
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilForumJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
proses_pdf: function(){
if ($('#ForumID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Forum !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','ForumID']
}).send();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_opd.js
Desc. : JS - Cetak Hasil Forum / OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#OPDID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Perangkat Daerah !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_status.js
Desc. : JS - Cetak Hasil Forum / Status
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilStatusJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#StatusID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Status !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
+55
View File
@@ -0,0 +1,55 @@
/*******************************************************************
Module : /apps/js/sys/chpasswd.js
Desc. : JS - Perubahan Password Operator
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var SYSChpasswdJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butSave').click(function(){this.proses_save();}.bind(this));
FoniaJS.setFocus('#LPass');
},
proses_save: function(){
if ($("#LPass").val()=="") {
FoniaJS.showInfo("Silakan masukkan password lama Anda!");
FoniaJS.setFocus("#LPass");
return false;
} else if ($("#BPass1").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 1 Anda!");
FoniaJS.setFocus("#BPass1");
return false;
} else if ($("#BPass2").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 2 Anda!");
FoniaJS.setFocus("#BPass2");
return false;
} else if ($("#BPass1").val()!=$("#BPass2").val()) {
FoniaJS.showInfo("Password baru 1 dan 2 Anda tidak sama!");
FoniaJS.setFocus("#BPass1");
return false;
}
new Request.JSON({
url: this.PHP,
sendParam: ['data=chpasswd','LPass','BPass1','BPass2'],
onSuccess: function(ajson){
if (ajson.status == true) {
FoniaJS.showInfo(ajson.msg);
FoniaJS.closeWindow('#win'+this.KODE);
} else {
FoniaJS.showError(ajson.msg);
}
}.bind(this)
}).send();
}
};
+159
View File
@@ -0,0 +1,159 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/desa2.js
Desc. : JS - Input Usulan Desa Susulan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulDesa2JS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEL').click(function(){
if ($('#KelID').val()>0) this.show_hide(2);
}.bind(this));
$('#butBEL').click(function(){
if ($('#BelID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divBEL').addClass('d-none'); $('#butBEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#BelID').val(0);
$('#Nama_BEL').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butBEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divBEL').removeClass('d-none'); this.data_query('tabel-bel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
bel_select: function(acell){
$('#BelID').val(acell[0]);
$('#Nama_BEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulDesa').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','KelID','BelID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulDesa').submit();
if (true !== $('#formUsulDesa').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','BelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','KecID']
}).send();
} else if (tipe=="tabel-bel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-bel','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID','KelID','BelID']
}).send();
}
}
};
+117
View File
@@ -0,0 +1,117 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','KecID','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Kecamatan', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulKec').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulKec').submit();
if (true !== $('#formUsulKec').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID']
}).send();
}
}
};
+183
View File
@@ -0,0 +1,183 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/forum/ba_kec.php
Desc. : PHP - Cetak Berita Acara / Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
function centang($urut=0, $nilai=0) {
return (($urut==$nilai && $nilai>0) ? "X" : "&nbsp;");
}
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_kec = Param::Get("KecID", 0);
$id_forum = Param::Get("ForumID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT N_Lokasi FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$cat_status = '<br><br><table class="ttd-ba-status"><tbody><tr><td class="judul" colspan="2">Keterangan :</td></tr>';
$db->Query("SELECT * FROM para_status WHERE Aktif=1 ORDER BY K_Status");
while ($db->Next()) {
$cat_status .= sprintf('<tr><td style="width:20px;">%s.</td><td>%s</td></tr>', $db->Row("K_Status"), $db->Row("N_Status"));
}
$cat_status .= '</tbody></table>';
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio>0) OR (JU=3))";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_forum==0) ? "" : " AND OPDID IN (SELECT OPDID FROM para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."')";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? "" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,F.ForumID ForumID2,F.N_Forum,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_forum F ON (F.ForumID=O.ForumID) LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY K.K_Lokasi,O.ForumID,O.K_OPD,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Berita Acara Kesepakatan<br>Forum Perangkat Daerah / Lintas Perangkat Daerah<br>Kabupaten Sambas Tahun '.($tahun-1).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th style="width:8%;">Kode</th><th style="width:4%;">Prio</th><th style="width:8%;">Desa</th><th>Usulan Kegiatan</th><th style="width:10%;">Volume</th><th style="width:15%;">Lokasi</th><th style="width:11%;">Jumlah</th><th style="width:3%;">1</th><th style="width:3%;">2</th><th style="width:3%;">3</th><th style="width:3%;">4</th><th style="width:3%;">5</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$t_ttd = 'Sambas, '.tgl_panjang().'<br>Wakil Peserta Forum Perangkat Daerah/Lintas Perangkat Daerah Kabupaten Sambas<br><br><table class="ttd-ba"><thead><tr><th>Unsur Perwakilan</th><th>Nama</th><th style="width:20%;">Tanda Tangan</th></tr></thead><tbody><tr><td>Kecamatan</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Bappeda</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>Perangkat Daerah</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
$_line = '<tr><td class="c">%s</td><td class="c b">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td><td class="c">%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="3" class="b">%s</td><td colspan="3" class="b">%s</td><td class="r b">%s</td><td colspan="5" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kkec = ""; $kfor = ""; $kopd = ""; $n_kec = "";
while ($db->Next()) {
$k_kec = $db->Row("K_Kec");
$n_kec = $db->Row("N_Kec");
if ($kkec == "") {
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
}
if ($kfor <> $db->Row("ForumID2")) {
$body .= sprintf($_sub, "forum", "Forum", $db->Row("N_Forum"), "");//rupiah($db->Row("FORUM_RUPIAH"))
$kfor = $db->Row("ForumID2");
}
if ($kkec <> $db->Row("K_Kec")) {
if ($kkec <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Kec"), $n_kec);
$body .= sprintf($_setfoot, $db->Row("K_Kec"));
$kfor = "";
}
$body .= sprintf($_sub, "kec", "Kecamatan", $db->Row("N_Kec"), "");//rupiah($db->Row("KEC_RUPIAH"))
$kkec = $db->Row("K_Kec");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", "Perangkat Daerah", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Kode_Usul"), $db->Row("Prio"), $db->Row("N_Desa"), $db->Row("Usulan2"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), centang(1,$db->Row("StatusID")), centang(2,$db->Row("StatusID")), centang(3,$db->Row("StatusID")), centang(4,$db->Row("StatusID")), centang(5,$db->Row("StatusID")));
}
$body .= sprintf($t_foot);
if ($kkec <> "") {
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd".$k_kec, "Halaman Tanda Tangan Peserta Forum");
$body .= sprintf($_setfoot, "ttd".$k_kec);
$body .= $t_ttd . $cat_status;
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("BA Forum ".$nama_kec);
$mpdf->Output("BA Forum ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-opd" ) {
$aoption = array('type' => "option", 'id' => "OPDID", 'value' => 0, 'avalue' => array());
$db->Query("SELECT * FROM vi_para90_opd WHERE Aktif=1 AND IK=0".($id_forum>0?" AND ForumID='".$id_forum."'":"").($_SESSION['__WEB_USER']['Level']==3?" AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")":""));
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"SEMUA OPD");
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("OPDID");
$aoption['avalue'][] = array('value'=>$db->Row("OPDID"), 'html'=>$db->Row("Nama_OPD"));
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID='".$_SESSION['__WEB_USER']['KecID']."'" : " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", array(0,"&nbsp;"));
$tforum = $form->option_db("_", "ForumID", 0, true, true, "para_forum", array("ForumID","N_Forum"), "Aktif=1 ORDER BY ForumID", array(0,"SEMUA FORUM"), null, "RepoBAKecJS.oc_Forum()");
$topd = $form->option("_", "OPDID", 0, true, true, array(0 => "&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="ForumID">Nama Forum</label>
<div class="col-sm-8 col-lg-9">'.$tforum.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+267
View File
@@ -0,0 +1,267 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/bahan_opd.php
Desc. : PHP - Kelola Bahan Forum OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID)");
$obj->add_field("OPDID2", "ID", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Perangkat Daerah", "awr");
$obj->add_field("ITEM_KEC", "Kec", "r", "rupiah");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
//$obj->set_row_color("W_OPD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FBahanOPDJS.opd_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "FBahanOPDJS.kec_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Usulan", "FBahanOPDJS.kel_select");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi");
$sql->add_param("Dusun");
$sql->add_param("RT");
$sql->add_param("Masalah");
$sql->add_param("Usulan");
$sql->add_param("Sasaran");
$sql->add_param("Waktu");
$sql->add_param("Volume");
$sql->add_param("SatuanID");
$sql->add_param("Rupiah");
$sql->add_param("OPDID");
$sql->add_param("Prio");
$sql->add_param("StatusID");
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID");
$sql->UpdateDB();
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Ubah", "FBahanOPDJS.keg_ubah");
$obj->set_func_navi("FBahanOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], $enable, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Bahan Forum OPD - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Perangkat Daerah" type="text" readonly>
<input id="OPDID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+257
View File
@@ -0,0 +1,257 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/forum_opd.php
Desc. : PHP - Forum OPD / Pembahasan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = true;
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-opd","tabel-kec","tabel-kel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$msql = "Aktif=1";
if ( $data == "tabel-opd" ) {
$msql .= ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")": "";
$msql .= " AND IK=0";
} else if ( $data == "tabel-kec" ) {
$qsql .= " AND OPDID='".$id_opd."'";
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND OPDID='".$id_opd."' AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
}
}
if ( $data == "tabel-opd" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.OPDID OPDID2,M.K_OPD,M.N_OPD,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT * FROM para90_opd WHERE ".$msql.") M LEFT JOIN (SELECT OPDID,COUNT(DISTINCT KecID) ITEM_KEC,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY OPDID) K ON (K.OPDID=M.OPDID)");
$obj->add_field("OPDID2", "ID", "hid");
$obj->add_field("K_OPD", "Kode", "c");
$obj->add_field("N_OPD", "Perangkat Daerah", "awr");
$obj->add_field("ITEM_KEC", "Kec", "r", "rupiah");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_OPD", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Kecamatan", "FForumOPDJS.opd_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-opd')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divOPD");
} else if ( $data == "tabel-kec" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Desa", "FForumOPDJS.kec_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,IFNULL(M.LokasiID,0) KelID2,IFNULL(M.K_Lokasi,'000') K_Lokasi,IFNULL(M.N_Lokasi,'USULAN KECAMATAN') N_Lokasi,IF(K.ITEM_KEG=K.ITEM_UDAH,1,0) WD FROM (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah) TOT_RUPIAH,SUM(IF(StatusID>0,1,0)) ITEM_UDAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K LEFT JOIN para_lokasi M ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("ITEM_UDAH", "Dibahas", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->set_row_color("WD", 1, "rsuccess");
$obj->add_row_btn("save", "Usulan", "FForumOPDJS.kel_select");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["update"])) {
$db->Query("UPDATE mus_usulan_desa SET StatusID='".Param::Get("StatusID",0)."' WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."'");
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume,' ',S.N_Satuan) N_Satuan,IF(R.StatusID=0,'',T.S_Status) X_Status FROM (SELECT * FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID) LEFT JOIN para_status T ON (R.StatusID=T.StatusID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah) Rupiah FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("X_Status", "Status", "l");
$obj->set_field_order("Usulan", "A");
$obj->set_row_color("StatusID", 1, "rgreen");
$obj->set_row_color("StatusID", 2, "ryellow");
$obj->set_row_color("StatusID", 3, "rblue");
$obj->set_row_color("StatusID", 4, "rpurple");
$obj->set_row_color("StatusID", 5, "rred");
$obj->add_row_btn("clipboard", "Detail", "FForumOPDJS.keg_ubah");
$obj->add_row_btn("check-all", "Setuju", "FForumOPDJS.keg_1");
$obj->add_row_btn("check", "APBD P", "FForumOPDJS.keg_2");
$obj->add_row_btn("arrow-up-circle", "APBN", "FForumOPDJS.keg_3");
$obj->add_row_btn("arrow-down-circle", "Tangguh", "FForumOPDJS.keg_4");
$obj->add_row_btn("x-lg", "Tolak", "FForumOPDJS.keg_5");
$obj->set_func_navi("FForumOPDJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi", $adetail['Lokasi'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT", $adetail['RT'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun", $adetail['Dusun'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah", $adetail['Masalah'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan", $adetail['Usulan'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran", $adetail['Sasaran'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu", $adetail['Waktu'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume", $adetail['Volume'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID", $adetail['SatuanID'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah", $adetail['Rupiah'], $enable, true, "double", "nilai anggaran");
$tprio = $form->option("_", "Prio", $adetail['Prio'], $enable, true, MusPrio_Array());
$tstatus = $form->option_db("_", "StatusID", $adetail['StatusID'], true, false, "para_status", array("StatusID","N_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
$ajson['html'] = '<form id="formBahanOPD" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
<label class="col-sm-3 col-lg-5 col-form-label text-end" for="Prio">Prioritas</label>
<div class="col-sm-2 col-lg-1">'.$tprio.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Status / Hasil</label>
<div class="col">'.$tstatus.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Forum OPD - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_OPD" placeholder="Perangkat Daerah" type="text" readonly>
<input id="OPDID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butOPD"><span><i class="bi-arrow-left-right"></span></i>OPD</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div id="divOPD">&nbsp;</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/musrenbang.php
Desc. : PHP - Fungsi Musrenbang
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
function ID_Usulan_Desa($id_rpjmd = 0, $tahun = 0) {
global $fdb;
$ino = 1;
$fdb->Query("SELECT MAX(UsulanLID)+1 Nomor FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$tahun."'");
if ($fdb->Next()) $ino = $fdb->Row("Nomor", 1);
return $ino;
}
function Kode_Usulan_Desa($tahun = 0, $id_desa = 0) {
global $fdb;
$k_desa = "000";
if ($id_desa > 0) {
$fdb->Query("SELECT K_Lokasi FROM para_lokasi WHERE LokasiID='".$id_desa."' LIMIT 1");
if ($fdb->Next()) $k_desa = $fdb->Row("K_Lokasi");
}
$tno = $k_desa . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND LEFT(Kode,".strlen($tno).")='".$tno."'");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function Kode_Usulan_Kec($tahun = 0, $id_kec = 0) {
global $fdb;
$k_kec = "00";
if ($id_kec > 0) {
$fdb->Query("SELECT RIGHT(K_Lokasi,2) Kode FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($fdb->Next()) $k_kec = $fdb->Row("Kode");
}
$tno = $k_kec . "-"; $ino = 0;
$fdb->Query("SELECT MAX(RIGHT(Kode,3)) Nomor FROM mus_usulan_desa WHERE Tahun='".$tahun."' AND KecID='".$id_kec."' AND JU=3");
if ($fdb->Next()) $ino = (int)$fdb->Row("Nomor", 0);
$tno .= isi_nol($ino+1, 3);
return $tno;
}
function MUSPrio($iprio=0) {
$hasil = '<select class="form-select form-select-sm" onchange="MUsulPrioJS.oc_Prio(this);" required=true aria-label="Pilihan Prioritas" >';
for ($o=0; $o<=5; $o++) {
$hasil .= '<option value="'.$o.'"'.($o==$iprio?' selected="selected"':'').'>'.$o.'</option>';
}
$hasil .= '</select>';
return $hasil;
}
function MusPrio_Array() {
return [0=>"0", 1=>"1", 2=>"2", 3=>"3", 4=>"4", 5=>"5"];
}
?>
+37
View File
@@ -0,0 +1,37 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/func/report.php
Desc. : PHP - Fungsi Report
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 15th, 2012.
Last Modified : January 9th, 2026.
(c) 2012 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
$fdb = (is_resource($fdb)) ? $fdb : new MySQL();
function Report_Empty($ltabel = "") {
global $fdb;
if ($ltabel == "") return false;
$fdb->Query("DELETE FROM rep_".$ltabel." WHERE (Unix='".user_unix()."' OR Unix<'".(user_unix()-604800)."') AND UserID='".user_id()."'");
}
function Report_Header($tlapor="", $tperiod="") {
$thasil = '<div style="text-align:center;font-size:12pt;"><b>'.strtoupper($_SESSION['__WEB_APP']['REG_NAME']);
$thasil .= (($tlapor=="") ? "" : '<br>'.$tlapor) . '</b>';
$thasil .= ($tperiod=="") ? "" : '<br><span style="font-size:11pt;">'.$tperiod.'</span>';
$thasil .= '</div><br>';
echo $thasil;
}
?>
+101
View File
@@ -0,0 +1,101 @@
<?php
/*******************************************************************
Module : /apps/php/index.php
Desc. : PHP - Halaman Utama Desktop
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 24th, 2010.
Last Modified : August 30th, 2020.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
use siaupheng\fonia3\Web\Register;
$db = $db ?? new MySQL();
$ajson = [];
$data = Param::Get("data");
if ( $data == "pagu-info" || $data == "pagu-chart" ) {
if ($_SESSION['__WEB_USER']['Level']==2) {
$tot_pagu = 0;
$db->Query("SELECT SUM(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].") AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))");
if ($db->Next()) $tot_pagu = $db->Row("Pagu");
$db->Query("SELECT L.K_Lokasi K_Kec,L.N_Lokasi N_Kec,U.Pagu FROM (SELECT KelID,SUM(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].") AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3)) GROUP BY KelID) U LEFT JOIN para_lokasi L ON (L.LokasiID=U.KelID) ORDER BY L.K_Lokasi");
} else {
$tot_pagu = 0;
$db->Query("SELECT SUM(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))");
if ($db->Next()) $tot_pagu = $db->Row("Pagu");
$db->Query("SELECT L.K_Lokasi K_Kec,L.N_Lokasi N_Kec,U.Pagu FROM (SELECT KecID,SUM(Rupiah2) Pagu FROM mus_usulan_desa WHERE Tahun='".$_SESSION['__WEB_APP']['RENC_THN']."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3)) GROUP BY KecID) U LEFT JOIN para_lokasi L ON (L.LokasiID=U.KecID) ORDER BY L.K_Lokasi");
}
}
if ( $data == "pagu-info" ) {
$pagu_info = '<h4 class="text-end">Rekapitulasi Usulan Forum OPD '.$_SESSION['__WEB_APP']['RENC_THN'].'</h4>';
$pagu_info .= '<table class="table table-striped">';
$pagu_info .= '<thead><tr role="row"><th>'.($_SESSION['__WEB_USER']['Level']==7?"Indikator":($_SESSION['__WEB_USER']['Level']==2?"Kelurahan / Desa":"Kecamatan")).'</th><th>Total Anggaran</th></tr></thead><tbody>';
while ($db->Next()){
$pagu_info .= sprintf('<tr role="row"><td class="left">%s</td><td class="right">%s</td></tr>', $db->Row("N_Kec"), rupiah2($db->Row("Pagu")));
}
$pagu_info .= '</tbody></table>';
$ajson['html'] = $pagu_info;
} else if ( $data == "pagu-chart" ) {
$ajson['datasets'] = array();
$ajson['labels'] = array();
$atmp = array(); $acol = array();
$atmp[] = 100;
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = "Belum Ada Usulan";
if ($db->RecordCount()>0) {
$atmp = array();
$acol = array();
$ajson['labels'] = array();
}
while ($db->Next()){
$atmp[] = round($db->Row("Pagu") / $tot_pagu * 100, 2);
$col_r = mt_rand( 0, 255 );
$col_g = mt_rand( 0, 255 );
$col_b = mt_rand( 0, 255 );
$acol[] = "rgb(".$col_r.",".$col_g.",".$col_b.")";
$ajson['labels'][] = $db->Row("N_Kec");
}
$ajson['datasets'][] = array('data'=>$atmp, 'backgroundColor'=>$acol);
} else if ( $data == "default" ) {
$aapp = $_SESSION['__WEB_APP'];
$ajson['content'] = '
<div class="row">
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome1">
<div class="my-auto text-center"><img class="img-fluid" src="'.$aapp['WEB_PATH'].'assets/images/logo300.png" title="'.$aapp['REG_NAME'].'" style="width:25%">
<p class="mt-2">'.$aapp['REG_ADDRESS'].'<br>
'.$aapp['REG_CITY'].' '.$aapp['REG_POSTCODE'].'</p>
<p class="mt-3 mb-3"><i>Register ID : '.Register::reg_id().'</i></p>
<p>'.$aapp['APP_NAMES'].'<br>'.$aapp['APP_NAME'].' Ver. '.$aapp['APP_VER'].'<br>
Updated : '.$aapp['APP_UPDATED'].'</p></div>
</div></div>
</div>
<div class="col-sm-12 col-md-6 d-flex align-items-stretch">
<div class="card w-100 h-100"><div class="card-body d-flex flex-column" id="divHome2">
<div class="chart-wrapper pb-2">
<canvas id="pieChart"></canvas>
</div>
</div></div>
</div>
</div>
';
}
send_json($ajson);
?>
+60
View File
@@ -0,0 +1,60 @@
<?php
/*******************************************************************
Module : /apps/php/login.php
Desc. : PHP - Halaman Proses Login
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 5th, 2008.
Last Modified : June 28th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$mode = Param::Get("mode");
$aapp = $_SESSION['__WEB_APP'];
if ($mode == "login") {
$auser = [];
$auth->set_id_reg($aapp['PARENT_CODE']);
if ($auth->user_check(Param::Get("Username"), Param::Get("Password"))) {
$auser = $auth->user_data(Param::Get("Username"));
$_appurl = $_GET['redir'];
if (!empty($_appurl)) {
$_redir = $auth->redirect($_appurl);
//jika kosong, tampilkan pesan redirect tidak diijinkan
//jika berisi, js harus redirect ...
}
$ajson['token'] = $_SESSION['APP_TOKEN'];
$ajson['hasil'] = "SUKSES";
$ajson['pesan'] = '<div class="border border-success p-2 pt-3"><h5>Login berhasil,</h5><p><b>'.$auser["Username"].'</b> / '.$auser["Nama"].'<br>'.$auser["Posisi"].'<br><i>login terakhir :</i><br>'.tgl_sql2str($auser["Last_Date"],true).'<br>'.$auser["Last_IP"].'</p></div>';
} else {
$ajson['hasil'] = "ERROR";
$ajson['pesan'] = "Periksa kembali ID Pengguna atau Password Anda ...";
}
} else if ($mode == "logout") {
$auth->logout();
foreach ($_SESSION as $_key => $_val) {
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
}
require(__DIR__."/../cfg/app.php");
$nhost = ($_SERVER['SERVER_ADDR'] == "127.0.0.1") ? $_SESSION['__WEB_APP']['WEB_PATH']."../" : $_SESSION['__WEB_APP']['PARENT_SITE'];
$ajson['nexthost'] = $nhost;
}
send_json($ajson);
?>
+134
View File
@@ -0,0 +1,134 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/bahan_kec.php
Desc. : PHP - Cetak Bahan Forum untuk Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_kec = "Semua Kecamatan";
if ($id_kec > 0) {
$db->Query("SELECT * FROM para_lokasi WHERE LokasiID='".$id_kec."' LIMIT 1");
if ($db->Next()) $nama_kec = $db->Row("N_Lokasi");
}
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
// proses rekap database
Report_Empty("mus_kec");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_kec SELECT T.Tahun,T.KecID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.KecID,T.OPDID");
$db->Query("SELECT T.*,IFNULL(D.K_Kec,'000') K_Kec,IFNULL(D.N_Kec,'USULAN KECAMATAN') N_Kec,IFNULL(D.N_Kec,'') N_Kec2,D.N_Desa,CONCAT(D.K_Kec,'.',T.Kode) Kode_Usul,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,RC.*,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_kec RC ON (T.KecID=RC.KecID AND T.Tahun=RC.Tahun AND RC.UserID='".user_id()."' AND RC.Unix='".user_unix()."') LEFT JOIN rep_mus_opd RO ON (T.KecID=RO.KecID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY D.K_Kec,O.K_OPD,T.Prio,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Daftar Usulan Pembangunan Berdasarkan Kecamatan Untuk Pembahasan Renja '.($tahun-1).'<br>Di Dalam Forum PD/LPD Tahun '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>Ket</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="v">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="8" class="b">&nbsp;</td></tr>';
$_judul = '<tr><td>&nbsp;</td><td colspan="13" class="b" style="font-size:12pt;">%s</td></tr>';
$body = $t_head;
$kkec = ""; $kopd = ""; $kprio = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kkec <> $db->Row("K_Kec")) {
$body .= sprintf($_sub, "kec", $db->Row("N_Kec"), rupiah($db->Row("KEC_RUPIAH")));
$kkec = $db->Row("K_Kec");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", $n_opd, rupiah($db->Row("OPD_RUPIAH")));
if ($kopd <> "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$kopd = $db->Row("K_OPD");
}
if ($kprio <> $db->Row("Prio")) {
$body .= sprintf($_judul, $db->Row("Prio"));
$kprio = $db->Row("Prio");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("N_Kec2"));
}
$body .= sprintf($t_foot);
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Bahan Kecamatan ".$nama_kec);
$mpdf->Output("Bahan Kecamatan ".$nama_kec.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", ($_SESSION['__WEB_USER']['Level']==2?"":array(0,"SEMUA KECAMATAN")));
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null:array(0,"SEMUA OPD")));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>';
}
?>
+128
View File
@@ -0,0 +1,128 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/bahan_opd.php
Desc. : PHP - Cetak Bahan Forum untuk OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_opd = Param::Get("OPDID", 0);
$id_kec = Param::Get("KecID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_opd = "Semua OPD";
if ($id_opd > 0) {
$db->Query("SELECT N_OPD FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $nama_opd = $db->Row("N_OPD");
}
$tsql = " Tahun='".$tahun."' AND ((JU<3 AND Prio IN (1,2,3,4,5)) OR (JU=3))";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_kec==0) ? "" : " AND KecID='".$id_kec."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID");
$db->Query("SELECT T.*,D.N_Kec,D.N_Desa,CONCAT(D.K_Kec,'.',T.Kode) Kode_Usul,CONCAT(T.Volume,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN vi_para_desa D ON (D.DesaID=T.KelID) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY O.K_OPD,T.Prio,D.K_Kec,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Daftar Usulan Pembangunan Berdasarkan OPD Untuk Pembahasan Renja '.($tahun-1).'<br>Di Dalam Forum PD/LPD Tahun '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>Ket</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="8" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kopd = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
}
$body .= sprintf($_sub, "opd", $n_opd, rupiah($db->Row("OPD_RUPIAH")));
if ($kopd <> "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi"), rupiah($db->Row("Rupiah")), $db->Row("N_Desa"), $db->Row("N_Kec"));
}
$body .= sprintf($t_foot);
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Bahan OPD ".$nama_opd);
$mpdf->Output("Bahan OPD ".$nama_opd.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$q_kec = ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tkec = $form->option_db("_", "KecID", 0, true, true, "para_lokasi", array("LokasiID","N_Lokasi"), "Aktif=1".$q_kec." ORDER BY N_Lokasi", ($_SESSION['__WEB_USER']['Level']==2?"":array(0,"SEMUA KECAMATAN")));
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null:array(0,"SEMUA OPD")));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KecID">Nama Kecamatan</label>
<div class="col-sm-8 col-lg-9">'.$tkec.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>';
}
?>
+169
View File
@@ -0,0 +1,169 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_forum.php
Desc. : PHP - Cetak Hasil Forum / Forum
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_forum = Param::Get("ForumID", 0);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_forum = "Semua Forum";
if ($id_forum > 0) {
$db->Query("SELECT N_Forum FROM para_forum WHERE ForumID='".$id_forum."' LIMIT 1");
if ($db->Next()) $nama_forum = $db->Row("N_Forum");
}
$cat_status = '<br><br><table class="ttd-ba-status"><tbody><tr><td class="judul" colspan="2">Keterangan :</td></tr>';
$db->Query("SELECT * FROM para_status WHERE Aktif=1 ORDER BY K_Status");
while ($db->Next()) {
$cat_status .= sprintf('<tr><td style="width:20px;">%s.</td><td>%s</td></tr>', $db->Row("K_Status"), $db->Row("N_Status"));
}
$cat_status .= '</tbody></table>';
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_forum==0) ? "" : " AND OPDID IN (SELECT OPDID FROM para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."')";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,F.ForumID,F.N_Forum,A.K_Status,A.S_Status,RO.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN para_forum F ON (F.ForumID=O.ForumID) LEFT JOIN rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') ORDER BY O.ForumID,O.K_OPD,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$t_ttd = 'Sambas, '.tgl_panjang().'<br><br><table class="ttd"><thead><tr><th>Nama</th><th>OPD</th><th style="width:20%;">Paraf</th></tr></thead><tbody><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td style="width:2%%;">%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kfor = ""; $kopd = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kfor <> $db->Row("ForumID")) {
if ($kfor <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd", "Halaman Tanda Tangan OPD");
$body .= sprintf($_setfoot, "ttd");
$body .= $t_ttd . $cat_status;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
}
$body .= sprintf($_sub, "forum", $db->Row("N_Forum"), "&nbsp;");
$kfor = $db->Row("ForumID");
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$body .= sprintf($t_foot);
if ($kfor <> "") {
$body .= '<pagebreak orientation="landscape" />';
$html .= sprintf($footer, "ttd", "Halaman Tanda Tangan OPD");
$body .= sprintf($_setfoot, "ttd");
$body .= $t_ttd . $cat_status;
}
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Hasil Forum ".$nama_forum);
$mpdf->Output("Hasil Forum ".$nama_forum.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "option-opd" ) {
$aoption = array('type' => "option", 'id' => "OPDID", 'value' => 0, 'avalue' => array());
$db->Query("SELECT * FROM vi_para90_opd WHERE Aktif=1 AND ForumID='".$id_forum."'".($_SESSION['__WEB_USER']['Level']==3?" AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")":""));
if ($db->RecordCount()<>1) $aoption['avalue'][] = array('value'=>0, 'html'=>"");
while ($db->Next()) {
if ($db->RecordCount()==1) $aoption['value'] = $db->Row("OPDID");
$aoption['avalue'][] = array('value'=>$db->Row("OPDID"), 'html'=>$db->Row("Nama_OPD"));
}
$ajson[] = $aoption;
} else if ( $data == "default") {
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$tforum = $form->option_db("_", "ForumID", 0, true, true, "para_forum", array("ForumID","N_Forum"), "Aktif=1 ORDER BY ForumID", array(0,"&nbsp;"), null, "RepoHasilForumJS.oc_Forum()");
$topd = $form->option("_", "OPDID", 0, true, true, array(0 => "&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="ForumID">Nama Forum</label>
<div class="col-sm-8 col-lg-9">'.$tforum.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+132
View File
@@ -0,0 +1,132 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_opd.php
Desc. : PHP - Cetak Hasil Forum / OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_opd = "Semua OPD";
if ($id_opd > 0) {
$db->Query("SELECT N_OPD FROM para90_opd WHERE OPDID='".$id_opd."' LIMIT 1");
if ($db->Next()) $nama_opd = $db->Row("N_OPD");
}
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_opd");
Report_Empty("mus_stat");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.KecID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID");
$db->Query("INSERT INTO rep_mus_stat SELECT T.Tahun,T.KecID,T.OPDID,T.StatusID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.OPDID,T.StatusID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,A.K_Status,A.S_Status,A.N_Status,RO.*,RS.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_opd RO ON (T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') LEFT JOIN rep_mus_stat RS ON (T.OPDID=RS.OPDID AND T.StatusID=RS.StatusID AND T.Tahun=RS.Tahun AND RS.UserID='".user_id()."' AND RS.Unix='".user_unix()."') ORDER BY O.K_OPD,A.K_Status,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kopd = ""; $kstat = ""; $n_opd = "";
while ($db->Next()) {
$n_opd = $db->Row("N_OPD");
if ($kopd == "") {
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
if ($kopd <> $db->Row("K_OPD")) {
if ($kopd <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_OPD"), $n_opd);
$body .= sprintf($_setfoot, $db->Row("K_OPD"));
}
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
if ($kstat <> $db->Row("K_Status")) {
$body .= sprintf($_sub, "forum", $db->Row("N_Status"), rupiah($db->Row("STAT_RUPIAH")));
$kstat = $db->Row("K_Status");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$body .= sprintf($t_foot);
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Hasil OPD ".$nama_opd);
$mpdf->Output("Hasil OPD ".$nama_opd.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", array(0,"&nbsp;"));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"SEMUA STATUS"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>';
}
send_json($ajson);
?>
+133
View File
@@ -0,0 +1,133 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/repo/hasil_status.php
Desc. : PHP - Cetak Hasil Forum / Status
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 6th, 2024.
(c) 2014 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
ini_set("pcre.backtrack_limit", 100000000);
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/report.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$tahun = Param::Get("Tahun", $_SESSION['__WEB_APP']['RENC_THN']);
$id_opd = Param::Get("OPDID", 0);
$id_status = Param::Get("StatusID", 0);
if ( $data == "pdf" || $data == "print") {
$nama_status = "Semua Status";
if ($id_status > 0) {
$db->Query("SELECT N_Status FROM para_status WHERE StatusID='".$id_status."' LIMIT 1");
if ($db->Next()) $nama_status = $db->Row("N_Status");
}
$tsql = " Tahun='".$tahun."'";
$tsql .= ($id_opd==0) ? "" : " AND OPDID='".$id_opd."'";
$tsql .= ($id_status==0) ? " AND StatusID>0" : " AND StatusID='".$id_status."'";
// proses rekap database
Report_Empty("mus_stat");
Report_Empty("mus_opd");
$db->Query("INSERT INTO rep_mus_stat SELECT T.Tahun,T.KecID,T.OPDID,T.StatusID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.StatusID");
$db->Query("INSERT INTO rep_mus_opd SELECT T.Tahun,T.StatusID,T.OPDID,T.KelID,SUM(T.Rupiah2),'".user_unix()."','".user_id()."' FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T GROUP BY T.StatusID,T.OPDID");
$db->Query("SELECT T.*,K.K_Lokasi K_Kec,K.N_Lokasi N_Kec,D.N_Lokasi N_Desa,CONCAT(IF(T.JU=3,'KEC',K.K_Lokasi),'.',T.Kode) Kode_Usul,CONCAT(T.Volume2,' ',S.N_Satuan) Vol_Satuan,O.S_OPD,O.K_OPD,O.N_OPD,A.K_Status,A.S_Status,A.N_Status,RO.*,RS.* FROM (SELECT * FROM mus_usulan_desa WHERE".$tsql.") T LEFT JOIN para_lokasi K ON (K.LokasiID=T.KecID AND K.Level=1) LEFT JOIN para_lokasi D ON (D.LokasiID=T.KelID AND D.Level=2) LEFT JOIN para_satuan S ON (S.SatuanID=T.SatuanID2) LEFT JOIN para_status A ON (A.StatusID=T.StatusID) LEFT JOIN para90_opd O ON (O.OPDID=T.OPDID) LEFT JOIN rep_mus_opd RO ON (T.StatusID=RO.KecID AND T.OPDID=RO.OPDID AND T.Tahun=RO.Tahun AND RO.UserID='".user_id()."' AND RO.Unix='".user_unix()."') LEFT JOIN rep_mus_stat RS ON (T.StatusID=RS.StatusID AND T.Tahun=RS.Tahun AND RS.UserID='".user_id()."' AND RS.Unix='".user_unix()."') ORDER BY A.K_Status,O.K_OPD,T.Prio,T.JU DESC,T.Kode");
}
if ( $data == "pdf" ) {
$html = '<p class="judul">Hasil Pembahasan Usulan Kegiatan Pembangunan<br>Pada Forum OPD Untuk Penyusunan Renja '.($tahun).'</p>';
$footer = '<htmlpagefooter name="RepFoot%s"><table class="footer"><tr><td width="33%%">eForum - Kabupaten Sambas</td><td width="34%%" class="c">%s</td><td width="33%%" class="r i">{DATE d-m-Y H:i} / Halaman : {PAGENO} dari {nbpg}</td></tr></table></htmlpagefooter>';
$_setfoot = '<sethtmlpagefooter name="RepFoot%s" show-this-page="1" value="on" />';
$t_head = '<div><table class="garis" autosize="1"><thead><tr><th>No. Prio</th><th>Usulan Kegiatan</th><th>Kode Rincian</th><th>Volume</th><th>Lokasi</th><th>Jumlah</th><th colspan="2">Lokasi (Desa/Kec)</th><th colspan="2">Keterangan</th></tr></thead><tbody>';
$t_foot = '</tbody></table></div>';
$_line = '<tr><td class="c">%s</td><td>%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td class="r">%s</td><td>%s</td><td>%s</td><td style="width:2%%;">%s</td><td>%s</td></tr>';
$_sub = '<tr class="%s"><td colspan="5" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$_sub_stat = '<tr class="%s"><td class="c b bg-blue">%s</td><td colspan="4" class="b">%s</td><td class="r b">%s</td><td colspan="4" class="b">&nbsp;</td></tr>';
$body = $t_head;
$kstat = ""; $kopd = ""; $n_stat = "";
while ($db->Next()) {
$n_stat = $db->Row("N_Status");
if ($kstat == "") {
$html .= sprintf($footer, $db->Row("K_Status"), $n_stat);
$body .= sprintf($_setfoot, $db->Row("K_Status"));
}
if ($kstat <> $db->Row("K_Status")) {
if ($kstat <> "") {
$body .= $t_foot;
$body .= '<pagebreak orientation="landscape" />';
$body .= $t_head;
$html .= sprintf($footer, $db->Row("K_Status"), $n_stat);
$body .= sprintf($_setfoot, $db->Row("K_Status"));
}
$body .= sprintf($_sub_stat, "forum", $db->Row("K_Status"), $db->Row("N_Status"), rupiah($db->Row("STAT_RUPIAH")));
$kstat = $db->Row("K_Status");
}
if ($kopd <> $db->Row("K_OPD")) {
$body .= sprintf($_sub, "opd", $db->Row("N_OPD"), rupiah($db->Row("OPD_RUPIAH")));
$kopd = $db->Row("K_OPD");
}
$body .= sprintf($_line, $db->Row("Prio"), $db->Row("Usulan2"), $db->Row("Kode_Usul"), $db->Row("Vol_Satuan"), $db->Row("Lokasi2"), rupiah($db->Row("Rupiah2")), $db->Row("N_Desa"), $db->Row("N_Kec"), $db->Row("K_Status"), ($db->Row("S_Status")==""?"&nbsp;":$db->Row("S_Status")));
}
$body .= sprintf($t_foot);
$mpdf = new \Mpdf\Mpdf([
'mode' => 'c',
'format' => 'A4-L',
'margin_left' => 8,
'margin_right' => 8,
'margin_top' => 8,
'margin_header' => 5,
'margin_footer' => 5
]);
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents($_SESSION['__WEB_APP']['REAL_PATH'].'assets/css/pdf/forum.css');
$mpdf->WriteHTML($css, \Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($html . $body, \Mpdf\HTMLParserMode::HTML_BODY);
$mpdf->SetAuthor($_SESSION['__WEB_APP']['REG_NAME']);
$mpdf->SetCreator($_SESSION['__WEB_APP']['APP_NAME']." v".$_SESSION['__WEB_APP']['APP_VER']);
$mpdf->setTitle("Hasil Status ".$nama_status);
$mpdf->Output("Hasil Status ".$nama_status.".pdf", \Mpdf\Output\Destination::INLINE);
} else if ( $data == "default") {
$q_opd = ($_SESSION['__WEB_USER']['Level']==3) ? " AND OPDID IN (".$_SESSION['__WEB_USER']['AK_OPD'].")" : "";
$form = new Form($db);
$ttahun = $form->option_db("_", "Tahun", $tahun, true, true, "para_periode", array("Tahun","Tahun"), "Tahun BETWEEN '".$_SESSION['__WEB_APP']['Tahun_Min']."' AND '".$_SESSION['__WEB_APP']['Tahun_Max']."'");
$topd = $form->option_db("_", "OPDID", 0, true, true, "vi_para90_opd", array("OPDID","Nama_OPD"), "Aktif=1 AND IK=0".$q_opd." ORDER BY K_OPD", ($_SESSION['__WEB_USER']['Level']==3?null:array(0,"SEMUA OPD")));
$tstatus = $form->option_db("_", "StatusID", 0, true, true, "vi_para_status", array("StatusID","Nama_Status"), "Aktif=1 ORDER BY K_Status", array(0,"&nbsp;"));
echo '
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Tahun">Tahun Data</label>
<div class="col-sm-4 col-lg-5">'.$ttahun.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="StatusID">Nama Status</label>
<div class="col-sm-8 col-lg-9">'.$tstatus.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Deerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>';
}
send_json($ajson);
?>
+52
View File
@@ -0,0 +1,52 @@
<?php
/*******************************************************************
Module : /apps/php/sys/chpasswd.php
Desc. : PHP - Perubahan Password Operator
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Form;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$data = Param::Get("data");
if ( $data == "default") {
$form = new Form($db);
$form->password("Password Lama", "LPass", $l_pass, true, true, "masukkan password lama", 20);
$form->password("Password Baru 1", "BPass1", $b_pass1, true, true, "masukkan password baru 1", 20);
$form->password("Password Baru 2", "BPass2", $b_pass2, true, true, "masukkan password baru 2", 20);
$form->show(' _LPass_ _BPass1_ _BPass2_ ');
} else if ( $data == "chpasswd") {
$l_pass = Param::Get("LPass");
$b_pass1 = Param::Get("BPass1");
$b_pass2 = Param::Get("BPass2");
$ajson['status'] = false;
if ($auth->user_check(user_user(), $l_pass)) {
$db->Query("UPDATE app_operator SET Password=MD5('".$b_pass1."') WHERE UserID='".user_id()."'");
$ajson['status'] = true;
$ajson['msg'] = "Sukses merubah password Anda!";
} else {
$ajson['msg'] = "Password lama Anda salah!";
}
}
send_json($ajson);
?>
+289
View File
@@ -0,0 +1,289 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/desa2.php
Desc. : PHP - Input Usulan Desa Susulan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = 1; //Param::Get("Hak_Usulan", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_kel = Param::Get("KelID", 0);
$id_bel = Param::Get("BelID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-kel","tabel-bel","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU < 3";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-kel" ) {
$qsql .= " AND KecID='".$id_kec."'";
$msql .= " AND Level=2 AND IndukID='".$id_kec."'";
} else if ( $data == "tabel-bel" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."'";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."' AND KelID='".$id_kel."' AND BelID='".$id_bel."'";
}
}
if ( $data == "tabel-kec" ) {
$f_usul = (in_array($_SESSION['__WEB_USER']['Level'],[0])) ? 1: 0;
if (in_array($_SESSION['__WEB_USER']['Level'],[2,7])) {
$f_usul = "IFNULL(H.Hak_Usulan,1)";
}
$qakses = "Tahun='".$thn_renja."'";
$qakses .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,".$f_usul." Hak_Usulan FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(DISTINCT KelID) ITEM_KEL,COUNT(*) ITEM_KEG,SUM(Rupiah2) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID) LEFT JOIN (SELECT KecID,Hak_Usulan FROM sippd_akses_mus WHERE ".$qakses." ORDER BY KecID) H ON (H.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("Hak_Usulan", "Akses", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEL", "Desa", "r", "rupiah");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Desa", "FUsulDesa2JS.kec_select");
$obj->set_func_navi("FUsulDesa2JS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-kel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KelID2,M.K_Lokasi,M.N_Lokasi FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KelID,COUNT(*) ITEM_KEG,SUM(Rupiah2) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KelID) K ON (K.KelID=M.LokasiID)");
$obj->add_field("KelID2", "ID", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Desa", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Belanja", "FUsulDesa2JS.kel_select");
$obj->set_func_navi("FUsulDesa2JS.data_query('tabel-kel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEL");
} else if ( $data == "tabel-bel" ) {
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.BelID BelID2,M.K_Belanja,M.N_Belanja FROM (SELECT * FROM para_belanja WHERE ".$msql.") M LEFT JOIN (SELECT BelID,COUNT(*) ITEM_KEG,SUM(Rupiah2) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY BelID) K ON (K.BelID=M.BelID)");
$obj->add_field("BelID2", "ID", "hid");
$obj->add_field("K_Belanja", "Kode", "c");
$obj->add_field("N_Belanja", "Jenis Belanja", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("K_Belanja", "A");
$obj->add_row_btn("save", "Usulan", "FUsulDesa2JS.bel_select");
$obj->set_func_navi("FUsulDesa2JS.data_query('tabel-bel')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divBEL");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["insert","update","delete"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi2");
$sql->add_param("Dusun2");
$sql->add_param("RT2");
$sql->add_param("Masalah2");
$sql->add_param("Usulan2");
$sql->add_param("Sasaran2");
$sql->add_param("Waktu2");
$sql->add_param("Volume2");
$sql->add_param("SatuanID2");
$sql->add_param("Rupiah2");
$sql->add_param("OPDID");
$sql->add_param("FUbah", 1); //update oleh forum
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
if ( $mode_detail == "insert" ) {
$id_usul = ID_Usulan_Desa($id_rpjmd, $thn_renja);
$sql->add_param("RPJMDID", $id_rpjmd);
$sql->add_param("Tahun", $thn_renja);
$sql->add_param("UsulanLID", $id_usul);
$sql->add_param("KecID", $id_kec);
$sql->add_param("KelID", $id_kel);
$sql->add_param("BelID", $id_bel);
$sql->add_param("Kode", Kode_Usulan_Desa($thn_renja, $id_kel));
$sql->add_param("K_RKA", "CONCAT(Tahun,'-',Kode)", true);
$sql->add_param("JU", 1); //jenis usulan tambahan
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$sql->UpdateDB();
} else if ( $mode_detail == "delete" ) {
$sql->DeleteDB();
}
if (in_array($mode_detail, ["insert","update"])) {
$db->Query("UPDATE mus_usulan_desa SET Lokasi=Lokasi2,Dusun=Dusun2,RT=RT2,Masalah=Masalah2,Usulan=Usulan2,Sasaran=Sasaran2,Waktu=Waktu2,Volume=Volume2,SatuanID=SatuanID2,Rupiah=Rupiah2 WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' AND FUbah=1 AND JU=1");
}
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume2,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(BAksi=0,'Belum Verifikasi','Ok') XKet,IF(BAksi=0,0,1) XAksi FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah2) Rupiah2 FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan2", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi2", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah2", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("XKet", "Status", "l");
$obj->set_field_order("Usulan2", "A");
$obj->set_row_color("BAksi", 1, "rsuccess");
$obj->set_row_color("BAksi", 2, "rdanger");
$obj->set_row_color("BAksi", 3, "rwarning");
$obj->set_row_control("JU", 1);
if ($efor_enable) {
$obj->add_row_btn("clipboard", "Ubah", "FUsulDesa2JS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "FUsulDesa2JS.keg_hapus", "KelID", $id_kel);
$obj->set_func_btn("FUsulDesa2JS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "FUsulDesa2JS.keg_ubah");
}
$obj->set_func_navi("FUsulDesa2JS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi2", $adetail['Lokasi2'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT2", $adetail['RT2'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun2", $adetail['Dusun2'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah2", $adetail['Masalah2'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan2", $adetail['Usulan2'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran2", $adetail['Sasaran2'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu2", $adetail['Waktu2'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tvol = $form->textbox("_", "Volume2", $adetail['Volume2'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID2", $adetail['SatuanID2'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah2", $adetail['Rupiah2'], $enable, true, "double", "nilai anggaran");
$ajson['html'] = '<form id="formUsulDesa" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi2">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun2">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah2">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan2">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran2">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu2">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume2">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah2">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Usulan Desa (Susulan) - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<input id="Hak_Usulan" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEL" placeholder="Nama Desa" type="text" readonly>
<input id="KelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butKEL"><span><i class="bi-arrow-left-right"></span></i>Desa</button>
</div>
</div>
</div>
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_BEL" placeholder="Jenis Belanja" type="text" readonly>
<input id="BelID" type="hidden" value="0">
<button class="btn btn-info btn-ganti" type="button" id="butBEL"><span><i class="bi-arrow-left-right"></span></i>Belanja</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEL">&nbsp;</div>
<div id="divBEL">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+236
View File
@@ -0,0 +1,236 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/php/usul/kec.php
Desc. : PHP - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../../vendor/autoload.php");
require_once(__DIR__."/../func/musrenbang.php");
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\DB\SQL;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Table;
use siaupheng\fonia3\Web\Form;
$db = (is_resource($db)) ? $db : new MySQL();
$ajson = [];
$data = Param::Get("data");
$mode = Param::Get("mode");
$mode_detail = Param::Get("mode_detail");
$efor_enable = 1; //Param::Get("Hak_Usulan", 0);
$id_rpjmd = $_SESSION['__WEB_APP']['RENC_RPJMDID'];
$thn_renja = $_SESSION['__WEB_APP']['RENC_THN'];
$id_kec = Param::Get("KecID", 0);
$id_usul = Param::Get("UsulanLID", 0);
if ( in_array($data, ["tabel-kec","tabel-keg"]) ) {
$qsql = "Tahun='".$thn_renja."' AND JU=3";
$msql = "Aktif=1";
if ( $data == "tabel-kec" ) {
$qsql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$msql .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND LokasiID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": " AND Level=1 AND LokasiID>2";
} else if ( $data == "tabel-keg" ) {
$qsql .= " AND KecID='".$id_kec."'";
}
}
if ( $data == "tabel-kec" ) {
$f_usul = (in_array($_SESSION['__WEB_USER']['Level'],[0])) ? 1: 0;
if (in_array($_SESSION['__WEB_USER']['Level'],[2,7])) {
$f_usul = "IFNULL(H.Hak_Usulan,1)";
}
$qakses = "Tahun='".$thn_renja."'";
$qakses .= ($_SESSION['__WEB_USER']['Level']==2) ? " AND KecID IN (".$_SESSION['__WEB_USER']['AK_KEC'].")": "";
$obj = new Table($db);
$obj->set_query("SELECT K.*,M.LokasiID KecID2,M.K_Lokasi,M.N_Lokasi,".$f_usul." Hak_Usulan FROM (SELECT * FROM para_lokasi WHERE ".$msql.") M LEFT JOIN (SELECT KecID,COUNT(*) ITEM_KEG,SUM(Rupiah2) TOT_RUPIAH FROM mus_usulan_desa WHERE ".$qsql." GROUP BY KecID) K ON (K.KecID=M.LokasiID) LEFT JOIN (SELECT KecID,Hak_Usulan FROM sippd_akses_mus WHERE ".$qakses." ORDER BY KecID) H ON (H.KecID=M.LokasiID)");
$obj->add_field("KecID2", "ID", "hid");
$obj->add_field("Hak_Usulan", "Akses", "hid");
$obj->add_field("K_Lokasi", "Kode", "c");
$obj->add_field("N_Lokasi", "Nama Kecamatan", "awr");
$obj->add_field("ITEM_KEG", "Usulan", "r", "rupiah");
$obj->add_field("TOT_RUPIAH", "Anggaran", "nwr r", "rupiah");
$obj->set_field_order("N_Lokasi", "A");
$obj->add_row_btn("save", "Usulan", "FUsulKecJS.kec_select");
$obj->set_func_navi("FUsulKecJS.data_query('tabel-kec')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEC");
} else if ( $data == "tabel-keg" ) {
if (in_array($mode_detail, ["insert","update","delete"])) {
$sql = new SQL($db);
$sql->set_table("mus_usulan_desa");
$sql->add_param("Lokasi2");
$sql->add_param("Dusun2");
$sql->add_param("RT2");
$sql->add_param("Masalah2");
$sql->add_param("Usulan2");
$sql->add_param("Sasaran2");
$sql->add_param("Waktu2");
$sql->add_param("Volume2");
$sql->add_param("SatuanID2");
$sql->add_param("Rupiah2");
$sql->add_param("OPDID");
$sql->add_param("KelID");
$sql->add_param("FUbah", 1);//update oleh forum
$sql->add_where("RPJMDID", $id_rpjmd);
$sql->add_where("Tahun", $thn_renja);
$sql->add_where("UsulanLID", $id_usul);
if ( $mode_detail == "insert" ) {
$id_usul = ID_Usulan_Desa($id_rpjmd, $thn_renja);
$sql->add_param("RPJMDID", $id_rpjmd);
$sql->add_param("Tahun", $thn_renja);
$sql->add_param("UsulanLID", $id_usul);
$sql->add_param("KecID", $id_kec);
$sql->add_param("Kode", Kode_Usulan_Kec($thn_renja, $id_kec));
$sql->add_param("K_RKA", "CONCAT(Tahun,'-',Kode)", true);
$sql->add_param("JU", 3);//jenis usulan kecamatan
$sql->add_param_stamp();
$sql->add_param_userid();
$sql->InsertDB();
} else if ( $mode_detail == "update" ) {
$sql->add_param_stamp("Update_Stamp");
$sql->add_param_userid("Update_UserID");
$sql->UpdateDB();
} else if ( $mode_detail == "delete" ) {
$sql->DeleteDB();
}
if (in_array($mode_detail, ["insert","update"])) {
$db->Query("UPDATE mus_usulan_desa SET Lokasi=Lokasi2,Dusun=Dusun2,RT=RT2,Masalah=Masalah2,Usulan=Usulan2,Sasaran=Sasaran2,Waktu=Waktu2,Volume=Volume2,SatuanID=SatuanID2,Rupiah=Rupiah2 WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' AND FUbah=1 AND JU=3");
}
}
$obj = new Table($db);
$obj->set_query("SELECT R.*,CONCAT(R.Volume2,' ',S.N_Satuan) N_Satuan FROM (SELECT *,IF(BAksi=0,'Belum Verifikasi','Ok') XKet,IF(BAksi=0,0,1) XAksi FROM mus_usulan_desa WHERE ".$qsql.") R LEFT JOIN para_satuan S ON (R.SatuanID2=S.SatuanID)");
$obj->set_query_footer("SELECT R.*,CONCAT(R.Item,' Usulan') N_Satuan FROM (SELECT COUNT(*) Item,SUM(Rupiah2) Rupiah2 FROM mus_usulan_desa WHERE ".$qsql.") R");
$obj->add_field("UsulanLID", "ID", "hid");
$obj->add_field("Kode", "Kode", "c");
$obj->add_field("Usulan2", "Usulan Kegiatan", "awr");
$obj->add_field("Lokasi2", "Lokasi", "awr");
$obj->add_field("N_Satuan", "Volume", "l");
$obj->add_field("Rupiah2", "Anggaran", "nwr r", "rupiah", "rupiah");
$obj->add_field("Prio", "Prio", "c", "", "", "val-zerolast");
$obj->add_field("XKet", "Status", "l");
$obj->set_field_order("Usulan2", "A");
$obj->set_row_color("BAksi", 1, "rsuccess");
$obj->set_row_color("BAksi", 2, "rdanger");
$obj->set_row_color("BAksi", 3, "rwarning");
if ($efor_enable) {
$obj->add_row_btn("clipboard", "Ubah", "FUsulKecJS.keg_ubah");
$obj->add_row_btn("trash", "Hapus", "FUsulKecJS.keg_hapus", "KecID", $id_kec);
$obj->set_func_btn("FUsulKecJS.keg_tambah", "+ Usulan");
} else {
$obj->add_row_btn("clipboard", "Detail", "FUsulKecJS.keg_ubah");
}
$obj->set_func_navi("FUsulKecJS.data_query('tabel-keg')");
$obj->set_textbtn(true);
$ajson[] = $obj->json_table("divKEG");
} else if ( $data == "detail-keg" ) {
$enable = ($efor_enable) ? true : false;
$adetail = ['UsulanLID'=>0, 'Kode'=>"Usulan Baru"];
if ($id_usul > 0) {
$db->Query("SELECT * FROM mus_usulan_desa WHERE RPJMDID='".$id_rpjmd."' AND Tahun='".$thn_renja."' AND UsulanLID='".$id_usul."' LIMIT 1");
if ($db->Next()) $adetail = $db->AllRow();
}
$form = new Form($db);
$tkode = $form->textbox("_", "Kode", $adetail['Kode'], false, false);
$tlokasi = $form->textbox("_", "Lokasi2", $adetail['Lokasi2'], $enable, true, "text", "lokasi kegiatan");
$trt = $form->textbox("_", "RT2", $adetail['RT2'], $enable, true, "text", "rt dan rw");
$tdusun = $form->textbox("_", "Dusun2", $adetail['Dusun2'], $enable, true, "text", "nama dusun");
$tmasa = $form->textarea("_", "Masalah2", $adetail['Masalah2'], $enable, true, 2, "permasalahan");
$tusulan = $form->textarea("_", "Usulan2", $adetail['Usulan2'], $enable, true, 2, "usulan kegiatan");
$tsasa = $form->textbox("_", "Sasaran2", $adetail['Sasaran2'], $enable, true, "text", "sasaran / manfaat");
$twaktu = $form->textbox("_", "Waktu2", $adetail['Waktu2'], $enable, true, "text", "waktu pelaksanaan");
$topd = $form->option_db("_", "OPDID", $adetail['OPDID'], $enable, false, "vi_para90_opd", ["OPDID","Nama_OPD"], "IK=0 ORDER BY K_OPD", [0,"&nbsp;"]);
$tkel = $form->option_db("_", "KelID", $adetail['KelID'], $enable, true, "para_lokasi", ["LokasiID","N_Lokasi"], "Level=2 AND Aktif=1 AND IndukID='".$id_kec."' ORDER BY K_Lokasi", [0,"SATU KECAMATAN"]);
$tvol = $form->textbox("_", "Volume2", $adetail['Volume2'], $enable, true, "double", "nilai volume");
$tsatu = $form->option_db("_", "SatuanID2", $adetail['SatuanID2'], $enable, false, "para_satuan", ["SatuanID","N_Satuan"], "Aktif=1 ORDER BY N_Satuan", [0,"&nbsp;"]);
$trupiah = $form->textbox("_", "Rupiah2", $adetail['Rupiah2'], $enable, true, "double", "nilai anggaran");
$ajson['html'] = '<form id="formUsulKec" novalidate="novalidate">
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label">Kode Usulan</label>
<div class="col-sm-3 col-lg-3">'.$tkode.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="KelID">Nama Desa *</label>
<div class="col-sm-8 col-lg-9">'.$tkel.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Lokasi2">Lokasi Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tlokasi.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Dusun2">Dusun dan RT / RW</label>
<div class="col-sm-4 col-lg-5">'.$tdusun.'</div>
<div class="col-sm-4 col-lg-4">'.$trt.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Masalah2">Permasalahan</label>
<div class="col-sm-8 col-lg-9">'.$tmasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Usulan2">Usulan Kegiatan</label>
<div class="col-sm-8 col-lg-9">'.$tusulan.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Sasaran2">Sasaran / Manfaat</label>
<div class="col-sm-8 col-lg-9">'.$tsasa.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Waktu2">Waktu Pelaksanaan</label>
<div class="col-sm-8 col-lg-9">'.$twaktu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="OPDID">Nama Perangkat Daerah</label>
<div class="col-sm-8 col-lg-9">'.$topd.'</div>
</div>
<div class="row mb-1"><div class="col"><hr class="my-1"></div></div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Volume2">Volume Kegiatan</label>
<div class="col-sm-4 col-lg-4">'.$tvol.'</div>
<div class="col-sm-4 col-lg-5">'.$tsatu.'</div>
</div>
<div class="row mb-1">
<label class="col-sm-4 col-lg-3 col-form-label" for="Rupiah2">Perkiraan Anggaran</label>
<div class="col-sm-4 col-lg-4">'.$trupiah.'</div>
</div></form>
<input type="hidden" id="UsulanLID" value="'.$adetail['UsulanLID'].'" />
<input type="hidden" id="mode_detail" value="'.$mode_detail.'" />';
} else if ( $data == "default") {
echo '
<div class="fade-in">
<div class="card"><div class="card-header custom-style">Input Usulan Kecamatan - Tahun Perencanaan '.$thn_renja.'</div><div class="card-body">
<div class="row mb-1">
<div class="col">
<div class="input-group">
<input class="form-control" id="Nama_KEC" placeholder="Nama Kecamatan" type="text" readonly>
<input id="KecID" type="hidden" value="0">
<input id="Hak_Usulan" type="hidden" value="1">
<button class="btn btn-info btn-ganti" type="button" id="butKEC"><span><i class="bi-arrow-left-right"></span></i>Kecamatan</button>
</div>
</div>
</div>
<div id="divKEC">&nbsp;</div>
<div id="divKEG">&nbsp;</div>
</div></div>
</div>';
}
send_json($ajson);
?>
+142
View File
@@ -0,0 +1,142 @@
/*******************************************************************
Module : /assets/css/forum.css
Desc. : CSS Custom Forum
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 20th, 2007.
Last Modified : January 21st, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
@media print {
.pagebreak { page-break-before: always; display: none; }
}
@page {
margin-top: 1.2cm;
margin-bottom: 1.2cm;
margin-left: 2cm;
margin-right: 2cm;
size: landscape;
}
.pagebreak { text-align: center; }
div.print-body {
/*font-family: 'DejaVu Sans Condensed';*/
font-size: 10pt;
line-height: 1;
width: 100%;
color: #000;
}
div.print-body p { margin: 0; padding: 0; padding-bottom: 10px; }
p.judul { text-align: center; font-size: 1.2em; font-weight: bold; }
p.indent { font-size: 1.1em; text-indent: 3em; text-align: justify; text-justify: inter-word; }
p.normal { font-size: 1.1em; }
p.center { font-size: 1.1em; text-align: center; }
ul.nomor {
font-size: 1.1em;
list-style: decimal outside none;
margin: 0;
padding-left: 20px;
}
ul.nomor li {
margin: 3px 0;
}
hr.lamp { border-top: 1px solid #000; }
table.footer {
width: 100%;
font-family: sans-serif;
font-size: 9pt;
color: #333;
border-top: 1px solid #ccc;
}
table.footer td { padding-top: 2px; }
table.normal {
width: 100%;
font-size: 1.1em;
border: 0;
}
table.indent-ba {
margin-left: 1.5em;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
table tr.small-header td {
font-size: .6em;
font-style: italic;
}
td { vertical-align: top; }
td.kolom1 { width: 26%; }
td.kolom2 { width: 2%; }
td.kolom3 { width: 12%; }
td.kolom4 { width: 18%; }
td.justify { text-align: justify; text-justify: inter-word; }
td.nopad { padding-left: 0; }
table.lamp {
width: 60%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
}
table.lamp-land {
width: 40%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
}
table.ttd {
width: 33%;
font-size: 1.1em;
margin-right: 0;
margin-left: auto;
margin-top: 5px;
}
table.ttd td {
text-align: center;
}
table.garis {
width: 100%;
font-size: 1em;
border: 1px solid #ccc;
border-spacing: 0;
border-collapse: collapse;
}
table.garis th, table.garis td {
text-align: left;
border: 1px solid #ccc;
padding: 2mm;
}
table.garis th {
text-align: center;
font-weight: bold;
background-color: #ddd;
white-space: nowrap;
}
table.garis td { padding-top: 1.2mm; padding-bottom: 1.2mm; vertical-align: top; }
table tr.kec td { background-color: #00B7EF; text-transform: uppercase; }
table tr.desa td { background-color: #FFF200; text-transform: uppercase; }
table tr.forum td { background-color: #A7DA4E; text-transform: uppercase; }
table tr.opd td { background-color: #ccc; text-transform: uppercase; }
table tr.bel td { background-color: #A2FFFF; text-transform: uppercase; }
a[class~="check-all"] { background-color:#7eff6c !important; }
a[class~="check"] { background-color:#2E8FF1 !important; }
a[class~="arrow-up-circle"] { background-color: #8E60EE !important; }
a[class~="arrow-down-circle"] { background-color: #ffffa8 !important; }
a[class~="x-lg"] { background-color: #F49DA4 !important; }
button[class~="check-all"] { background-color:#7eff6c !important; }
button[class~="check"] { background-color:#2E8FF1 !important; }
button[class~="arrow-up-circle"] { background-color: #8E60EE !important; }
button[class~="arrow-down-circle"] { background-color: #ffffa8 !important; }
button[class~="x-lg"] { background-color: #F49DA4 !important; }
+125
View File
@@ -0,0 +1,125 @@
/*******************************************************************
Module : /assets/css/pdf/forum.css
Desc. : CSS Class for PDF Forum
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 7th, 2008.
Last Modified : January 20th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
body {
font-family: 'DejaVu Sans Condensed';
font-size: 9pt;
width: 100%;
color: #000;
}
p { margin: 0; padding: 0; padding-bottom: 10px; }
p.judul { text-align: center; font-size: 1.3em; font-weight: bold; }
p.judul-ba { text-align: center; font-size: 1.3em; }
table.footer {
width: 100%;
font-family: sans-serif;
font-size: 9pt;
color: #333;
border-top: 1px solid #ccc;
}
table.garis {
width: 100%;
border: 1px solid #ccc;
border-spacing: 0;
border-collapse: collapse;
}
table.garis th, table.garis td {
font-size: 9pt;
text-align: left;
border: 1px solid #ccc;
padding: 2mm;
}
table.garis th {
font-size: 10pt;
text-align: center;
font-weight: bold;
background-color: #ddd;
}
table.garis td { padding-top: 1.2mm; padding-bottom: 1.2mm; }
table.ttd {
width: 100%;
border: 1px solid #aaa;
border-spacing: 0;
border-collapse: collapse;
}
table.ttd th, table.ttd td {
font-size: 10pt;
text-align: center;
border: 1px dotted #aaa;
padding: 2mm;
}
table.ttd th {
background-color: #eee;
}
table.ttd-ba {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
table.ttd-ba th, table.ttd-ba td {
font-size: 10pt;
border-bottom: 1px dotted #aaa;
padding: 2mm;
}
table.ttd-ba th {
border: 1px solid #aaa;
background-color: #eee;
text-align: center;
}
table.ttd-ba-status {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
table.ttd-ba-status td.judul {
font-size: 10pt;
font-weight: 500;
padding-bottom: 1mm;
}
table.ttd-ba-status td {
font-size: 8pt;
font-style: italic;
padding: 0;
}
table td.l { text-align: left; }
table td.c { text-align: center; }
table td.r { text-align: right; }
table td.b { font-weight: bold; }
table td.i { font-style: italic; }
table td.small { font-size: .65em; }
table td.bi { font-weight: bold; font-style: italic; background-color: #F0F0F0; }
table tr.kec td { background-color: #00B7EF; text-transform: uppercase; }
table tr.desa td { background-color: #FFF200; text-transform: uppercase; }
table tr.forum td { background-color: #A7DA4E; text-transform: uppercase; }
table tr.opd td { background-color: #ccc; text-transform: uppercase; }
table tr.bel td { background-color: #A2FFFF; text-transform: uppercase; }
table td.kotak { width: 6.5%; }
table td.kotak table { border: 1px solid #000; width: 100%; }
table td.kotak table td { font-size: 6pt; border: none; }
table td.kotakh { width: 5%; }
table td.kotakh table { border: 1px solid #000; width: 100%; }
table td.kotakh table td { font-size: 10pt; border: none; text-align: center; padding: 0; }
table td.bg-blue {
/*border: 1px solid #ccc;*/
font-size: 1.5em;
background: #5976FF;
}
+54
View File
@@ -0,0 +1,54 @@
/*******************************************************************
Module : /assets/css/styles.css
Desc. : CSS Custom
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 20th, 2007.
Last Modified : January 21st, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
:root {
--bs-body-font-size: 1rem;
--bs-body-line-height: 1.2;
}
div.note-editor.card {
margin-bottom: 0 !important;
border: unset !important;
}
button.btn-ganti {
box-shadow: none !important;
padding-top: 0;
padding-bottom: 0;
width: 9.8em;
text-align: left;
}
button.btn-ganti span {
position: relative;
left: -12px;
display: inline-block;
padding: 3px 8px;
background: rgba(0,0,0,0.15);
height: 100%;
vertical-align: middle;
}
table>tbody tr.rp1 td:not(:last-child) { background-color:#0033ff; color: white; }
table>tbody tr.rp2 td:not(:last-child) { background-color:#0066ff; color: white; }
table>tbody tr.rp3 td:not(:last-child) { background-color:#0099ff; color: white; }
table>tbody tr.rp4 td:not(:last-child) { background-color:#00ccff; }
table>tbody tr.rp5 td:not(:last-child) { background-color:#00ffff; }
table button.plus-circle { background-color: var(--success); }
table button.minus-circle { background-color: var(--danger); }
table button.reload { background-color: var(--secondary); }
table a.plus-circle i { color: var(--success); }
table a.minus-circle i { color: var(--danger); }
table a.reload i { color: var(--secondary); }
/*.navbar-nav .dropdown-menu {
width: 280px !important;
}*/
Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+32
View File
@@ -0,0 +1,32 @@
/*******************************************************************
Module : /assets/locale/fonia.id.js
Desc. : JS - Fonia Module Locale
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 28th, 2013.
Last Modofied : November 22nd, 2019
(c) 2013 - 2019, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
if (typeof FoniaJS !== "undefined") {
FoniaJS.locale('id', {
Fonia: {
sess_expire: 'Session Anda telah berakhir, silakan login kembali!',
page404: 'Halaman aplikasi belum tersedia!',
input_passwd: 'Silakan masukkan Password!',
input_userid: 'Silakan masukkan User ID!',
auth_super: 'Persetujuan Supervisor',
auth_user: 'Validasi Operator',
auth_wait_msg: 'Menunggu disetujui oleh<br>Supervisor Anda...',
cancel: 'Batal',
auth_fail: 'Proses gagal!<br>Menunggu terlalu lama ...',
auth_success: 'Proses disetujui!',
but_add: 'Tambah',
but_edit: 'Ubah'
}
});
}
+85
View File
@@ -0,0 +1,85 @@
/*******************************************************************
Module : /assets/locale/moment.id.js
Desc. : JS - Moment Locale
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 28th, 2013.
Last Modofied : November 22nd, 2019
(c) 2013 - 2019, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
if (typeof moment !== "undefined") {
moment.locale('id', {
months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),
monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
LTS : 'HH.mm.ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] HH.mm',
LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'
},
meridiemParse: /pagi|siang|sore|malam/,
meridiemHour : function (hour, meridiem) {
if (hour === 12) {
hour = 0;
}
if (meridiem === 'pagi') {
return hour;
} else if (meridiem === 'siang') {
return hour >= 11 ? hour : hour + 12;
} else if (meridiem === 'sore' || meridiem === 'malam') {
return hour + 12;
}
},
meridiem : function (hours, minutes, isLower) {
if (hours < 11) {
return 'pagi';
} else if (hours < 15) {
return 'siang';
} else if (hours < 19) {
return 'sore';
} else {
return 'malam';
}
},
calendar : {
sameDay : '[Hari ini pukul] LT',
nextDay : '[Besok pukul] LT',
nextWeek : 'dddd [pukul] LT',
lastDay : '[Kemarin pukul] LT',
lastWeek : 'dddd [lalu pukul] LT',
sameElse : 'L'
},
relativeTime : {
future : 'dalam %s',
past : '%s yang lalu',
s : 'beberapa detik',
ss : '%d detik',
m : 'semenit',
mm : '%d menit',
h : 'sejam',
hh : '%d jam',
d : 'sehari',
dd : '%d hari',
M : 'sebulan',
MM : '%d bulan',
y : 'setahun',
yy : '%d tahun'
},
week : {
dow : 1, // Monday is the first day of the week.
doy : 7 // The week that contains Jan 7th is the first week of the year.
}
});
moment.locale('id');
}
+53
View File
@@ -0,0 +1,53 @@
<!------------------------------------------------------------------
Module : /assets/templates/404.php
Desc. : HTML5 Page - Halaman Template Error 404
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : February 17th, 2020.
(c) 2020, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_] - Error 404</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body class="min-vh-100 d-flex flex-row align-items-center">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-4 col-md-8">
<div class="card-group">
<div class="card">
<div class="card-body">
<div class="mb-2">
<img class="mx-auto d-block" src="[_WEB_PATH_]assets/images/logo300.png" title="[_REG_NAME_UP_]">
<div class="text-center pt-2 pb-2"><span class="reg_app1">[_APP_NAME_]</span><br><span class="reg_app2">Ver. [_APP_VER_]</span></div>
</div>
<div class="mb-2 mx-auto d-block text-center">
<div class="fs-4 text-danger">4.0.4</div>
<div class="fs-5 text-info">Modul atau bagian aplikasi yang diakses tidak ditemukan !</div>
</div>
<div class="text-center pt-2 pb-2 d-none" id="divLoginMsg">&nbsp;</div>
<div class="pt-4">
<div class="text-center">&reg; [_CREATOR_YEAR_]. [_REG_NAME_]</div>
<div class="text-center">All Rights Reserved.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
+106
View File
@@ -0,0 +1,106 @@
<!------------------------------------------------------------------
Module : /assets/templates/index.php
Desc. : HTML Page - Halaman Template / Themes
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 10th, 2008.
Last Modified : January 15th, 2024.
(c) 2008 - 2024, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_]</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body>
<div class="modal fade" id="sidebarMain" tabindex="-1" aria-labelledby="" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<img src="[_WEB_PATH_]assets/images/logo-apps.png" title="[_APP_NAME_]">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><i class="fs-1 bi-x-lg"></i></button>
</div>
<div class="modal-body">
<nav class="sidebar card py-2 mb-4"><ul class="nav flex-column">[_NAVI_SIDEBAR_]</ul></nav>
</div>
</div>
</div>
</div>
<div class="wrapper d-flex flex-column min-vh-100">
<header class="fixed-top navbar-custom">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<div class="navbar-toggler btn p-0 d-lg-none"><a href="#" data-bs-toggle="modal" data-bs-target="#sidebarMain"><i class="icon-md icon-3xl bi-list"></i></a></div>
<div class="collapse navbar-collapse">
<ul class="navbar-nav navbar-nav-scroll me-auto">[_NAVI_HEADER_]</ul>
</div>
<ul class="nav flex-nowrap align-items-center ms-sm-3 list-unstyled">
<li class="nav-item d-md-none d-lg-block d-flex align-items-center" id="liPeriode">&nbsp;</li>
<li class="nav-item mx-2 dropdown">
<a class="nav-link" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fs-4 bi-bell"></i><span class="position-absolute translate-middle badge rounded-pill bg-danger" id="DDNotifCount">0</span></a>
<div class="dropdown-menu dropdown-menu-end dropdown-menu-lg pt-0" id="DDNotif">
<div class="dropdown-header bg-light"><strong>Anda belum punya pesan</strong></div>
</div>
</li>
<li class="nav-item ms-2 dropdown">
<a class="nav-link btn p-0" id="profileDD" role="button" data-bs-auto-close="outside" data-bs-display="static" data-bs-toggle="dropdown" aria-expanded="false"><span class="badge-profile"></span><img class="icon-md rounded-5" src="[_WEB_PATH_]assets/images/[_USER_IMG_]" title="[_USER_NAME_]"></a>
<ul class="dropdown-menu dropdown-menu-end dropdown-profile pt-3 small me-md-n3" aria-labelledby="profileDD">
<li class="dropdown-item-text">
<div class="d-flex text-black">
<div class="flex-shrink-0"><img src="[_WEB_PATH_]assets/images/[_USER_IMG_]" class="icon-lg"></div>
<div class="flex-grow-1 ms-3">
<div>[_USER_USER_]</div>
<div class="fs-6">[_USER_NAME_]</div>
<div class="small">[_USER_POSISI_]</div>
</div>
</div>
</li>
[_MENU_MODUL_]
<li class="dropdown-divider"></li>
<li><a class="dropdown-item slink" id="HomeLink"><i class="me-2 bi-house"></i>Beranda</a></li>
<li><a class="dropdown-item"><i class="me-2 bi-person-circle"></i>Profil</a></li>
<!--<li><a class="dropdown-item"><i class="me-2 bi-gear"></i>Settings</a></li>-->
<li><a class="dropdown-item mlink" id="SYSCLink"><i class="me-2 bi-unlock2"></i>Ubah Password</a></li>
<li class="dropdown-divider"></li>
<li><a class="dropdown-item text-danger slink" id="ExitLink"><i class="me-2 bi-arrow-right"></i>Keluar</a></li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<div class="body flex-grow-1">
<div class="container-fluid mt-2 px-0 py-2">
<div aria-live="polite" aria-atomic="true" class="position-relative">
<div class="toast-container position-absolute top-0 end-0 p-3" id="div-toast">&nbsp;</div>
</div>
<div id="pageToolbarTop" class="container-fluid">&nbsp;</div>
<div id="pageContent" class="container-fluid">&nbsp;</div>
<div id="pageToolbarBot" class="container-fluid">&nbsp;</div>
</div>
</div>
<footer class="footer">
<div><a href="[_REG_WEBSITE_]">&reg; [_REG_YEAR_]; [_REG_NAME_]</a></div>
<div class="ms-auto d-none d-md-block">Informasi : XXXX XXXX XXXX (Admin)</div>
</footer>
</div>
<div id="dataPrint" class="d-none d-print-block">&nbsp;</div>
<div id="preloader"><div id="loader"></div></div>
</body>
</html>
+67
View File
@@ -0,0 +1,67 @@
<!------------------------------------------------------------------
Module : /assets/templates/login.php
Desc. : HTML5 Page - Halaman Template Login
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 21th, 2009.
Last Modified : January 15th, 2024.
(c) 2009 - 2024, 3FONIA Software; WWW.3FONIA.COM.
------------------------------------------------------------------->
<!DOCTYPE html>
<html lang="en">
<head>
<title>[_APP_NAME_VER_]</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="PhpED + FW9 @ 3FONIA Software"/>
<meta name="author" content="Siau Pheng &lt;siaupheng[at]3fonia.com&gt;"/>
<meta name="description" content="[_APP_NAME_VER_], [_APP_NAMES_]" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<link rel="icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
<link rel="shortcut icon" href="[_WEB_PATH_]assets/images/logo150.png" type="image/png" />
</head>
<body class="min-vh-100 d-flex flex-row align-items-center dark:bg-transparent">
<div class="container">
<div aria-live="polite" aria-atomic="true" class="position-relative">
<div class="toast-container position-absolute top-0 start-50 translate-middle-x" id="div-toast">&nbsp;</div>
</div>
<div class="row justify-content-center">
<div class="col-xl-4 col-lg-5 col-md-6 col-10">
<div class="card-group d-block d-md-flex row">
<div class="card col-md-6 p-3 mb-0">
<div class="card-body">
<div class="mb-2">
<img class="mx-auto d-block" src="[_WEB_PATH_]assets/images/logo150.png" title="[_REG_NAME_UP_]">
<div class="text-center pt-2 pb-2">[_APP_NAME_] Ver. [_APP_VER_]<br>Register ID : [_REG_ID_]</div>
</div>
<div class="input-group mb-2">
<span class="input-group-text">
<i class="bi-person-circle"></i>
</span>
<input class="form-control" id="Username" type="text" placeholder="ID Pengguna">
</div>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="bi-unlock2"></i>
</span>
<input class="form-control" id="Password" type="password" placeholder="Kata Sandi">
</div>
<div class="input-group d-grid gap-2">
<button id="butLogin" class="btn btn-primary" type="button">Login</button>
</div>
<div class="text-center d-none" id="divLoginMsg">&nbsp;</div>
<div class="pt-4">
<div class="text-center">&reg; [_REG_YEAR_]; [_REG_NAME_]</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
+80
View File
@@ -0,0 +1,80 @@
<?php
/*******************************************************************
Module : /auth.php
Desc. : PHP Page - Halaman Identifikasi Akses
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : November 20th, 2016.
Last Modified : March 26th, 2023.
(c) 2016 - 2023, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../vendor/autoload.php");
if (!isset($_SESSION['__WEB_APP'])) {
require_once(__DIR__."/apps/cfg/app.php");
}
use siaupheng\fonia3\DB\MySQL;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\Web\Menu;
$db = $db ?? new MySQL();
$auth = new Auth($db);
$ajson = [];
$mode = Param::Get("mode", "");
if ($mode == "auth") {
$data = Param::Get("data", "");
$ajson = ['status' => 0, 'pesan' => ""];
if ($data == "super-check") {
$bsuper = (Param::Get("SUPER","true") == "true") ? true : false;
$buover = (Param::Get("UOVER","false") == "true") ? true : false;
if (!$auth->user_check_level(Param::Get("UID"), $_SESSION['__WEB_APP']['AUTH_LEVEL']) && $bsuper == true) {
$ajson['status'] = 0;
$ajson['pesan'] = "Silakan hubungi Supervisor / Administrator Anda!";
} else {
if (!$auth->user_check(Param::Get("UID"), Param::Get("PWD"))) {
$ajson['status'] = 0;
$ajson['pesan'] = "User ID atau Password Anda Salah!<br>Anda tidak diijinkan melanjutkan proses!";
} else {
$ajson['status'] = 1;
if ($buover == true && $bsuper == false && Param::Get("UID") <> $_SESSION['__WEB_USER']['Username']) {
$new_sess = $auth->user_data(Param::Get("UID"));
foreach ($new_sess as $_key => $_val) {
if ($_SESSION['__WEB_USER'][$_key]) $_SESSION['__WEB_USER'][$_key] = $_val;
}
}
}
}
} elseif ($data == "super-request") {
$db->Query("DELETE FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."' AND Auth=0");
$db->Query("INSERT INTO app_auth SET UserID='".user_id()."',Kode='".Param::Get("KODE")."',SID='".Param::Get("REQ_SID")."',REQ='".Param::Get("REQ")."',Catatan='".Param::Get("MSG")."',Tanggal=NOW()");
} elseif ($data == "super-cancel") {
$db->Query("DELETE FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."'");
} elseif ($data == "request-check") {
$db->Query("SELECT Auth FROM app_auth WHERE UserID='".user_id()."' AND Kode='".Param::Get("KODE")."' AND SID='".Param::Get("REQ_SID")."' AND REQ='".Param::Get("REQ")."'");
if ($db->Next() && $db->Row("Auth",0) == 1) $ajson['status'] = 1;
}
} else {
$page = Param::Get("p", "");
$query = Param::Get("q", "");
$ajson['login'] = false;
if (user_logged() && $page<>"") {
$ajson = Menu::MenuJSON($db, $page, $query);
}
$auth->token_update();
}
send_json($ajson);
?>
+993
View File
@@ -0,0 +1,993 @@
/*******************************************************************
Module : /apps/js/sys/chpasswd.js
Desc. : JS - Perubahan Password Operator
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var SYSChpasswdJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butSave').click(function(){this.proses_save();}.bind(this));
FoniaJS.setFocus('#LPass');
},
proses_save: function(){
if ($("#LPass").val()=="") {
FoniaJS.showInfo("Silakan masukkan password lama Anda!");
FoniaJS.setFocus("#LPass");
return false;
} else if ($("#BPass1").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 1 Anda!");
FoniaJS.setFocus("#BPass1");
return false;
} else if ($("#BPass2").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 2 Anda!");
FoniaJS.setFocus("#BPass2");
return false;
} else if ($("#BPass1").val()!=$("#BPass2").val()) {
FoniaJS.showInfo("Password baru 1 dan 2 Anda tidak sama!");
FoniaJS.setFocus("#BPass1");
return false;
}
new Request.JSON({
url: this.PHP,
sendParam: ['data=chpasswd','LPass','BPass1','BPass2'],
onSuccess: function(ajson){
if (ajson.status == true) {
FoniaJS.showInfo(ajson.msg);
FoniaJS.closeWindow('#win'+this.KODE);
} else {
FoniaJS.showError(ajson.msg);
}
}.bind(this)
}).send();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/desa2.js
Desc. : JS - Input Usulan Desa Susulan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulDesa2JS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEL').click(function(){
if ($('#KelID').val()>0) this.show_hide(2);
}.bind(this));
$('#butBEL').click(function(){
if ($('#BelID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divBEL').addClass('d-none'); $('#butBEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#BelID').val(0);
$('#Nama_BEL').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butBEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divBEL').removeClass('d-none'); this.data_query('tabel-bel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
bel_select: function(acell){
$('#BelID').val(acell[0]);
$('#Nama_BEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulDesa').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','KelID','BelID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulDesa').submit();
if (true !== $('#formUsulDesa').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','BelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','KecID']
}).send();
} else if (tipe=="tabel-bel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-bel','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID','KelID','BelID']
}).send();
}
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_opd.js
Desc. : JS - Cetak Bahan Forum untuk OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoBahanOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','KecID','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Kecamatan', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulKec').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulKec').submit();
if (true !== $('#formUsulKec').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID']
}).send();
}
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/bahan_kec.js
Desc. : JS - Cetak Bahan Forum untuk Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoBahanKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FUsulKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','KecID','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Kecamatan', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulKec').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulKec').submit();
if (true !== $('#formUsulKec').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID']
}).send();
}
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/bahan_opd.js
Desc. : JS - Kelola Bahan Forum OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FBahanOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formBahanOPD').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume: {required:true, double_id:true},
SatuanID: {required:true, min:1},
Rupiah: {required:true, double_id:true},
Prio: {required:false},
StatusID: {required:false}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
$('#formBahanOPD').submit();
if (true !== $('#formBahanOPD').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah','Prio','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_forum.js
Desc. : JS - Cetak Hasil Forum / Forum
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilForumJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
proses_pdf: function(){
if ($('#ForumID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Forum !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','ForumID']
}).send();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/forum_opd.js
Desc. : JS - Forum OPD / Pembahasan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FForumOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(2);
}.bind(this));
$('#butKEL').click(function(){
//if ($('#KelID').val()>0)
this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
}
if (no <= 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 2) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 3) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
opd_select: function(acell){
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(2);
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(3);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','StatusID'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
keg_1: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=1'],
}).send();
},
keg_2: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=2'],
}).send();
},
keg_3: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=3'],
}).send();
},
keg_4: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=4'],
}).send();
},
keg_5: function(acell){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','OPDID','KecID','KelID','UsulanLID='+acell[0],'StatusID=5'],
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd']
}).send();
} else if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec','OPDID']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','OPDID','KecID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','OPDID','KecID','KelID']
}).send();
}
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_opd.js
Desc. : JS - Cetak Hasil Forum / OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#OPDID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Perangkat Daerah !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_status.js
Desc. : JS - Cetak Hasil Forum / Status
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilStatusJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#StatusID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Status !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
}
};
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/forum/ba_kec.js
Desc. : JS - Cetak Berita Acara / Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var FRepoBAKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
this.oc_Forum();
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("ForumID");
dpdf.add_param("OPDID");
dpdf.add_param("StatusID");
dpdf.showPDF();
},
oc_Forum: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-opd','KecID','ForumID']
}).send();
}
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
[css]
login_stamp = "11229708403"
login_file = "8a25ffac300c235e91afa3a9bf7a6465.css"
index_stamp = "24405838564"
index_file = "89712697d169a55cbea5c528e22fabdf.css"
[js]
login_stamp = "18803911025"
login_file = "1df974b9b69bc7c69b4dd20c04dcf282.js"
index_stamp = "43194279401"
index_file = "a995020588476ba8ccc51904c4ce5354.js"
View File
+95
View File
@@ -0,0 +1,95 @@
<?php
/*******************************************************************
Module : /index.php
Desc. : PHP Page - Halaman Utama Aplikasi Web
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 28th, 2011.
Last Modified : January 21st, 2024.
(c) 2011 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../vendor/autoload.php");
require_once(__DIR__."/apps/cfg/app.php");
use siaupheng\fonia3\App;
use siaupheng\fonia3\Web\Auth;
use siaupheng\fonia3\Web\Param;
use siaupheng\fonia3\DB\MySQL;
/*function requestData($url, $postdata = null){
$ch = curl_init($url);
$headers = array( 'Accept: application/json' );
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_VERBOSE => 1
));
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$token = $_GET['token'];
if (!empty($token) && !$_SESSION['token']) $_SESSION['token'] = $token;
$user = "";
if ($_SESSION['token']) {
$url = "http://127.0.0.1/TEST/sso/provider/cek_token.php?token=".$_SESSION['token'];
$respon = json_decode(requestData($url));
$user = $respon->data;
if ($respon->code != 200) {
unset($_SESSION['token']);
}
}*/
$db = $db ?? new MySQL();
$auth = new Auth($db);
$auth->set_id_reg($_SESSION['__WEB_APP']['PARENT_CODE']);
$token = Param::Get("auth", "");
if (!empty($token) && !$_SESSION['APP_TOKEN']) $_SESSION['APP_TOKEN'] = $token;
if ($_SESSION['APP_TOKEN']) {
if ($auth->token_check()) {
if (!isset($_SESSION['__WEB_USER'])) {
$auser = $auth->user_data($auth->getUserByToken($_SESSION['APP_TOKEN']));
$nlevel = intval($auser['Level']);
if ($nlevel == 2) { // KECAMATAN
$auser['Grup_MenuID'] = 7;
//UPDATE KEC + KEL ARRAY DATA
$auser['A_KEC'] = explode(",", $auser['AK_KEC']);
$auser['A_KEL'] = explode(",", $auser['AK_KEL']);
} else if ($nlevel == 3) { // OPD
$auser['Grup_MenuID'] = 4;
$db->Query("SELECT IK FROM para90_opd WHERE OPDID IN (".$auser['AK_OPD'].")");
if ($db->Next()) { if ($db->Row("IK",0)==1) $auser['Grup_MenuID'] = 3; }
//UPDATE OPD ARRAY DATA
$auser['A_OPD'] = explode(",", $auser['AK_OPD']);
} else if ($nlevel == 5) {// DPRD
$auser['Grup_MenuID'] = 5;
//UPDATE DPRD ARRAY DATA
$auser['A_DPRD'] = explode(",", $auser['AK_DPRD']);
} else if ($nlevel == 9) {// VIEWER
$auser['Grup_MenuID'] = 9;
}
if (intval($auser['Grup_MenuID']) > 0) $auser['Menu_Grup'] = $auth->user_allmenu($auser['Grup_MenuID']);
$_SESSION['__WEB_USER'] = $auser;
}
$auth->gen_module_menu();
$auth->user_log();
} else {
unset($_SESSION['APP_TOKEN']);
unset($_SESSION['__WEB_USER']);
}
}
require_once(__DIR__."/apps/cfg/assets.php");
$html = new App();
$html->TampilApp();
?>
+77
View File
@@ -0,0 +1,77 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/app.php
Desc. : Konfigurasi Global Aplikasi
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : November 7th, 2009.
Last Modified : January 12th, 2026.
(c) 2009 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
require_once(__DIR__."/../../../../vendor/autoload.php");
require_once(__DIR__."/mysql.php");
use siaupheng\fonia3\DB\MySQL;
$db = (is_resource($db)) ? $db : new MySQL();
if (($_SESSION['__WEB_APP']['APP_CODE'] ?? "")<>"1909811005") {
foreach ($_SESSION as $_key => $_val) {
if (substr($_key,0,5)=="__WEB") unset($_SESSION[$_key]);
if (substr($_key,0,5)=="__APP") unset($_SESSION[$_key]);
}
}
if (!isset($_SESSION['__WEB_APP'])) {
$real_path = str_replace("\\", "/", __DIR__);
$real_path = str_replace("apps/cfg", "", $real_path);
$web_path = str_replace($_SERVER['DOCUMENT_ROOT'], "/", $real_path);
$web_path = str_replace("//", "/", $web_path);
$real_path = str_replace("//", "/", $real_path);
$apps = [];
$apps['APP_CODE'] = "1909811005";
$apps['APP_NAME'] = "eMusrenbang";
$apps['APP_NAMES'] = "Usulan Musrenbang Kecamatan";
$apps['APP_VER'] = "2.0";
$apps['APP_UPDATED'] = "January 12th, 2026.";
$apps['APP_SID'] = md5(time());
$apps['APP_LOCALE'] = ["id"=>"Indonesia", "en"=>"English"];
$apps['DEF_LOCALE'] = "id";
$apps['AUTH_OVER'] = false;
$apps['AUTH_LEVEL'] = 1;
$apps['USER_LEVEL'] = [0 => "ADMINISTRATOR", 1 => "KABUPATEN / BIDANG", 2 => "KECAMATAN", 3 => "OPD", 5 => "DPRD", 9 => "VIEWER"];
$apps['USER_LOG'] = true;
$apps['USE_QZTRAY'] = false;
$apps['CREATOR_YEAR'] = "2019";
$apps['CREATOR_NAME'] = "3FONIA Software";
$apps['CREATOR_WEBSITE'] = "http://www.3fonia.com";
$apps['WEB_PATH'] = $web_path;
$apps['REAL_PATH'] = $real_path;
$apps['MODULE_PATH'] = "../";
$apps['PARENT_SUB'] = true;
$apps['PARENT_CODE'] = "1909811004";
$apps['PARENT_SITE'] = "https://sippdkabsambas.com";
$db->Query("SELECT * FROM app_config WHERE REG_ID='".$apps['APP_CODE']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
if ($apps['APP_BUILD']<>"") $apps['APP_VER'] = $apps['APP_BUILD'];
$db->Query("SELECT * FROM sippd_config WHERE REG_ID='".$apps['PARENT_CODE']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
$db->Query("SELECT Tahun1,Tahun2,Tahun3,Tahun4,Tahun5,Tahun_Min,Tahun_Max,Ket N_RPJMD FROM vi_para_rpjmd WHERE RPJMDID='".$apps['RENC_RPJMDID']."' LIMIT 1");
if ($db->Next()) $apps = array_merge($apps, $db->AllRow());
if ($apps['Tahun1']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T1";
if ($apps['Tahun2']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T2";
if ($apps['Tahun3']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T3";
if ($apps['Tahun4']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T4";
if ($apps['Tahun5']==$apps['RENC_THN']) $apps['RENC_FIELD'] = "_T5";
$_SESSION['__WEB_APP'] = $apps;
}
?>
+72
View File
@@ -0,0 +1,72 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/assets.php
Desc. : Konfigurasi Assets Aplikasi [css / js]
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : November 23rd, 2019.
Last Modified : January 21st, 2024.
(c) 2019 - 2024, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$A_CSS = ["bootstrap/bootstrap.icon.css", "bootstrap/bootstrap.css"];
$A_JS = ["jquery/jquery.js", "jquery/jquery.base64.js", "bootstrap/bootstrap.bundle.js", "fonia3.js"];
if (!user_logged()) {
$A_JS[] = "jquery/jquery.backstretch.js";
} else {
$A_CSS[] = "datatables/dataTables.bootstrap5.css";
$A_CSS[] = "datatables/responsive.bootstrap5.css";
$A_CSS[] = "datatables/scroller.bootstrap5.css";
$A_CSS[] = "datatables/stateRestore.bootstrap5.css";
$A_CSS[] = "select2/select2.css";
$A_CSS[] = "select2/select2-bootstrap-5-theme.css";
$A_CSS[] = "bootstrap/bootstrap.datepicker.css";
//$A_CSS[] = "simplebar.css";
//$A_CSS[] = "lightbox.css";
//$A_CSS[] = "codemirror.css";
//$A_CSS[] = "summernote-bs4.css";
$A_CSS[] = "default.css";
$A_CSS[] = "print.css";
$A_JS = [
"jquery/jquery.js",
"jquery/jquery.base64.js",
"jquery/jquery.autosize.js",
"jquery/jquery.maskedinput.js",
"jquery/jquery.validate.js",
"bootstrap/bootstrap.bundle.js",
"bootstrap/bootstrap.datepicker.js",
"bootstrap/bootstrap.autocomplete.js",
"datatables/jquery.dataTables.js",
"datatables/dataTables.bootstrap5.js",
"datatables/dataTables.responsive.js",
"datatables/responsive.bootstrap5.js",
"datatables/dataTables.scroller.js",
"datatables/dataTables.stateRestore.js",
"datatables/stateRestore.bootstrap5.js",
//"codemirror/codemirror.js",
//"codemirror/xml.js",
"moment.js",
"select2/select2.js",
"chart/chart.js",
//"chart/chartjs-plugin-datalabels.js",
//"simplebar.js",
//"lightbox.js",
//"summernote-bs4.js",
//"html5-qrcode.js",
"fonia3.js",
"print.js",
"pdf.js",
"export.js",
//"simulator.js",
//"pole-display.js"
];
}
?>
+25
View File
@@ -0,0 +1,25 @@
<?php
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/cfg/mysql.php
Desc. : Konfigurasi Server MySQL
Created By : Siau Pheng ([email protected]).
Created Date : November 7th, 2009.
Last Modified : June 28th, 2020.
(c) 2009 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$APP_DATA = [
'host' => "127.0.0.1",
'port' => "3306",
'user' => "sippd_sambas",
'pwd' => "s1ppds4mb4s@",
'db' => "sippd_sambas",
'sock' => ""
];
?>
+93
View File
@@ -0,0 +1,93 @@
/*******************************************************************
Module : /apps/js/index.js
Desc. : JS - Halaman Utama Desktop
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : May 24th, 2010.
Last Modified : August 15th, 2019.
(c) 2010 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(function(){
jQuery("#preloader").remove();
loadSidebar();
IndexJS.loading();
});
var IndexJS = {
loading: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=default'],
onSuccess: function(ares){
$('#pageContent').html(ares.content);
$('#pageToolbarTop').html('');
$('#pageToolbarBot').html('');
this.loadPagu();
this.loadChart();
}.bind(this)
}).send();
},
loadPagu: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-info'],
onSuccess: function(ares){
$('#divHome1').html(ares.html);
}
}).send();
},
loadChart: function(){
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/index.php',
sendParam: ['data=pagu-chart'],
onSuccess: function(data){
var ctx = $('#pieChart');
var pieOptions = {
legend: { display: true, position: 'bottom', labels:{pointStyle:'circle', usePointStyle:true} },
aspectRatio: 1.3,
cutoutPercentage: 35,
responsiveAnimationDuration: 10,
responsive: true,
maintainAspectRatio: true,
onResize: function(mcha, size) {
var leg = (size.width <= 330) ? false : true;
mcha.options.legend.display = leg;
}
};
var myChart = new Chart(ctx, {
type: 'doughnut',
data: data,
options: pieOptions
});
}
}).send();
}
};
function loadSidebar(){
const mySidebar = document.getElementById('sidebarMain');
mySidebar.addEventListener('shown.bs.modal', () => {
document.querySelectorAll('.sidebar .nav-link').forEach((element) => {
element.addEventListener('click', (e) => {
let nextEl = element.nextElementSibling, parentEl = element.parentElement;
if (nextEl){
e.preventDefault();
let mycollapse = new bootstrap.Collapse(nextEl);
if (nextEl.classList.contains('show')){
mycollapse.hide();
} else {
mycollapse.show();
var opened_submenu = parentEl.parentElement.querySelector('.submenu.show');
if (opened_submenu){ new bootstrap.Collapse(opened_submenu); }
}
}
});
})
});
}
+86
View File
@@ -0,0 +1,86 @@
/*******************************************************************
Module : /apps/js/login.js
Desc. : JS - Halaman Proses Login
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : January 15th, 2008.
Last Modified : June 28th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
$(document).ready(function(){
$('#butLogin').click(LoginJS.Proses_Login);
$('#Username').keydown(function(e){
if (e.which==13) $('#Password').focus();
});
$('#Password').keydown(function(e){
if (e.which==13) $('#butLogin').trigger('click');
});
LoginJS.Tampil_Login();
document.oncontextmenu = new Function ('return false');
if (jQuery.backstretch){
jQuery.backstretch([
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/jami_960.jpg" }
],
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/istana_960.jpg" }
],
[
{ width: 1280, url: FoniaJS.WEB_PATH+"assets/images/bs/tugu_1280.jpg" },
{ width: 960, url: FoniaJS.WEB_PATH+"assets/images/bs/tugu_960.jpg" }
]
], {
duration: 6000,
transition: 'push_left|push_right|cover_up|cover_down|fade',
transitionDuration: 600
});
}
});
var LoginJS = {
Tampil_Login: function(){
var Username = FoniaJS.getCookie('Username');
if (Username != '') {
$('#Username').val(Username);
FoniaJS.setFocus('#Password');
} else {
FoniaJS.setFocus('#Username');
}
},
Proses_Login: function(){
if (!$('#Username').val()){
$('#Username').focus();
FoniaJS.showError('Silahkan masukkan ID Pengguna !');
return false;
}
if (!$('#Password').val()){
$('#Password').focus();
FoniaJS.showError('Silahkan masukkan Kata Sandi !');
return false;
}
new Request.JSON({
url: FoniaJS.WEB_PATH+'apps/php/login.php',
sendParam: ['mode=login','Username','Password'],
onSuccess: function(respon){
if (respon.hasil == 'SUKSES'){
FoniaJS.setCookie('Username', $('#Username').val(), 365);
$('#divLoginMsg').html(respon.pesan).removeClass('d-none');
$('.input-group').addClass('d-none');
setTimeout(function(){self.location = FoniaJS.WEB_PATH+'?auth='+(respon.token??'');}, 1600);
}else{
FoniaJS.showInfo(respon.pesan, 3000);
if (respon.redir) setTimeout(function(){self.location = respon.redir;}, 600);
}
}
}).send();
}
};
+43
View File
@@ -0,0 +1,43 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/form_kec.js
Desc. : JS - Cetak Form Usulan Musrenbang Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoFormKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("KelID");
dpdf.showPDF();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/hasil_kec.js
Desc. : JS - Cetak Hasil Usulan Musrenbang Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoHasilKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
if ($('#KecID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan !');
return false;
}
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.showPDF();
}
};
+60
View File
@@ -0,0 +1,60 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_desa.js
Desc. : JS - Laporan Daftar Usulan / Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : June 11th, 2022.
(c) 2014 - 2022, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulDesaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butExcel').click(function(){this.proses_excel();}.bind(this));
$('#butPrint').click(function(){this.proses_print(true);}.bind(this));
$('#butPreview').click(function(){this.proses_print(false);}.bind(this));
},
proses_excel: function(){
if ($('#KecID').val() == 0 || $('#KelID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan dan Nama Desa !');
return false;
}
var dload = new cEXPORT(this.PHP);
dload.add_param("data", "xls");
dload.add_param("Tipe");
dload.add_param("Tahun");
dload.add_param("KelID");
dload.add_param("KecID");
dload.download();
},
proses_print: function(prt){
if ($('#KecID').val() == 0 || $('#KelID').val() == 0) {
FoniaJS.showInfo('Silahkan Pilih Nama Kecamatan dan Nama Desa !');
return false;
}
var cetak = new cPRINTER(this.PHP);
cetak.set_zoom(80);
cetak.add_param("data", "print");
cetak.add_param("Tipe");
cetak.add_param("Tahun");
cetak.add_param("KelID");
cetak.add_param("KecID");
if (prt) { cetak.doPrint(); } else cetak.doPreview();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+40
View File
@@ -0,0 +1,40 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_kecdesa.js
Desc. : JS - Laporan Daftar Usulan / Kecamatan & Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulKecDesaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("KelID");
dpdf.showPDF();
},
oc_Kec: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=option-kel','KecID']
}).send();
}
};
+33
View File
@@ -0,0 +1,33 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/repo/usul_kecopd.js
Desc. : JS - Laporan Daftar Usulan / Kecamatan & OPD
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : March 21st, 2014.
Last Modified : January 30th, 2021.
(c) 2014 - 2021, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var RepoUsulKecOPDJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butPDF').click(function(){this.proses_pdf();}.bind(this));
},
proses_pdf: function(){
var dpdf = new cPDF(this.PHP);
dpdf.set_zoom(80);
dpdf.add_param("data", "pdf");
dpdf.add_param("Tipe");
dpdf.add_param("Tahun");
dpdf.add_param("KecID");
dpdf.add_param("OPDID");
dpdf.showPDF();
}
};
+55
View File
@@ -0,0 +1,55 @@
/*******************************************************************
Module : /apps/js/sys/chpasswd.js
Desc. : JS - Perubahan Password Operator
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : December 7th, 2008.
Last Modified : April 25th, 2020.
(c) 2008 - 2020, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var SYSChpasswdJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butSave').click(function(){this.proses_save();}.bind(this));
FoniaJS.setFocus('#LPass');
},
proses_save: function(){
if ($("#LPass").val()=="") {
FoniaJS.showInfo("Silakan masukkan password lama Anda!");
FoniaJS.setFocus("#LPass");
return false;
} else if ($("#BPass1").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 1 Anda!");
FoniaJS.setFocus("#BPass1");
return false;
} else if ($("#BPass2").val()=="") {
FoniaJS.showInfo("Silakan masukkan password baru 2 Anda!");
FoniaJS.setFocus("#BPass2");
return false;
} else if ($("#BPass1").val()!=$("#BPass2").val()) {
FoniaJS.showInfo("Password baru 1 dan 2 Anda tidak sama!");
FoniaJS.setFocus("#BPass1");
return false;
}
new Request.JSON({
url: this.PHP,
sendParam: ['data=chpasswd','LPass','BPass1','BPass2'],
onSuccess: function(ajson){
if (ajson.status == true) {
FoniaJS.showInfo(ajson.msg);
FoniaJS.closeWindow('#win'+this.KODE);
} else {
FoniaJS.showError(ajson.msg);
}
}.bind(this)
}).send();
}
};
+159
View File
@@ -0,0 +1,159 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/desa.js
Desc. : JS - Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulDesaJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEL').click(function(){
if ($('#KelID').val()>0) this.show_hide(2);
}.bind(this));
$('#butBEL').click(function(){
if ($('#BelID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divBEL').addClass('d-none'); $('#butBEL').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#BelID').val(0);
$('#Nama_BEL').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butBEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divBEL').removeClass('d-none'); this.data_query('tabel-bel'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
bel_select: function(acell){
$('#BelID').val(acell[0]);
$('#Nama_BEL').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulDesa').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume: {required:true, double_id:true},
SatuanID: {required:true, min:1},
Rupiah: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','KelID','BelID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulDesa').submit();
if (true !== $('#formUsulDesa').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','BelID','UsulanLID','Lokasi','Dusun','RT','Masalah','Usulan','Sasaran','Waktu','Volume','SatuanID','Rupiah'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','KecID']
}).send();
} else if (tipe=="tabel-bel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-bel','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID','KelID','BelID']
}).send();
}
}
};
+129
View File
@@ -0,0 +1,129 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/hasil.js
Desc. : JS - nput Hasil Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulHasilJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEL').click(function(){
if ($('#KelID').val()>0) this.show_hide(2);
}.bind(this));
$('#butOPD').click(function(){
if ($('#OPDID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divOPD').addClass('d-none'); $('#butOPD').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#OPDID').val(0);
$('#Nama_OPD').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butOPD').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divOPD').removeClass('d-none'); this.data_query('tabel-opd'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[2]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
opd_select: function(acell){//
$('#OPDID').val(acell[0]);
$('#Nama_OPD').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'UsulanLID='+ID],
onSuccess: function(ajson){
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}], function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#Prio').focus();
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','OPDID','KecID','KelID','UsulanLID','Prio'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','KecID']
}).send();
} else if (tipe=="tabel-opd"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-opd','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','KecID','KelID','OPDID']
}).send();
}
}
};
+117
View File
@@ -0,0 +1,117 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/kec.js
Desc. : JS - Usulan Kecamatan
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 13th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulKecJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Usulan').val(1);
}
if (no <= 1) {
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Usulan').val(acell[1]);
this.show_hide(2);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Usulan','KecID','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Usulan').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Kecamatan', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
$('#formUsulKec').validate({
rules: {
required: true,
OPDID: {required:true, min:1},
Volume2: {required:true, double_id:true},
SatuanID2: {required:true, min:1},
Rupiah2: {required:true, double_id:true}
}
});
}.bind(this));
}.bind(this)
}).send();
},
keg_tambah: function(){
this.keg_detail('insert', 0);
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_hapus: function(acell){
FoniaJS.showConfirm('Konfirmasi', 'Hapus usulan <b>"'+acell[2]+'"</b> ?', function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=delete','Hak_Usulan','KecID','UsulanLID='+acell[0]],
onSuccess: function(adata){
FoniaJS.showInfo('Proses hapus data sukses!');
}.bind(this)
}).send();
}.bind(this), 'danger');
},
keg_simpan: function(){
$('#formUsulKec').submit();
if (true !== $('#formUsulKec').validate().checkForm()) return false;
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Usulan','OPDID','KecID','KelID','UsulanLID','Lokasi2','Dusun2','RT2','Masalah2','Usulan2','Sasaran2','Waktu2','Volume2','SatuanID2','Rupiah2'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Usulan','KecID']
}).send();
}
}
};
+140
View File
@@ -0,0 +1,140 @@
/*******************************************************************
App. Name : SISTEM INFORMASI PERENCANAAN PEMBANGUNAN DAERAH
Module : /apps/js/usul/prio.js
Desc. : JS - Prioritas Usulan Desa
Created By : Siau Pheng (siaupheng@3fonia.com).
Created Date : October 28th, 2011.
Last Modified : January 9th, 2026.
(c) 2011 - 2026, 3FONIA Software; WWW.3FONIA.COM.
*******************************************************************/
var MUsulPrioJS = {
PHP: '',
KODE: '',
loading: function(){
$('#butKEC').click(function(){
if ($('#KecID').val()>0) this.show_hide(1);
}.bind(this));
$('#butKEL').click(function(){
if ($('#KelID').val()>0) this.show_hide(2);
}.bind(this));
$('#butSID').click(function(){
if ($('#SidangID').val()>0) this.show_hide(3);
}.bind(this));
this.show_hide(1);
},
show_hide: function(no){
$('#divKEC').addClass('d-none'); $('#butKEC').removeClass('btn-secondary').addClass('btn-info');
$('#divKEL').addClass('d-none'); $('#butKEL').removeClass('btn-secondary').addClass('btn-info');
$('#divSID').addClass('d-none'); $('#butSID').removeClass('btn-secondary').addClass('btn-info');
$('#divKEG').addClass('d-none');
if (no == 1) {
$('#KecID').val(0);
$('#Nama_KEC').val('');
$('#Hak_Prioritas').val(1);
}
if (no <= 1) {
$('#KelID').val(0);
$('#Nama_KEL').val('');
$('#butKEC').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 2) {
$('#SidangID').val(0);
$('#Nama_SID').val('');
$('#butKEL').removeClass('btn-info').addClass('btn-secondary');
}
if (no <= 3) {
$('#butSID').removeClass('btn-info').addClass('btn-secondary');
}
if (no == 1) { $('#divKEC').removeClass('d-none'); this.data_query('tabel-kec'); }
if (no == 2) { $('#divKEL').removeClass('d-none'); this.data_query('tabel-kel'); }
if (no == 3) { $('#divSID').removeClass('d-none'); this.data_query('tabel-sid'); }
if (no == 4) { $('#divKEG').removeClass('d-none'); this.data_query('tabel-keg'); }
},
kec_select: function(acell){
$('#KecID').val(acell[0]);
$('#Nama_KEC').val(acell[3]);
$('#Hak_Prioritas').val(acell[1]);
this.show_hide(2);
},
kel_select: function(acell){
$('#KelID').val(acell[0]);
$('#Nama_KEL').val(acell[2]);
this.show_hide(3);
},
sid_select: function(acell){
$('#SidangID').val(acell[0]);
$('#Nama_SID').val(acell[2]);
this.show_hide(4);
},
keg_detail: function(mode, ID){
new Request.JSON({
url: this.PHP,
sendParam: ['data=detail-keg','mode_detail='+mode,'Hak_Prioritas','UsulanLID='+ID],
onSuccess: function(ajson){
var tombol = [{},{i:'butTutup'},{i:'butWSimpan',v:'Simpan',c:'success'}];
if ($('#Hak_Prioritas').val()==0) tombol.pop();
this.winDKeg = FoniaJS.showWindow('DKeg', 'Detail Usulan Kegiatan Desa', ajson.html, 'xl', tombol, function(){
$('#winDKeg').find('#butWSimpan').click(function(){this.keg_simpan();}.bind(this));
}.bind(this));
}.bind(this)
}).send();
},
keg_ubah: function(acell){
this.keg_detail('update', acell[0]);
},
keg_simpan: function(){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail','Hak_Prioritas','KecID','KelID','SidangID','UsulanLID','Prio'],
onSuccess: function(){
FoniaJS.closeWindow(this.winDKeg);
FoniaJS.showInfo('Sukses menyimpan Usulan Kegiatan.');
}.bind(this)
}).send();
},
data_query: function(tipe, mode){
if (tipe=="tabel-kec"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kec']
}).send();
} else if (tipe=="tabel-kel"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-kel','KecID']
}).send();
} else if (tipe=="tabel-sid"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-sid','KecID','KelID']
}).send();
} else if (tipe=="tabel-keg"){
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','Hak_Prioritas','KecID','KelID','SidangID']
}).send();
}
},
oc_Prio: function(el){
var id = $(el).closest('tr').children('td:first').text();
new Request.JSONF({
url: this.PHP,
sendParam: ['data=tabel-keg','mode_detail=update','Hak_Prioritas','KecID','KelID','SidangID','UsulanLID='+id,'Prio='+$(el).val()],
}).send();
}
};

Some files were not shown because too many files have changed in this diff Show More