No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

surattugas_screen.dart 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:google_fonts/google_fonts.dart';
  4. import 'package:hris_selfservice_mobile/Screens/Menu/SuratTugas/pengajuan_st.dart';
  5. import '../SlipGaji/background.dart';
  6. class SuratTugas_Screen extends StatefulWidget {
  7. const SuratTugas_Screen({Key? key}) : super(key: key);
  8. @override
  9. State<SuratTugas_Screen> createState() => _SuratTugas_ScreenState();
  10. }
  11. class _SuratTugas_ScreenState extends State<SuratTugas_Screen> {
  12. var selectedCategory;
  13. var selectedDate;
  14. int _value = 0;
  15. @override
  16. Widget build(BuildContext context) {
  17. return Scaffold(
  18. body: SingleChildScrollView(
  19. child: Column(
  20. children: <Widget>[
  21. Stack(
  22. children: [
  23. WavyHeader(),
  24. Container(
  25. margin: EdgeInsets.only(top: 90),
  26. padding: EdgeInsets.fromLTRB(20, 5, 25, 5),
  27. child: Row(
  28. mainAxisAlignment: MainAxisAlignment.end,
  29. crossAxisAlignment: CrossAxisAlignment.end,
  30. children: [
  31. Text(
  32. 'Assignment\nLetter\t\t',
  33. style: GoogleFonts.luckiestGuy(
  34. fontSize: 28,
  35. color: Colors.red,
  36. fontStyle: FontStyle.italic,
  37. ),
  38. ),
  39. Image.asset(
  40. 'assets/icons/menu/ic_menu_surattugas.png',
  41. width: 40,
  42. height: 40,
  43. ),
  44. ],
  45. )),
  46. SafeArea(
  47. child: Container(
  48. width: MediaQuery.of(context).size.width,
  49. margin: EdgeInsets.only(
  50. top: MediaQuery.of(context).size.height / 5,
  51. left: 10,
  52. right: 10,
  53. ),
  54. child: Column(
  55. children: [
  56. InkWell(
  57. child: Container(
  58. margin: EdgeInsets.fromLTRB(15, 15, 15, 5),
  59. padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
  60. width: double.infinity,
  61. decoration: BoxDecoration(
  62. borderRadius: BorderRadius.circular(5),
  63. gradient: LinearGradient(colors: [
  64. Color(0xFF2D4059),
  65. Color(0xFF2D4059),
  66. /*Color(0xFFEAFFD0),
  67. Color(0xFF95E1D3),*/
  68. ])),
  69. child: Row(
  70. mainAxisAlignment: MainAxisAlignment.center,
  71. children: [
  72. Flexible(
  73. child: Text('Assignment Letter Submission\t\t',
  74. textAlign: TextAlign.center,
  75. style: TextStyle(
  76. color: Colors.white,
  77. fontSize: 17,
  78. fontWeight: FontWeight.w500))),
  79. Image.asset('assets/images/submit_st.png',
  80. width: 30,
  81. height: 30,
  82. )
  83. ],
  84. )),
  85. onTap: () {
  86. Navigator.push(
  87. context,
  88. MaterialPageRoute(
  89. builder: (context) => PengajuanST_Screen()));
  90. },
  91. ),
  92. InkWell(
  93. child: Container(
  94. margin: EdgeInsets.fromLTRB(15, 5, 15, 5),
  95. padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
  96. width: double.infinity,
  97. decoration: BoxDecoration(
  98. borderRadius: BorderRadius.circular(5),
  99. gradient: LinearGradient(colors: [
  100. Color(0xFF2D4059),
  101. Color(0xFF2D4059),
  102. /*Color(0xFFEAFFD0),
  103. Color(0xFF95E1D3),*/
  104. ])),
  105. child: Row(
  106. mainAxisAlignment: MainAxisAlignment.center,
  107. children: [
  108. Flexible(
  109. child: Text('Declaration of Assignment Letter\t\t',
  110. textAlign: TextAlign.center,
  111. style: TextStyle(
  112. color: Colors.white,
  113. fontSize: 17,
  114. fontWeight: FontWeight.w500))),
  115. Image.asset('assets/images/declaration.png',
  116. width: 30,
  117. height: 30,
  118. )
  119. ],
  120. )),
  121. onTap: () {},
  122. ),
  123. InkWell(
  124. child: Container(
  125. margin: EdgeInsets.fromLTRB(15, 5, 15, 5),
  126. padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
  127. width: double.infinity,
  128. decoration: BoxDecoration(
  129. borderRadius: BorderRadius.circular(5),
  130. gradient: LinearGradient(colors: [
  131. Color(0xFF2D4059),
  132. Color(0xFF2D4059),
  133. /*Color(0xFFEAFFD0),
  134. Color(0xFF95E1D3),*/
  135. ])),
  136. child: Row(
  137. mainAxisAlignment: MainAxisAlignment.center,
  138. children: [
  139. Flexible(
  140. child: Text('See Assignment Letter History\t\t',
  141. textAlign: TextAlign.center,
  142. style: TextStyle(
  143. color: Colors.white,
  144. fontSize: 17,
  145. fontWeight: FontWeight.w500))),
  146. Image.asset('assets/images/ic_history.png',
  147. width: 30,
  148. height: 30,
  149. )
  150. ],
  151. )),
  152. onTap: () {},
  153. ),
  154. InkWell(
  155. child: Container(
  156. margin: EdgeInsets.fromLTRB(15, 5, 15, 5),
  157. padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
  158. width: double.infinity,
  159. decoration: BoxDecoration(
  160. borderRadius: BorderRadius.circular(5),
  161. gradient: LinearGradient(colors: [
  162. Color(0xFF2D4059),
  163. Color(0xFF2D4059),
  164. /*Color(0xFFEAFFD0),
  165. Color(0xFF95E1D3),*/
  166. ])),
  167. child: Row(
  168. mainAxisAlignment: MainAxisAlignment.center,
  169. children: [
  170. Flexible(
  171. child: Text('Additional Advance Payment\t\t',
  172. textAlign: TextAlign.center,
  173. style: TextStyle(
  174. color: Colors.white,
  175. fontSize: 17,
  176. fontWeight: FontWeight.w500))),
  177. Image.asset('assets/images/extra_money.png',
  178. width: 30,
  179. height: 30,
  180. )
  181. ],
  182. )),
  183. onTap: () {},
  184. ),
  185. InkWell(
  186. child: Container(
  187. margin: EdgeInsets.fromLTRB(15, 5, 15, 5),
  188. padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
  189. width: double.infinity,
  190. decoration: BoxDecoration(
  191. borderRadius: BorderRadius.circular(5),
  192. gradient: LinearGradient(colors: [
  193. Color(0xFF2D4059),
  194. Color(0xFF2D4059),
  195. /*Color(0xFFEAFFD0),
  196. Color(0xFF95E1D3),*/
  197. ])),
  198. child: Row(
  199. mainAxisAlignment: MainAxisAlignment.center,
  200. children: [
  201. Flexible(
  202. child: Text('Return Date Extension\t\t',
  203. textAlign: TextAlign.center,
  204. style: TextStyle(
  205. color: Colors.white,
  206. fontSize: 17,
  207. fontWeight: FontWeight.w500))),
  208. Image.asset('assets/images/extend_tanggal.png',
  209. width: 30,
  210. height: 30,
  211. )
  212. ],
  213. )),
  214. onTap: () {}
  215. ),
  216. /*Container(
  217. child: Card(
  218. elevation: 10,
  219. child: Container(
  220. decoration: BoxDecoration(
  221. color: Color(0XFFFAF7EE),
  222. borderRadius: BorderRadius.circular(10)),
  223. child: Column(
  224. children: [
  225. Container(
  226. margin: EdgeInsets.only(
  227. left: 10, right: 10, top: 10, bottom: 10),
  228. child: Row(
  229. children: [
  230. Expanded(
  231. flex: 3,
  232. child: Text(
  233. 'Kategori\t:\t',
  234. style: GoogleFonts.inconsolata(
  235. fontSize: 17),
  236. )),
  237. Expanded(
  238. flex: 7,
  239. child: Container(
  240. decoration: BoxDecoration(
  241. color:
  242. CupertinoColors.systemGrey2,
  243. borderRadius:
  244. BorderRadius.circular(5)),
  245. child: DropdownButton(
  246. value: this.selectedCategory,
  247. isExpanded: true,
  248. underline: SizedBox(),
  249. hint: Text(
  250. '\t\t\tPilih Kategori',
  251. style: TextStyle(
  252. color: Colors.black54),
  253. ),
  254. onChanged: (value) {
  255. print(value);
  256. setState(() {
  257. selectedCategory = value!;
  258. });
  259. },
  260. items: reimburseCategory
  261. .map(
  262. (e) => DropdownMenuItem(
  263. value: e,
  264. child:
  265. Text("\t\t\t" + e)),
  266. )
  267. .toList(),
  268. ),
  269. )),
  270. ],
  271. ),
  272. ),
  273. Container(
  274. margin: EdgeInsets.only(
  275. left: 10, right: 10, top: 10, bottom: 10),
  276. child: Column(
  277. children: [
  278. Row(
  279. children: [
  280. Expanded(
  281. flex: 3,
  282. child: Text(
  283. 'Tanggal\t:\t',
  284. style: GoogleFonts.inconsolata(
  285. fontSize: 17),
  286. )),
  287. Expanded(
  288. flex: 7,
  289. child: Container(
  290. decoration: BoxDecoration(
  291. color: CupertinoColors
  292. .systemGrey2,
  293. borderRadius:
  294. BorderRadius.circular(
  295. 5)),
  296. child: Column(
  297. children: [
  298. DropdownButton(
  299. value: this.selectedDate,
  300. isExpanded: true,
  301. underline: SizedBox(),
  302. hint: Text(
  303. '\t\t\tPilih Tanggal',
  304. style: TextStyle(
  305. color:
  306. Colors.black54),
  307. ),
  308. onChanged: (value) {
  309. print(value);
  310. setState(() {
  311. selectedDate = value!;
  312. });
  313. },
  314. items: reimburseCategory
  315. .map(
  316. (e) =>
  317. DropdownMenuItem(
  318. value: e,
  319. child: Text(
  320. "\t\t\t" +
  321. e)),
  322. )
  323. .toList(),
  324. ),
  325. ],
  326. ),
  327. )),
  328. ],
  329. ),
  330. ],
  331. ),
  332. ),
  333. Container(
  334. margin: EdgeInsets.only(
  335. left: 10, right: 10, top: 10, bottom: 10),
  336. child: Row(
  337. children: [
  338. Expanded(
  339. flex: 3,
  340. child: Text(
  341. 'Total Harga\t:\t',
  342. style: GoogleFonts.inconsolata(
  343. fontSize: 17),
  344. )),
  345. Expanded(
  346. flex: 7,
  347. child: Container(
  348. decoration: BoxDecoration(
  349. color: Colors.white,
  350. borderRadius:
  351. BorderRadius.circular(5)),
  352. child: Padding(
  353. padding: EdgeInsets.only(
  354. left: 10,
  355. right: 10,
  356. top: 5,
  357. bottom: 5),
  358. child: TextFormField(
  359. keyboardType:
  360. TextInputType.number,
  361. maxLines: 1,
  362. textInputAction:
  363. TextInputAction.next,
  364. decoration: InputDecoration(
  365. border:
  366. InputBorder.none,
  367. hintText:
  368. "Masukkan tanpa tanda baca (.) atau (,)")),
  369. ))),
  370. ],
  371. ),
  372. ),
  373. Container(
  374. margin: EdgeInsets.only(
  375. left: 10, right: 10, top: 10, bottom: 10),
  376. child: Row(
  377. children: [
  378. Expanded(
  379. flex: 3,
  380. child: Text(
  381. 'Deskripsi\t:\t',
  382. style: GoogleFonts.inconsolata(
  383. fontSize: 17),
  384. )),
  385. Expanded(
  386. flex: 7,
  387. child: Container(
  388. decoration: BoxDecoration(
  389. color: Colors.white,
  390. borderRadius:
  391. BorderRadius.circular(5)),
  392. child: Padding(
  393. padding: EdgeInsets.only(
  394. left: 10,
  395. right: 10,
  396. top: 5,
  397. bottom: 5),
  398. child: TextFormField(
  399. keyboardType:
  400. TextInputType.multiline,
  401. maxLines: null,
  402. textInputAction:
  403. TextInputAction.done,
  404. decoration: InputDecoration(
  405. border:
  406. InputBorder.none,
  407. hintText: "Deskripsi")),
  408. ))),
  409. ],
  410. ),
  411. ),
  412. Container(
  413. margin: EdgeInsets.only(
  414. left: 10, right: 10, top: 10, bottom: 10),
  415. child: Column(
  416. children: [
  417. Row(
  418. children: [
  419. Expanded(
  420. flex: 3,
  421. child: Text(
  422. 'Pembayaran\t:',
  423. style: GoogleFonts.inconsolata(
  424. fontSize: 17),
  425. )),
  426. Expanded(
  427. flex: 7,
  428. child: Container(
  429. child: Column(
  430. children: [
  431. Row(
  432. children: [
  433. Radio(
  434. value: 1,
  435. groupValue: _value,
  436. onChanged: (value) {
  437. setState(() {
  438. _value = value!;
  439. });
  440. },
  441. ),
  442. Flexible(
  443. child: Text(
  444. "Karyawan (Perlu Reimburse)",
  445. style:
  446. TextStyle(
  447. color: Colors
  448. .black54,
  449. ))),
  450. ],
  451. ),
  452. Row(
  453. children: [
  454. Radio(
  455. value: 2,
  456. groupValue: _value,
  457. onChanged: (value) {
  458. setState(() {
  459. _value = value!;
  460. });
  461. },
  462. ),
  463. Flexible(
  464. child: Text(
  465. "Perusahaan",
  466. style: TextStyle(
  467. color: Colors
  468. .black54)))
  469. ],
  470. ),
  471. ],
  472. ),
  473. )),
  474. ],
  475. ),
  476. ],
  477. ),
  478. ),
  479. Container(
  480. margin: EdgeInsets.only(
  481. left: 10, right: 10, top: 10, bottom: 10),
  482. child: Column(
  483. children: [
  484. Row(
  485. children: [
  486. Expanded(
  487. flex: 3,
  488. child: Text(
  489. 'Lampiran\t:\t',
  490. style: GoogleFonts.inconsolata(
  491. fontSize: 17),
  492. ),
  493. ),
  494. Expanded(
  495. flex: 7,
  496. child: Container(
  497. child: ElevatedButton(
  498. onPressed: () {},
  499. child: Container(
  500. width: double.infinity,
  501. child: Text("Pilih File"),
  502. ),
  503. ),
  504. ),
  505. )
  506. ],
  507. ),
  508. Row(
  509. children: [
  510. Expanded(
  511. flex: 3,
  512. child: Text(
  513. '',
  514. style: GoogleFonts.inconsolata(
  515. fontSize: 17),
  516. ),
  517. ),
  518. Expanded(
  519. flex: 7,
  520. child: Visibility(
  521. visible: true,
  522. child: Container(
  523. alignment:
  524. Alignment.centerLeft,
  525. margin: EdgeInsets.only(
  526. left: 15,
  527. right: 15,
  528. bottom: 10),
  529. child: Flexible(
  530. child: Text(
  531. "Selected File",
  532. style: TextStyle(
  533. color:
  534. Colors.black54),
  535. ),
  536. ),
  537. )),
  538. )
  539. ],
  540. ),
  541. InkWell(
  542. child: Container(
  543. padding: EdgeInsets.fromLTRB(
  544. 10, 10, 10, 10),
  545. width: double.infinity,
  546. decoration: BoxDecoration(
  547. borderRadius:
  548. BorderRadius.circular(5),
  549. gradient: LinearGradient(colors: [
  550. Color(0xFFFF9945),
  551. Color(0xFFFc6076)
  552. ])),
  553. child: Text('Ajukan',
  554. textAlign: TextAlign.center,
  555. style: TextStyle(
  556. color: Colors.white,
  557. fontSize: 17,
  558. fontWeight: FontWeight.w500)),
  559. ),
  560. onTap: () {},
  561. )
  562. ],
  563. ),
  564. ),
  565. ],
  566. ),
  567. ),
  568. ),
  569. ),*/
  570. ],
  571. ),
  572. ),
  573. ),
  574. ],
  575. ),
  576. ],
  577. )),
  578. );
  579. }
  580. }
  581. List<String> reimburseCategory = [
  582. "Paid Time Off",
  583. "Sick Time Off",
  584. "Compensatory Days",
  585. "Unpaid"
  586. ];