diff --git a/app_petty_cash/lib/app/constant.dart b/app_petty_cash/lib/app/constant.dart index b03f0d4..0486c28 100644 --- a/app_petty_cash/lib/app/constant.dart +++ b/app_petty_cash/lib/app/constant.dart @@ -15,6 +15,9 @@ class Constant { // static String baseUrl = "https://devregonline.pramita.co.id/one-api/xdoc/"; // tester devbandungraya + static String baseUrlDevoneReport = + "devone.aplikasi.web.id"; + static String baseUrlDevone = "http://devone.aplikasi.web.id/one-api-pettycash/pettycash/"; diff --git a/app_petty_cash/lib/model/auth_model.dart b/app_petty_cash/lib/model/auth_model.dart index 739ebbf..fba305f 100644 --- a/app_petty_cash/lib/model/auth_model.dart +++ b/app_petty_cash/lib/model/auth_model.dart @@ -25,8 +25,8 @@ class AuthDoctorModel { late String M_UserID; late String M_UserUsername; late String M_UserEmail; - // late String M_UserM_DoctorCode; - // late String M_UserM_DoctorID; + late String M_CompanyID; + late String M_CompanyName; // late String M_UserM_StaffID; // late String M_UserM_MouID; late String ip; @@ -39,8 +39,8 @@ class AuthDoctorModel { required this.M_UserID, required this.M_UserUsername, required this.M_UserEmail, - // required this.M_UserM_DoctorCode, - // required this.M_UserM_DoctorID, + required this.M_CompanyID, + required this.M_CompanyName, // this.M_UserM_StaffID = "", // this.M_UserM_MouID = "", this.ip = "", @@ -51,8 +51,8 @@ class AuthDoctorModel { M_UserID = json['M_UserID'].toString(); M_UserUsername = json['M_UserUsername'].toString(); M_UserEmail = json['M_UserEmail'].toString(); - // M_UserM_DoctorCode = json['M_UserM_DoctorCode'].toString(); - // M_UserM_DoctorID = json['M_UserM_DoctorID'].toString(); + M_CompanyID = json['M_CompanyID'].toString(); + M_CompanyName = json['M_CompanyName'].toString(); // M_UserM_StaffID = json['M_UserM_StaffID'].toString(); // M_UserM_MouID = json['M_UserM_MouID'].toString(); ip = json['ip'].toString(); @@ -64,8 +64,8 @@ class AuthDoctorModel { data['M_UserID'] = M_UserID; data['M_UserUsername'] = M_UserUsername; data['M_UserEmail'] = M_UserEmail; - // data['M_UserM_DoctorCode'] = M_UserM_DoctorCode; - // data['M_UserM_DoctorID'] = M_UserM_DoctorID; + data['M_CompanyID'] = M_CompanyID; + data['M_CompanyName'] = M_CompanyName; // data['M_UserM_StaffID'] = M_UserM_StaffID; // data['M_UserM_MouID'] = M_UserM_MouID; data['ip'] = ip; diff --git a/app_petty_cash/lib/repository/transaksi_repository.dart b/app_petty_cash/lib/repository/transaksi_repository.dart index af1121c..9f90aa6 100644 --- a/app_petty_cash/lib/repository/transaksi_repository.dart +++ b/app_petty_cash/lib/repository/transaksi_repository.dart @@ -58,12 +58,12 @@ class TransaksiRepository extends BaseRepository { String sender, String url) async { String paramPostInUrl = ""; - if (tipe == "KREDIT") { + if (tipe == "DEBIT") { sender = ""; paramPostInUrl = "?tanggal=$tanggal&tipe=$tipe&kategoriid=$kategoriid&jumlah=$jumlah&catatan=$catatan&url=$url&userid=$userid&sender=$sender"; } else { - if (tipe == "DEBIT") { + if (tipe == "KREDIT") { kategoriid = "0"; paramPostInUrl = "?tanggal=$tanggal&tipe=$tipe&kategoriid=$kategoriid&jumlah=$jumlah&catatan=$catatan&url=$url&userid=$userid&sender=$sender"; diff --git a/app_petty_cash/lib/screen/change_company/change_company.dart b/app_petty_cash/lib/screen/change_company/change_company.dart new file mode 100644 index 0000000..98ece6a --- /dev/null +++ b/app_petty_cash/lib/screen/change_company/change_company.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +import '../../app/constant.dart'; +import '../../widget/custom_drawer.dart'; + +class ChangeCompanyScreen extends StatelessWidget { + const ChangeCompanyScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.only( + top: Constant.getActualYPhone(context: context, y: 30), + ), + child: Scaffold( + appBar: AppBar( + // centerTitle: true, + title: Text( + 'Change Company', + style: TextStyle(color: Constant.textWhite), + ), + backgroundColor: Constant.pcBtnBackgroundColor, + iconTheme: IconThemeData( + color: Constant.textWhite, + ), + ), + drawer: CustomDrawer(), + ), + ); + } +} \ No newline at end of file diff --git a/app_petty_cash/lib/screen/login/login_screen.dart b/app_petty_cash/lib/screen/login/login_screen.dart index 3feb10c..7c8f448 100644 --- a/app_petty_cash/lib/screen/login/login_screen.dart +++ b/app_petty_cash/lib/screen/login/login_screen.dart @@ -29,7 +29,8 @@ class LoginScreen extends HookConsumerWidget { final authModel = AuthModel( token: xmodel["token"], model: AuthDoctorModel( - // M_UserM_DoctorID: xmodel["model"]["M_UserM_DoctorID"], + M_CompanyID: xmodel["model"]["M_CompanyID"], + M_CompanyName: xmodel["model"]["M_CompanyName"], M_UserEmail: xmodel["model"]["M_UserEmail"], M_UserUsername: xmodel["model"]["M_UserUsername"], // M_UserM_DoctorCode: xmodel["model"]["M_UserM_DoctorCode"], diff --git a/app_petty_cash/lib/screen/report/report_screen.dart b/app_petty_cash/lib/screen/report/report_screen.dart index 75318aa..d380ed6 100644 --- a/app_petty_cash/lib/screen/report/report_screen.dart +++ b/app_petty_cash/lib/screen/report/report_screen.dart @@ -254,150 +254,161 @@ class ReportScreen extends HookConsumerWidget { ), ), ), - bottomNavigationBar: Padding( - padding: EdgeInsets.only( - // right: Constant.getActualXPhone(context: context, x: 27), - // left: Constant.getActualXPhone(context: context, x: 27), - // bottom: Constant.getActualYPhone(context: context, y: 32), - top: Constant.getActualYPhone(context: context, y: 10), - ), - child: BottomAppBar( - child: Container( - height: 150, - child: Padding( - padding: EdgeInsets.only( - // right: Constant.getActualXPhone(context: context, x: 27), - // left: Constant.getActualXPhone(context: context, x: 27), - // bottom: Constant.getActualYPhone(context: context, y: 32), - top: Constant.getActualYPhone(context: context, y: 24), - ), - child: Column( - children: [ - // Excel - Container( - width: Constant.getActualXPhone(context: context, x: 336), - height: Constant.getActualYPhone(context: context, y: 42), - child: ElevatedButton( - style: ButtonStyle( - backgroundColor: MaterialStateColor.resolveWith( - (states) => Colors.white), - // side: MaterialStateBorderSide.resolveWith( - // (states) => BorderSide(color: Colors.green), - // ), + bottomNavigationBar: Container( + // height: 150, + child: Padding( + padding: EdgeInsets.only( + // right: Constant.getActualXPhone(context: context, x: 27), + // left: Constant.getActualXPhone(context: context, x: 27), + // bottom: Constant.getActualYPhone(context: context, y: 32), + top: Constant.getActualYPhone(context: context, y: 24), + ), + child: Column( + children: [ + // Excel + Container( + width: Constant.getActualXPhone(context: context, x: 336), + height: Constant.getActualYPhone(context: context, y: 42), + child: ElevatedButton( + style: ButtonStyle( + backgroundColor: MaterialStateColor.resolveWith( + (states) => Colors.white), + // side: MaterialStateBorderSide.resolveWith( + // (states) => BorderSide(color: Colors.green), + // ), - // backgroundColor: MaterialStateColor.resolveWith( - // (st) => Constant.pcBtnBackgroundColor), - shape: - MaterialStateProperty.all( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), - side: BorderSide( - color: Colors.green, - ), - ), + // backgroundColor: MaterialStateColor.resolveWith( + // (st) => Constant.pcBtnBackgroundColor), + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + side: BorderSide( + color: Colors.green, ), - shadowColor: - MaterialStateProperty.all(Color(0xffff48423d)), - elevation: MaterialStateProperty.all(4.0), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: Constant.getActualXPhone( - context: context, x: 16), - height: Constant.getActualYPhone( - context: context, y: 16), - // decoration: BoxDecoration(color: Colors.grey), - child: Image.asset( - "images/logo_excel.png", - fit: BoxFit.fill, - // scale: 1, - ), - ), - SizedBox( - height: Constant.getActualXPhone( - context: context, x: 8), - ), - Text( - 'Download Report (xls) ', - style: Constant.body1(context: context).copyWith( - fontWeight: FontWeight.w600, - color: Colors.green, - ), - ), - ], - ), - onPressed: () {}, ), + shadowColor: + MaterialStateProperty.all(Color(0xffff48423d)), + elevation: MaterialStateProperty.all(4.0), ), - - SizedBox( - height: Constant.getActualYPhone(context: context, y: 20), - ), - - // PDF - Container( - width: Constant.getActualXPhone(context: context, x: 336), - height: Constant.getActualYPhone(context: context, y: 42), - child: ElevatedButton( - style: ButtonStyle( - backgroundColor: MaterialStateColor.resolveWith( - (st) => Constant.pcBtnBackgroundColor), - shape: - MaterialStateProperty.all( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), - side: BorderSide( - color: Constant.pcBtnBackgroundColor, - ), - ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: + Constant.getActualXPhone(context: context, x: 16), + height: + Constant.getActualYPhone(context: context, y: 16), + // decoration: BoxDecoration(color: Colors.grey), + child: Image.asset( + "images/logo_excel.png", + fit: BoxFit.fill, + // scale: 1, ), - shadowColor: - MaterialStateProperty.all(Color(0xffff48423d)), - elevation: MaterialStateProperty.all(4.0), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Container( - width: Constant.getActualXPhone( - context: context, x: 16), - height: Constant.getActualYPhone( - context: context, y: 16), - // decoration: BoxDecoration(color: Colors.grey), - child: Image.asset( - "images/logo_pdf.png", - fit: BoxFit.fill, - // scale: 1, - ), - ), - SizedBox( - height: Constant.getActualXPhone( - context: context, x: 8), - ), - Text( - 'Download Report (PDF)', - style: Constant.body1(context: context).copyWith( - fontWeight: FontWeight.w600, - color: Constant.white), - ), - ], + SizedBox( + height: + Constant.getActualXPhone(context: context, x: 8), ), - onPressed: () async { - String url = - "https://pub.dev/packages?q=url+launcher"; - if (!await launchUrl(Uri.parse(url))) { - // throw Exception('Could not launch $url'); - SanckbarWidget(context, 'Could not launch $url', - snackbarType.error); - } - }, - ), + Text( + 'Download Report (xls) ', + style: Constant.body1(context: context).copyWith( + fontWeight: FontWeight.w600, + color: Colors.green, + ), + ), + ], ), - ], + onPressed: () async { + // Awal + DateTime parsedDateAwal = DateFormat('dd-MM-yyyy').parse( + ctrlTglAwal.value.text.toString(), + ); + String formattedDateAwal = + DateFormat('yyyy-MM-dd').format(parsedDateAwal); + + // Akhir + DateTime parsedDateAkhir = DateFormat('dd-MM-yyyy').parse( + ctrlTglAwal.value.text.toString(), + ); + String formattedDateAkhir = + DateFormat('yyyy-MM-dd').format(parsedDateAkhir); + + String url = + "https://${Constant.baseUrlDevoneReport}/birt/run?__report=report/one/pettycash/rpt_r_pt_001.rptdesign&__format=pdf&PStartDate=$formattedDateAwal&PEndDate=$formattedDateAkhir&PCompanyID=0&username=adminsas%20"; + if (!await launchUrl(Uri.parse(url))) { + // throw Exception('Could not launch $url'); + SanckbarWidget(context, 'Could not launch $url', + snackbarType.error); + } + // https://devone.aplikasi.web.id/birt/run?__report=report/one/pettycash/rpt_r_pt_001.rptdesign&__format=pdf&PStartDate=2023-11-01&PEndDate=2023-12-30&PCompanyID=0&username=adminsas%20&tm=1701327096267 + }, + ), ), - ), + + SizedBox( + height: Constant.getActualYPhone(context: context, y: 20), + ), + + // PDF + Container( + width: Constant.getActualXPhone(context: context, x: 336), + height: Constant.getActualYPhone(context: context, y: 42), + child: ElevatedButton( + style: ButtonStyle( + backgroundColor: MaterialStateColor.resolveWith( + (st) => Constant.pcBtnBackgroundColor), + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + side: BorderSide( + color: Constant.pcBtnBackgroundColor, + ), + ), + ), + shadowColor: + MaterialStateProperty.all(Color(0xffff48423d)), + elevation: MaterialStateProperty.all(4.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: + Constant.getActualXPhone(context: context, x: 16), + height: + Constant.getActualYPhone(context: context, y: 16), + // decoration: BoxDecoration(color: Colors.grey), + child: Image.asset( + "images/logo_pdf.png", + fit: BoxFit.fill, + // scale: 1, + ), + ), + SizedBox( + height: + Constant.getActualXPhone(context: context, x: 8), + ), + Text( + 'Download Report (PDF)', + style: Constant.body1(context: context).copyWith( + fontWeight: FontWeight.w600, + color: Constant.white), + ), + ], + ), + onPressed: () async { + // String url = + // "https://pub.dev/packages?q=url+launcher"; + // if (!await launchUrl(Uri.parse(url))) { + // // throw Exception('Could not launch $url'); + // SanckbarWidget(context, 'Could not launch $url', + // snackbarType.error); + // } + }, + ), + ), + ], ), ), ), diff --git a/app_petty_cash/lib/screen/transaksi/transaksi_screen.dart b/app_petty_cash/lib/screen/transaksi/transaksi_screen.dart index 3dfedab..53e1cb6 100644 --- a/app_petty_cash/lib/screen/transaksi/transaksi_screen.dart +++ b/app_petty_cash/lib/screen/transaksi/transaksi_screen.dart @@ -43,6 +43,7 @@ class TransaksiScreen extends HookConsumerWidget { final ctrlJumlah = useTextEditingController(text: ""); final ctrlCatatan = useTextEditingController(text: ""); final ctrlNamaPengirim = useTextEditingController(text: ""); + final ctrlCompanyName = useTextEditingController(text: ""); String formattedDate = DateFormat('dd-MM-yyyy').format(DateTime.now()); @@ -202,6 +203,46 @@ class TransaksiScreen extends HookConsumerWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + // Company Name + Text( + 'Company Name', + style: Constant.body1(context: context).copyWith( + fontWeight: FontWeight.w600, color: Constant.textBlack), + ), + SizedBox( + height: Constant.getActualYPhone(context: context, y: 10), + ), + TextField( + controller: ctrlCompanyName, + readOnly: true, + decoration: InputDecoration( + hintStyle: + Constant.body2_400(context: context).copyWith( + color: Constant.textGreyv2, + ), + labelStyle: + Constant.body2_400(context: context).copyWith( + color: Constant.textGreyv2, + ), + border: OutlineInputBorder( + borderSide: BorderSide( + color: Colors.orange, + width: 1, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: Constant.textGreyv2, + width: 1, + ), + ), + labelText: "Company Name", + hintText: 'Company Name', + ), + ), + SizedBox( + height: Constant.getActualYPhone(context: context, y: 20), + ), Text( 'Tanggal Transaksi', style: Constant.body1(context: context).copyWith( @@ -714,12 +755,12 @@ class TransaksiScreen extends HookConsumerWidget { ), onPressed: () { if (selectedListTypeData.value.typeid.toString() == - "KREDIT") { + "DEBIT") { ctrlNamaPengirim.text = ""; // validasi form } else { if (selectedListTypeData.value.typeid.toString() == - "DEBIT") { + "KREDIT") { selectedListCategory.value.categoryid = "0"; // validasi form }