Commit 257cb66a authored by Dio Maulana's avatar Dio Maulana

fixed design

parent 77a3594d
...@@ -8,6 +8,7 @@ import 'package:excelso_attendance/models/branch.dart'; ...@@ -8,6 +8,7 @@ import 'package:excelso_attendance/models/branch.dart';
import 'package:excelso_attendance/models/profile.dart'; import 'package:excelso_attendance/models/profile.dart';
import 'package:excelso_attendance/models/shift.dart'; import 'package:excelso_attendance/models/shift.dart';
import 'package:excelso_attendance/resource/strings.dart'; import 'package:excelso_attendance/resource/strings.dart';
import 'package:geolocator/geolocator.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
class Api { class Api {
...@@ -135,14 +136,14 @@ class Api { ...@@ -135,14 +136,14 @@ class Api {
static Future<ApiResponse> shiftIn( static Future<ApiResponse> shiftIn(
String branchId, String nik, String shiftId, String photoBase64) async { String branchId, String nik, String shiftId, String photoBase64) async {
String apiUrl = "$baseUrl${endPoint}clock_in"; String apiUrl = "$baseUrl${endPoint}clock_in";
Position position = await Geolocator.getCurrentPosition();
try { try {
Map<String, dynamic> data = { Map<String, dynamic> data = {
"branch_id": branchId, "branch_id": branchId,
"nik": nik, "nik": nik,
"shift_id": shiftId, "shift_id": shiftId,
"user_lat": getLatitude(), "user_lat": position.latitude,
"user_long": getLongitude(), "user_long": position.longitude,
"photo_base64": "data:image/jpeg;base64,$photoBase64", "photo_base64": "data:image/jpeg;base64,$photoBase64",
}; };
String bodies = jsonEncode(data); String bodies = jsonEncode(data);
...@@ -183,12 +184,13 @@ class Api { ...@@ -183,12 +184,13 @@ class Api {
String branchId, String nik, String photoBase64) async { String branchId, String nik, String photoBase64) async {
String apiUrl = "$baseUrl${endPoint}clock_out"; String apiUrl = "$baseUrl${endPoint}clock_out";
Position position = await Geolocator.getCurrentPosition();
try { try {
Map<String, dynamic> data = { Map<String, dynamic> data = {
"branch_id": branchId, "branch_id": branchId,
"nik": nik, "nik": nik,
"user_lat": getLatitude(), "user_lat": position.latitude,
"user_long": getLongitude(), "user_long": position.longitude,
"photo_base64": photoBase64, "photo_base64": photoBase64,
}; };
String bodies = jsonEncode(data); String bodies = jsonEncode(data);
......
import 'package:excelso_attendance/models/absent.dart'; import 'package:excelso_attendance/models/absent.dart';
import 'package:excelso_attendance/models/branch.dart'; import 'package:excelso_attendance/models/branch.dart';
import 'package:excelso_attendance/models/profile.dart';
import 'package:excelso_attendance/models/shift.dart'; import 'package:excelso_attendance/models/shift.dart';
class AbsentCameraArguments { class AbsentCameraArguments {
final bool isIn; final bool isIn;
final BranchModel branchModel; final BranchModel branchModel;
final ShiftModel? shiftModel; final ShiftModel? shiftModel;
final ProfileModel profile;
final String nik; final String nik;
AbsentCameraArguments({ AbsentCameraArguments({
required this.isIn, required this.isIn,
required this.branchModel, required this.branchModel,
required this.nik, required this.nik,
required this.profile,
this.shiftModel, this.shiftModel,
}); });
} }
...@@ -28,10 +31,14 @@ class HomeArguments { ...@@ -28,10 +31,14 @@ class HomeArguments {
class AbsentSuccessArguments { class AbsentSuccessArguments {
final AbsentSuccessModel absentSuccess; final AbsentSuccessModel absentSuccess;
final ProfileModel profil;
final String nik;
final bool isIn; final bool isIn;
AbsentSuccessArguments({ AbsentSuccessArguments({
required this.absentSuccess, required this.absentSuccess,
required this.profil,
required this.nik,
required this.isIn, required this.isIn,
}); });
} }
This diff is collapsed.
import 'package:excelso_attendance/helper/component/button.dart'; import 'package:excelso_attendance/helper/component/button.dart';
import 'package:excelso_attendance/helper/global_function/date_time.dart'; import 'package:excelso_attendance/helper/global_function/date_time.dart';
import 'package:excelso_attendance/models/absent.dart'; import 'package:excelso_attendance/models/absent.dart';
import 'package:excelso_attendance/models/profile.dart';
import 'package:excelso_attendance/resource/assets.dart'; import 'package:excelso_attendance/resource/assets.dart';
import 'package:excelso_attendance/resource/colors.dart'; import 'package:excelso_attendance/resource/colors.dart';
import 'package:excelso_attendance/resource/font.dart'; import 'package:excelso_attendance/resource/font.dart';
...@@ -11,9 +12,15 @@ import 'package:flutter/material.dart'; ...@@ -11,9 +12,15 @@ import 'package:flutter/material.dart';
class AbsentSuccessView extends StatelessWidget { class AbsentSuccessView extends StatelessWidget {
const AbsentSuccessView( const AbsentSuccessView(
{super.key, required this.absentSuccess, required this.isIn}); {super.key,
required this.absentSuccess,
required this.isIn,
required this.nik,
required this.profil});
final AbsentSuccessModel absentSuccess; final AbsentSuccessModel absentSuccess;
final ProfileModel profil;
final String nik;
final bool isIn; final bool isIn;
@override @override
...@@ -72,7 +79,7 @@ class AbsentSuccessView extends StatelessWidget { ...@@ -72,7 +79,7 @@ class AbsentSuccessView extends StatelessWidget {
), ),
), ),
const SizedBox( const SizedBox(
height: 60, height: 20,
), ),
Container( Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
...@@ -103,7 +110,7 @@ Sukses''', ...@@ -103,7 +110,7 @@ Sukses''',
horizontal: AppPadding.p20, horizontal: AppPadding.p20,
), ),
child: Image( child: Image(
height: 232, height: MediaQuery.of(context).size.height * 0.25,
width: double.infinity, width: double.infinity,
image: AssetImage( image: AssetImage(
Assets.absentSuccess, Assets.absentSuccess,
...@@ -140,23 +147,45 @@ Sukses''', ...@@ -140,23 +147,45 @@ Sukses''',
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text(
absentSuccess.branchCode,
style: getSemiBoldStyle(
color: ColorManager.fontBlack,
fontSize: FontSize.s20,
fontFamily: FontConstants.montserrat,
),
),
SizedBox(
height: AppMargin.m10,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Expanded(
absentSuccess.branchCode, child: Text(
style: getSemiBoldStyle( profil.name,
color: ColorManager.fontBlack, style: getSemiBoldStyle(
fontSize: FontSize.s20, color: ColorManager.fontBlack,
fontFamily: FontConstants.montserrat, fontSize: FontSize.s20,
fontFamily: FontConstants.montserrat,
),
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.start,
), ),
), ),
Text( Expanded(
"${absentSuccess.time} ${absentSuccess.timeZone}", child: Text(
style: getSemiBoldStyle( nik,
color: ColorManager.fontBlack, style: getSemiBoldStyle(
fontSize: FontSize.s20, color: ColorManager.fontBlack,
fontFamily: FontConstants.montserrat, fontSize: FontSize.s20,
fontFamily: FontConstants.montserrat,
),
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.end,
), ),
) )
], ],
...@@ -165,9 +194,49 @@ Sukses''', ...@@ -165,9 +194,49 @@ Sukses''',
margin: EdgeInsets.only( margin: EdgeInsets.only(
top: AppMargin.m10, top: AppMargin.m10,
), ),
child: Row( padding: EdgeInsets.symmetric(
horizontal: AppPadding.p20,
vertical: AppPadding.p12,
),
width: double.infinity,
decoration: BoxDecoration(
color: const Color(0xffE7E7E7).withOpacity(0.5),
border: Border.all(
width: 0.2,
color: ColorManager.grey.withOpacity(0.8),
),
borderRadius: BorderRadius.circular(9),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
const Spacer(), Text(
absentSuccess.branchName,
style: getSemiBoldStyle(
color: ColorManager.fontBlack,
fontSize: FontSize.s16,
),
textAlign: TextAlign.center,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
const SizedBox(
height: 4,
),
Text(
"${absentSuccess.time} ${absentSuccess.timeZone}",
style: getMediumStyle(
color: ColorManager.fontBlack,
fontSize: FontSize.s20,
),
textAlign: TextAlign.center,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
const SizedBox(
height: 4,
),
Text( Text(
DateFormatCustom.getDateLocal( DateFormatCustom.getDateLocal(
fromApi: true, fromApi: true,
...@@ -175,32 +244,68 @@ Sukses''', ...@@ -175,32 +244,68 @@ Sukses''',
), ),
style: getRegularStyle( style: getRegularStyle(
color: ColorManager.fontBlack, color: ColorManager.fontBlack,
fontSize: 16, fontSize: FontSize.s16,
fontFamily: FontConstants.montserrat,
), ),
) textAlign: TextAlign.center,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
], ],
), ),
// child: Row(
// children: [
// const Spacer(),
// Text(
// DateFormatCustom.getDateLocal(
// fromApi: true,
// apiDate: absentSuccess.date,
// ),
// style: getRegularStyle(
// color: ColorManager.fontBlack,
// fontSize: 16,
// fontFamily: FontConstants.montserrat,
// ),
// )
// ],
// ),
), ),
Container( // Container(
margin: EdgeInsets.only( // margin: EdgeInsets.only(
top: AppMargin.m16, // top: AppMargin.m16,
left: AppMargin.m16, // left: AppMargin.m16,
right: AppMargin.m16, // right: AppMargin.m16,
), // ),
child: CustomButton( // child: CustomButton(
text: "Kembali ke Beranda", // text: "Kembali ke Beranda",
onTap: () { // onTap: () {
Navigator.pushNamedAndRemoveUntil( // Navigator.pushNamedAndRemoveUntil(
context, // context,
Routes.onBoarding, // Routes.onBoarding,
(route) => false, // (route) => false,
); // );
}, // },
), // ),
) // )
], ],
), ),
),
SizedBox(
height: AppMargin.m16,
),
Container(
margin: EdgeInsets.symmetric(
horizontal: AppMargin.m20,
),
child: CustomButton(
text: "Kembali ke Beranda",
onTap: () {
Navigator.pushNamedAndRemoveUntil(
context,
Routes.onBoarding,
(route) => false,
);
},
),
) )
], ],
), ),
......
This diff is collapsed.
...@@ -5,6 +5,7 @@ class Assets { ...@@ -5,6 +5,7 @@ class Assets {
// images // images
static String excelso = "${rootImage}excelso.png"; static String excelso = "${rootImage}excelso.png";
static String excelsoLogo = "${rootImage}excelso_logo.png"; static String excelsoLogo = "${rootImage}excelso_logo.png";
static String excelsoLogoGreen = "${rootImage}excelso_logo_green.png";
static String onboarding = "${rootImage}onboarding.png"; static String onboarding = "${rootImage}onboarding.png";
static String frameOverlay = "${rootImage}frame_overlay.png"; static String frameOverlay = "${rootImage}frame_overlay.png";
static String frameOverlay2 = "${rootImage}frame_overlay2.png"; static String frameOverlay2 = "${rootImage}frame_overlay2.png";
...@@ -12,4 +13,5 @@ class Assets { ...@@ -12,4 +13,5 @@ class Assets {
static String absentSuccess = "${rootImage}absent_success.png"; static String absentSuccess = "${rootImage}absent_success.png";
// icons // icons
static String arrowUpDown = "${rootIcon}arrow_up_down.png";
} }
...@@ -42,6 +42,7 @@ class RouteGenerator { ...@@ -42,6 +42,7 @@ class RouteGenerator {
isIn: args.isIn, isIn: args.isIn,
branchModel: args.branchModel, branchModel: args.branchModel,
shiftModel: args.shiftModel, shiftModel: args.shiftModel,
profile: args.profile,
nik: args.nik, nik: args.nik,
), ),
nameRoute: Routes.absentCamera, nameRoute: Routes.absentCamera,
...@@ -53,6 +54,8 @@ class RouteGenerator { ...@@ -53,6 +54,8 @@ class RouteGenerator {
return pageRouteCustom( return pageRouteCustom(
AbsentSuccessView( AbsentSuccessView(
absentSuccess: args.absentSuccess, absentSuccess: args.absentSuccess,
profil: args.profil,
nik: args.nik,
isIn: args.isIn, isIn: args.isIn,
), ),
nameRoute: Routes.absentSuccess, nameRoute: Routes.absentSuccess,
...@@ -94,6 +97,7 @@ class RouteGenerator { ...@@ -94,6 +97,7 @@ class RouteGenerator {
isIn: args.isIn, isIn: args.isIn,
branchModel: args.branchModel, branchModel: args.branchModel,
shiftModel: args.shiftModel, shiftModel: args.shiftModel,
profile: args.profile,
nik: args.nik, nik: args.nik,
), ),
transitionDuration: Duration.zero, transitionDuration: Duration.zero,
...@@ -136,6 +140,8 @@ class RouteGenerator { ...@@ -136,6 +140,8 @@ class RouteGenerator {
return PageRouteBuilder( return PageRouteBuilder(
pageBuilder: (context, a, b) => AbsentSuccessView( pageBuilder: (context, a, b) => AbsentSuccessView(
absentSuccess: args.absentSuccess, absentSuccess: args.absentSuccess,
profil: args.profil,
nik: args.nik,
isIn: args.isIn, isIn: args.isIn,
), ),
transitionDuration: Duration.zero, transitionDuration: Duration.zero,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment