Source Code Sistem Informasi Penggajia
LAMPIRAN
1. index.html
Jaya Mekar
Jabatan
Karyawan
Rumus Gaji
1
Penggajian
2
2. manifest.json
{
"name": "__MSG_appName__",
"description": "__MSG_appDescription__",
"version": "11",
"manifest_version": 2,
"default_locale": "en",
"permissions": [
"unlimitedStorage"
],
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"app": {
"background": {
"scripts": [
"scripts/main.js",
"scripts/chromereload.js"
]
}
}
}
3. _locales/en/messages.json
{
}
"appName": {
"message": "Jaya Mekar",
"description": "The name of the application"
},
"appDescription": {
"message": "Sistem Informasi Penggajian",
"description": "The description of the application"
}
4. scripts/main.js
'use strict';
chrome.app.runtime.onLaunched.addListener(function() {
var width = 840;
var height = 600;
chrome.app.window.create('index.html', {
minWidth: width,
minHeight: height,
left: Math.round((screen.availWidth - width) / 2),
top: Math.round((screen.availHeight - height) / 2)
});
});
3
5. views/jabatan/jabatan.html
Mengelola Jabatan
Tambah Jabatan
Sunting Data
Hapus Data
Jenis
Jml Karyawan
4
Jml Rumus Gaji
{{i.jenis}}
{{i.karyawan.length ||
0}} orang
{{i.rumusGaji.length
|| 0}} data
{{i.waktu | waktu}}
6. views/jabatan/modal-jabatan.html
{{modalJabatanCtrl.obj.aksi}}
Jabatan
Nama Jabatan
* Nama
jabatan wajib di isi
* Nama
jabatan kurang terperinci
* Nama
Jabatan terlalu panjang
5
Jenis
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
Simpan
Batal
7. views/karyawan/karyawan.html
Mengelola Karyawan
Tambah Karyawan
#
Nama
Jabatan
Karyawan
Kel
6
Status
{{(KaryawanCtrl.numberPage1)*KaryawanCtrl.limit+$index+1}}
{{i.namaDepan}} {{i.namaBelakang}}
{{i.jabatan}}
{{i.rincianJabatan.jenis}}
{{i.kelompokKerja}}
{{i.statusKaryawan}}
8. views/karyawan/modal-karyawan.html
7
Karyawan
·
{{modalKaryawanCtrl.obj.waktu | waktu}} ·
#{{modalKaryawanCtrl.obj.versi}}
Nama Lengkap
* Nama
depan wajib di isi
* Nama
depan terlalu pendek
* Nama
depan terlalu panjang
* Tidak
wajib di isi
Jabatan
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
8
Kelompok Kerja
--
*
Kelompok Kerja wajib di isi
Pertama Kerja
*
Tanggal wajib di isi
9
Status
*
Tanggal wajib di isi
Simpan
Batal
9. views/rumus-gaji/rumus-gaji.html
Tambah Rumus Gaji
Karyawan Harian
#
Jabatan
Jenis
Shift
10
H.Perminggu
H.Perhari
U.Hadir
{{(RumusGajiCtrl.numberPage1)*RumusGajiCtrl.limit+$index+1}}
{{i.jabatan}}
{{i.jenis}}
{{i.shift}}
{{i.harga |
numberFormat:"Rp ":0}}
{{i.harga / 6 |
numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
Tambah Rumus Gaji
Karyawan Borongan
#
Jabatan
Jenis
Shift
T.Produksi
T.J.Produksi
H.Normal
H.Target
U.Hadir
12
{{(RumusGajiCtrl.numberPage1)*RumusGajiCtrl.limit+$index+1}}
{{i.jabatan}}
{{i.jenis}}
{{i.shift}}
{{i.targetProduksi |
numberFormat:""}} mtr
{{i.targetJmlProduksi |
numberFormat:""}} mtr
{{i.harga |
numberFormat:"Rp ":0}}
{{i.hargaTarget |
numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
10. views/rumus-gaji/modal-rumus-gaji.html
Rumus Gaji {{modalRumusGaji.jenis}}
13
Jabatan
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
Jenis
Shift
--
Harga
perminggu
14
* Harga
perminggu wajib di isi
{{modalRumusGaji.obj.harga / 6 | numberFormat:"Rp
":0}}
Harga normal
* Harga
normal wajib di isi
Harga target
* Harga
target wajib di isi
Target
produksi
15
* Target
produksi wajib di isi
T.Jml Produksi
* T.Jml
produksi wajib di isi
Uang hadir
* Harga
Uang hadir wajib di isi
Simpan
Batal
16
11. views/penggajian/penggajian.html
Hitung penggajian
karyawan harian
#
Nama Lengkap
Jabatan
Tanggal
Shift
Khdr
Harga
Uang Hadir
Gapok
Bonus
Total Gaji
{{(PenggajianCtrl.numberPage1)*PenggajianCtrl.limit+$index+1}}
{{i.namaLengkap}}
{{i.jabatan}}
{{i.waktu.penggajian |
date:'d MMM yyyy'}}
{{i.rincianRumusGaji.shift}}
{{i.kehadiran}}
{{i.rincianRumusGaji.harga
| numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
{{i.gajipokok |
numberFormat:"Rp ":0}}
17
{{i.bonus |
numberFormat:"Rp ":0}}
{{i.totalGaji |
numberFormat:"Rp ":0}}
Jumlah
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'uangHadir' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'gajipokok' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'bonus' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'totalGaji' |
numberFormat:"Rp ":0}}
18
12. views/penggajian/modal-penggajian.html
Proses {{modalPenggajianCtrl.aksi}} Penggajian {{modalPenggajianCtrl.jenis}}
Nama Depan
-- Pilih Karyawan --
*
Karyawan wajib di isi
Tgl Penggajian
19
*
Tanggal wajib di isi
Jabatan
Shift
-- Pilih Shift --
* Shift
wajib di isi
Jenis
20
Harga
Kehadiran
*
Minimal angka nol
Uang Hadir
Gaji pokok
Bonus
21
Total Gaji
Simpan
Batal
13. scripts/app.js
'use strict';
angular.module('jayaMekarApp', [
'ui.router',
'ngMessages',
'ui.bootstrap'
])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/jabatan');
$stateProvider
.state('jabatan', {
url: '/jabatan',
templateUrl: 'views/jabatan/jabatan.html',
controller: 'JabatanCtrl'
})
.state('karyawan', {
url: '/karyawan',
templateUrl: 'views/karyawan/karyawan.html',
controller: 'KaryawanCtrl'
})
.state('rumus-gaji', {
url: '/rumus-gaji',
templateUrl: 'views/rumus-gaji/rumus-gaji.html',
controller: 'RumusGajiCtrl'
})
22
.state('penggajian', {
url: '/penggajian',
templateUrl: 'views/penggajian/penggajian.html',
controller: 'PenggajianCtrl'
})
}
]);
14. config/app.config.js
'use strict';
angular.module('jayaMekarApp')
.constant('APP_CONFIG', {
'brandTop': {
nama: 'Nama Aplikasi',
icon: 'Icon Aplikasi'
}
})
.config(['APP_CONFIG',
function(APP_CONFIG) {
APP_CONFIG.brandTop = {
nama: 'Jaya Mekar'
};
APP_CONFIG.menuNavRightTop = [
{
href: '#',
menu: 'DEMO',
ngClassD: 'caret',
dropdown: true,
submenu: [{
href: 'contoh-data',
submenu: 'Contoh Data',
ngClass: 'glyphicon glyphicon-file'
}]
}
];
}
]);
15. controller/root.js
'use strict';
angular.module('jayaMekarApp')
.controller('RootCtrl', ['$scope', 'APP_CONFIG',
function($scope, APP_CONFIG) {
var vm = $scope.RootCtrl = this;
vm.brand = APP_CONFIG.brandTop;
vm.menuNavRight = APP_CONFIG.menuNavRightTop;
vm.withSidebar = true;
23
vm.toggleSidebar = function() {
vm.withSidebar = !vm.withSidebar;
};
}
]);
16. controller/jabatan.js
'use strict';
angular.module('jayaMekarApp')
.controller('JabatanCtrl', ['$scope', 'jabatanFactory',
function($scope, jabatanFactory) {
var that = $scope.JabatanCtrl = this;
this.jabatan = jabatanFactory.jabatan;
this.render = {
jabatanDipakai: function(object) {
return object.karyawan.length > 0 ||
object.rumusGaji.length > 0 ? true : false;
},
hapusData: function(object) {
return object.karyawan.length
1. index.html
Jaya Mekar
Jabatan
Karyawan
Rumus Gaji
1
Penggajian
2
2. manifest.json
{
"name": "__MSG_appName__",
"description": "__MSG_appDescription__",
"version": "11",
"manifest_version": 2,
"default_locale": "en",
"permissions": [
"unlimitedStorage"
],
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"app": {
"background": {
"scripts": [
"scripts/main.js",
"scripts/chromereload.js"
]
}
}
}
3. _locales/en/messages.json
{
}
"appName": {
"message": "Jaya Mekar",
"description": "The name of the application"
},
"appDescription": {
"message": "Sistem Informasi Penggajian",
"description": "The description of the application"
}
4. scripts/main.js
'use strict';
chrome.app.runtime.onLaunched.addListener(function() {
var width = 840;
var height = 600;
chrome.app.window.create('index.html', {
minWidth: width,
minHeight: height,
left: Math.round((screen.availWidth - width) / 2),
top: Math.round((screen.availHeight - height) / 2)
});
});
3
5. views/jabatan/jabatan.html
Mengelola Jabatan
Tambah Jabatan
Sunting Data
Hapus Data
Jenis
Jml Karyawan
4
Jml Rumus Gaji
{{i.jenis}}
{{i.karyawan.length ||
0}} orang
{{i.rumusGaji.length
|| 0}} data
{{i.waktu | waktu}}
6. views/jabatan/modal-jabatan.html
{{modalJabatanCtrl.obj.aksi}}
Jabatan
Nama Jabatan
* Nama
jabatan wajib di isi
* Nama
jabatan kurang terperinci
* Nama
Jabatan terlalu panjang
5
Jenis
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
Simpan
Batal
7. views/karyawan/karyawan.html
Mengelola Karyawan
Tambah Karyawan
#
Nama
Jabatan
Karyawan
Kel
6
Status
{{(KaryawanCtrl.numberPage1)*KaryawanCtrl.limit+$index+1}}
{{i.namaDepan}} {{i.namaBelakang}}
{{i.jabatan}}
{{i.rincianJabatan.jenis}}
{{i.kelompokKerja}}
{{i.statusKaryawan}}
8. views/karyawan/modal-karyawan.html
7
Karyawan
·
{{modalKaryawanCtrl.obj.waktu | waktu}} ·
#{{modalKaryawanCtrl.obj.versi}}
Nama Lengkap
* Nama
depan wajib di isi
* Nama
depan terlalu pendek
* Nama
depan terlalu panjang
* Tidak
wajib di isi
Jabatan
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
8
Kelompok Kerja
--
*
Kelompok Kerja wajib di isi
Pertama Kerja
*
Tanggal wajib di isi
9
Status
*
Tanggal wajib di isi
Simpan
Batal
9. views/rumus-gaji/rumus-gaji.html
Tambah Rumus Gaji
Karyawan Harian
#
Jabatan
Jenis
Shift
10
H.Perminggu
H.Perhari
U.Hadir
{{(RumusGajiCtrl.numberPage1)*RumusGajiCtrl.limit+$index+1}}
{{i.jabatan}}
{{i.jenis}}
{{i.shift}}
{{i.harga |
numberFormat:"Rp ":0}}
{{i.harga / 6 |
numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
Tambah Rumus Gaji
Karyawan Borongan
#
Jabatan
Jenis
Shift
T.Produksi
T.J.Produksi
H.Normal
H.Target
U.Hadir
12
{{(RumusGajiCtrl.numberPage1)*RumusGajiCtrl.limit+$index+1}}
{{i.jabatan}}
{{i.jenis}}
{{i.shift}}
{{i.targetProduksi |
numberFormat:""}} mtr
{{i.targetJmlProduksi |
numberFormat:""}} mtr
{{i.harga |
numberFormat:"Rp ":0}}
{{i.hargaTarget |
numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
10. views/rumus-gaji/modal-rumus-gaji.html
Rumus Gaji {{modalRumusGaji.jenis}}
13
Jabatan
-- Pilih Jenis Jabatan --
* Jenis
jabatan wajib di isi
Jenis
Shift
--
Harga
perminggu
14
* Harga
perminggu wajib di isi
{{modalRumusGaji.obj.harga / 6 | numberFormat:"Rp
":0}}
Harga normal
* Harga
normal wajib di isi
Harga target
* Harga
target wajib di isi
Target
produksi
15
* Target
produksi wajib di isi
T.Jml Produksi
* T.Jml
produksi wajib di isi
Uang hadir
* Harga
Uang hadir wajib di isi
Simpan
Batal
16
11. views/penggajian/penggajian.html
Hitung penggajian
karyawan harian
#
Nama Lengkap
Jabatan
Tanggal
Shift
Khdr
Harga
Uang Hadir
Gapok
Bonus
Total Gaji
{{(PenggajianCtrl.numberPage1)*PenggajianCtrl.limit+$index+1}}
{{i.namaLengkap}}
{{i.jabatan}}
{{i.waktu.penggajian |
date:'d MMM yyyy'}}
{{i.rincianRumusGaji.shift}}
{{i.kehadiran}}
{{i.rincianRumusGaji.harga
| numberFormat:"Rp ":0}}
{{i.uangHadir |
numberFormat:"Rp ":0}}
{{i.gajipokok |
numberFormat:"Rp ":0}}
17
{{i.bonus |
numberFormat:"Rp ":0}}
{{i.totalGaji |
numberFormat:"Rp ":0}}
Jumlah
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'uangHadir' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'gajipokok' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'bonus' |
numberFormat:"Rp ":0}}
{{PenggajianCtrl.penggajianKaryawanHarian |
filter:'Harian' | filter:RootCtrl.filter | sumByKey:'totalGaji' |
numberFormat:"Rp ":0}}
18
12. views/penggajian/modal-penggajian.html
Proses {{modalPenggajianCtrl.aksi}} Penggajian {{modalPenggajianCtrl.jenis}}
Nama Depan
-- Pilih Karyawan --
*
Karyawan wajib di isi
Tgl Penggajian
19
*
Tanggal wajib di isi
Jabatan
Shift
-- Pilih Shift --
* Shift
wajib di isi
Jenis
20
Harga
Kehadiran
*
Minimal angka nol
Uang Hadir
Gaji pokok
Bonus
21
Total Gaji
Simpan
Batal
13. scripts/app.js
'use strict';
angular.module('jayaMekarApp', [
'ui.router',
'ngMessages',
'ui.bootstrap'
])
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/jabatan');
$stateProvider
.state('jabatan', {
url: '/jabatan',
templateUrl: 'views/jabatan/jabatan.html',
controller: 'JabatanCtrl'
})
.state('karyawan', {
url: '/karyawan',
templateUrl: 'views/karyawan/karyawan.html',
controller: 'KaryawanCtrl'
})
.state('rumus-gaji', {
url: '/rumus-gaji',
templateUrl: 'views/rumus-gaji/rumus-gaji.html',
controller: 'RumusGajiCtrl'
})
22
.state('penggajian', {
url: '/penggajian',
templateUrl: 'views/penggajian/penggajian.html',
controller: 'PenggajianCtrl'
})
}
]);
14. config/app.config.js
'use strict';
angular.module('jayaMekarApp')
.constant('APP_CONFIG', {
'brandTop': {
nama: 'Nama Aplikasi',
icon: 'Icon Aplikasi'
}
})
.config(['APP_CONFIG',
function(APP_CONFIG) {
APP_CONFIG.brandTop = {
nama: 'Jaya Mekar'
};
APP_CONFIG.menuNavRightTop = [
{
href: '#',
menu: 'DEMO',
ngClassD: 'caret',
dropdown: true,
submenu: [{
href: 'contoh-data',
submenu: 'Contoh Data',
ngClass: 'glyphicon glyphicon-file'
}]
}
];
}
]);
15. controller/root.js
'use strict';
angular.module('jayaMekarApp')
.controller('RootCtrl', ['$scope', 'APP_CONFIG',
function($scope, APP_CONFIG) {
var vm = $scope.RootCtrl = this;
vm.brand = APP_CONFIG.brandTop;
vm.menuNavRight = APP_CONFIG.menuNavRightTop;
vm.withSidebar = true;
23
vm.toggleSidebar = function() {
vm.withSidebar = !vm.withSidebar;
};
}
]);
16. controller/jabatan.js
'use strict';
angular.module('jayaMekarApp')
.controller('JabatanCtrl', ['$scope', 'jabatanFactory',
function($scope, jabatanFactory) {
var that = $scope.JabatanCtrl = this;
this.jabatan = jabatanFactory.jabatan;
this.render = {
jabatanDipakai: function(object) {
return object.karyawan.length > 0 ||
object.rumusGaji.length > 0 ? true : false;
},
hapusData: function(object) {
return object.karyawan.length