WajibPajak.php
3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
/**
* @Author: irul
* @Date: 2019-09-20 23:09:49
* @Last Modified by: irul
* @Last Modified time: 2019-10-01 23:57:49
*/
namespace Integrasi\Reklame\Base;
use \Integrasi\Reklame\Helper\Validator;
use \Illuminate\Database\Eloquent\ModelNotFoundException;
use \JsonRPC\Exception\ResponseException;
class WajibPajak extends AbstractClass
{
public static function create($payload)
{
/**
* Pengaturan validasi payload.
*/
$rules = array(
'rp' => 'required|in:R,P',
'pb' => 'required|in:1,2',
'kelurahan_id' => 'required|exists:tblkelurahan,id',
'kecamatan_id' => 'required|exists:tblkecamatan,id',
'customernm' => 'required|max:150',
'kabupaten' => 'required|max:25',
'alamat' => 'required|max:255',
'kodepos' => 'required|max:5',
'telphone' => 'required|max:40',
'wpnama' => 'required|max:150',
'wpalamat' => 'required|max:255',
'wpkelurahan_id' => 'required|exists:tblkelurahan,id',
'wpkecamatan_id' => 'required|exists:tblkecamatan,id',
'wpkabupaten' => 'required|max:25',
'wpkodepos' => 'required|max:5',
'wptelp' => 'required|max:40',
);
/**
* Proses validasi payload.
*/
$validation = Validator::make($payload, $rules);
if ($validation->fails()) {
throw new ResponseException(
'Parameter yang dikirim tidak lulus proses validasi.',
0,
null,
$validation->messages());
}
// $wp = Models\Customer::create(array(
$wp = call_user_func(self::getParentNamespace() . '\Models\Customer::create', array(
'rp' => strtoupper(trim($payload['rp'])),
'pb' => $payload['pb'],
'kelurahan_id' => $payload['kelurahan_id'],
'kecamatan_id' => $payload['kecamatan_id'],
'reg_date' => date('Y-m-d H:i:s'),
'customernm' => trim($payload['customernm']),
'kabupaten' => trim($payload['kabupaten']),
'alamat' => trim($payload['alamat']),
'kodepos' => trim($payload['kodepos']),
'telphone' => trim($payload['telphone']),
'wpnama' => trim($payload['wpnama']),
'wpalamat' => trim($payload['wpalamat']),
'wpkelurahan_id' => $payload['wpkelurahan_id'],
'wpkecamatan_id' => $payload['wpkecamatan_id'],
'wpkelurahan' => 'Will be replaced in model',
'wpkecamatan' => 'Will be replaced in model',
'wpkabupaten' => trim($payload['wpkabupaten']),
'wpkodepos' => trim($payload['wpkodepos']),
'wptelp' => trim($payload['wptelp']),
'enabled' => 1,
));
return self::getById($wp->id);
}
public static function getByNpwpd($npwpd)
{
// $data = Models\Customer::findByNpwpd($npwpd)->first();
$data = call_user_func(self::getParentNamespace() . '\Models\Customer::findByNpwpd', $npwpd)->first();
if (!$data) {
throw new ModelNotFoundException(MSG_NOT_FOUND);
}
return $data;
}
public static function getBySkpd($kohirno)
{
if (!Helper::sptpdExist()) {
// $spt = Models\Spt::findByKohirno($kohirno)->first();
$spt = call_user_func(self::getParentNamespace() . '\Models\Spt::findByKohirno', $kohirno)->first();
if (!$spt) {
throw new ModelNotFoundException(MSG_NOT_FOUND);
}
return self::getById($spt->customer_id);
} else {
$sptpd = call_user_func(self::getParentNamespace() . '\Models\Sptpd::findByKohirno', $kohirno)->first();
if (!$sptpd) {
throw new ModelNotFoundException(MSG_NOT_FOUND);
}
return self::getById($sptpd->customer_id);
}
}
public static function getById($id)
{
// $data = Models\Customer::find($id);
$data = call_user_func(self::getParentNamespace() . '\Models\Customer::find', $id);
if (!$data) {
throw new ModelNotFoundException(MSG_NOT_FOUND);
}
return $data;
}
}