From d35ca7ab8b8396b735bc447f13a90022901dc881 Mon Sep 17 00:00:00 2001 From: Sas Andy Date: Thu, 22 Feb 2024 10:36:22 +0700 Subject: [PATCH] Revisi constant & model --- images/btn_approval.png | Bin 0 -> 2416 bytes lib/app/constant.dart | 43 +++++++++++++ lib/model/approval_detail_model.dart | 56 +++++++++++++++++ lib/model/approval_model.dart | 68 +++++++++++++++++++++ lib/model/approval_type_model.dart | 24 ++++++++ lib/provider/approval_filter_provider.dart | 28 +++++++++ 6 files changed, 219 insertions(+) create mode 100644 images/btn_approval.png create mode 100644 lib/model/approval_detail_model.dart create mode 100644 lib/model/approval_model.dart create mode 100644 lib/model/approval_type_model.dart create mode 100644 lib/provider/approval_filter_provider.dart diff --git a/images/btn_approval.png b/images/btn_approval.png new file mode 100644 index 0000000000000000000000000000000000000000..5120d10aba6a085f37aac26c6c56e8173912812b GIT binary patch literal 2416 zcmV-$36J)PP)Nlg&42#NPjG+++bP$<$BCUHTuYkFsU6Sch!6qu$I^bDVJwi;xB8YZTw~jY+lTV}#$Clr=+i|$C$Zkc8@qVjyWW`{Hj=^J~ z$08z;EQH>Gfe)Ll(#H$Ga9lC0wzwF+J{DS#N(>JoiV{kYN{kgm5GC+{YClK*Fh(I4~U|9^FQB?SY$Lb9&ito_iTM+g3_OVKg5FDd1BBDpwUZuIuugb$MIJt*y;!R+Rw8Xqm!;rGmJ@XMY_P$-uKN zj{v{iLfASglEovyF9=duM@n#jzlnu4q(uve^MMj>}8Hbd)h_D{o*|E70x z7D6a2fGZ5K(MXeLV3@6AO8AtB&$f3{k$rft5@I zG5ck$S><1p&DN|S`l5w$mr3$13XQ$Kl@DVJxs9W6kz2k+`K6naxPsh!tcIgOenr`W z_E4@MYH*Y;1I?!>W=qF#scZ8`ugso5Q8L@`XNI2tHJNH_5m9PH|^o!U7Rkrt$cJW&>x^`AK_DIPXe^iUp7k(E%jco26@ zEIl@kOA|Kltb?*}3PSx4qL0AjVLioEG|P&s;9U`&oG zuKvC$n;3M@($wP&9dnh|OwORJ(1MjvHye+k^bF2W`g@Js*;UU&awa^LDb_xx*ZBv~@6hW!iyV`^g=isYkd*qn&n4U! z=)d_zghAL8^zBcV{wyaJBGhj4WM*;1y~^aZ18eZlU9y%d2i78cx9Lyu%0b#R*uOY< zCj0l79+d|{Y>*HgWJ7o{7|J>5Tz(CWJj`N>lPuPyBl#1uAiNl3Mxv0*bJlK*W@*J{ zzwMYVErNS=-YHHgx!olxC*NP=O@3>9}}(> zzJ@i%!BA4A*G8I1c^+Y4F&yKHP8jXM^bId9tcky&4AAsL;(p58p$c3LddiF# zw=ik7bu1re=;>`p@7AU!j1xQ_ctrxZb*rFa+=U;6a}D`LZ$0Y@vV#ySI-&V|?)j+& zQG!~AT5(YW*RW)tZ+8ejp-77jceblt7H{6D-l8~?MrQ&cD5F;M%dD;_!~IEpDu|on zN-!sdazGZKo=4H(`0+c}OHBk2oy2x)o?)n7_6W2SO9@)%QpTuk;^fx?4rACpnCVUg z`AJG{OV-*@;w6utvM8VE5C5f=7hG3IIS2~6n%J0ZU49^lc$)JOBc0%G;|Ba+%;t>_ z{-d=KDWY8P_9n7|-PO}rVj+z6FhwgF&8WgMo{8z#qu9YWi-tn+d-)f#f*Z(8F)PTQ z(bY}0(qMX;8%shf@k{q@QtzHElSSR0j8OheY; z(b~ehRPqN>ur9K>0HVxruMrRHU_1rU>m-kNJWs3$2{#oxr18t4#YFKl?CS0q5uYiO2Go6P) zdm9EGRQ(H{>9nhv*CDuKglaTdwats0i5Q_=d(~JnP9loIL>fr_i^)$`fgWxEcVkAR zv54NgmHi~oB#yKwln%tyoH*8g>X|J6W(_5M_!VZh3y(tl4er0fI=*g}zrnqpWp;dL z;C_i+5Ju-J+#jQ?%fM8%XUSuZ7G`fF=#a%^P>Gv?{Sq_atk8j7Az6w1nav{hxx<1Cu0q&8*P%SfdfmndL zz87Z5xALVG8~lL9FLyt7jYjo5jdgR?I iw&?LG46<@Xe)$mrv7~{R5h1+*0000 json) { + id = json['id']; + name = json['Name']; + nip = json['nip']; + date = json['date']; + time = json['time']; + address = json['address']; + lat = json['lat']; + long = json['long']; + imagePath = json['imagePath']; + statusID = json['statusID']; + statusName = json['statusName']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['Name'] = this.name; + data['nip'] = this.nip; + data['date'] = this.date; + data['time'] = this.time; + data['address'] = this.address; + data['lat'] = this.lat; + data['long'] = this.long; + data['imagePath'] = this.imagePath; + data['statusID'] = this.statusID; + data['statusName'] = this.statusName; + return data; + } +} diff --git a/lib/model/approval_model.dart b/lib/model/approval_model.dart new file mode 100644 index 0000000..c01bbfc --- /dev/null +++ b/lib/model/approval_model.dart @@ -0,0 +1,68 @@ +class ApprovalModel { + String? id; + String? name; + String? date; + String? time; + String? typename; + String? typeID; + String? presensiTypeName; + String? presensitypeID; + String? address; + String? reasonType; + String? reasontypeID; + String? reasonDescription; + String? statusID; + String? statusName; + + ApprovalModel( + {this.id, + this.name, + this.date, + this.time, + this.typename, + this.typeID, + this.presensiTypeName, + this.presensitypeID, + this.address, + this.reasonType, + this.reasontypeID, + this.reasonDescription, + this.statusID, + this.statusName}); + + ApprovalModel.fromJson(Map json) { + id = json['id']; + name = json['name']; + date = json['date']; + time = json['time']; + typename = json['typename']; + typeID = json['typeID']; + presensiTypeName = json['presensiTypeName']; + presensitypeID = json['presensitypeID']; + address = json['address']; + reasonType = json['reasonType']; + reasontypeID = json['reasontypeID']; + reasonDescription = json['reasonDescription']; + statusID = json['statusID']; + statusName = json['statusName']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['name'] = this.name; + data['date'] = this.date; + data['time'] = this.time; + data['typename'] = this.typename; + data['typeID'] = this.typeID; + data['presensiTypeName'] = this.presensiTypeName; + data['presensitypeID'] = this.presensitypeID; + data['address'] = this.address; + data['reasonType'] = this.reasonType; + data['reasontypeID'] = this.reasontypeID; + data['reasonDescription'] = this.reasonDescription; + data['statusID'] = this.statusID; + data['statusName'] = this.statusName; + return data; + } +} diff --git a/lib/model/approval_type_model.dart b/lib/model/approval_type_model.dart new file mode 100644 index 0000000..bdd8366 --- /dev/null +++ b/lib/model/approval_type_model.dart @@ -0,0 +1,24 @@ +class ApprovalTypeModel { + String? id; + String? value; + String? name; + bool? isActive; + + ApprovalTypeModel({this.id, this.value, this.name, this.isActive}); + + ApprovalTypeModel.fromJson(Map json) { + id = json['id']; + value = json['value']; + name = json['name']; + isActive = json['isActive']; + } + + Map toJson() { + final Map data = new Map(); + data['id'] = this.id; + data['value'] = this.value; + data['name'] = this.name; + data['isActive'] = this.isActive; + return data; + } +} diff --git a/lib/provider/approval_filter_provider.dart b/lib/provider/approval_filter_provider.dart new file mode 100644 index 0000000..d767f7e --- /dev/null +++ b/lib/provider/approval_filter_provider.dart @@ -0,0 +1,28 @@ +import 'package:absensi_sas/model/approval_type_model.dart'; + +import 'package:hooks_riverpod/hooks_riverpod.dart'; + +class ApprovalFilterProvider { + DateTime startDate = DateTime.now(); + DateTime endDate = DateTime.now(); + String keyword = ""; + List selectedApprovalType = []; + final approvalTypeList = [ + ApprovalTypeModel(id: "1", name: "Presensi", isActive: false, value: "p"), + ApprovalTypeModel(id: "2", name: "Cuti", isActive: true, value: "c"), + ApprovalTypeModel(id: "3", name: "Lembur", isActive: false, value: "l"), + ]; + ApprovalFilterProvider( + {required this.endDate, + required this.keyword, + required this.selectedApprovalType, + required this.startDate}); +} + +final approvalFilterProvider = StateProvider((ref) { + return ApprovalFilterProvider( + selectedApprovalType: [], + endDate: DateTime.now(), + keyword: "", + startDate: DateTime.now()); +});