push notification of tasks

This commit is contained in:
Vaibhav 2024-09-04 17:38:57 +05:30
parent b4bf13214a
commit b29af415a4
7 changed files with 233 additions and 229 deletions

View File

@ -104,6 +104,7 @@ class _UpdateInventoryTaskScreenState extends State<UpdateInventoryTaskScreen> {
MaterialPageRoute( MaterialPageRoute(
builder: (context) => AddProductsScreen( builder: (context) => AddProductsScreen(
distributorType: tasksList.addedFor!, distributorType: tasksList.addedFor!,
inventoryId: tasksList.sId!,
tradeName: tasksList.tradeName??'', tradeName: tasksList.tradeName??'',
pdRdId: tasksList.sId!))); pdRdId: tasksList.sId!)));
} }

View File

@ -158,7 +158,6 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
} }
Widget _buildTaskList(int tabIndex) { Widget _buildTaskList(int tabIndex) {
return Consumer<DailyTaskProvider>( return Consumer<DailyTaskProvider>(
builder: (context, value, child) => value.isLoading builder: (context, value, child) => value.isLoading
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
@ -184,7 +183,9 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
Widget _buildTaskCard(Tasks tasksList) { Widget _buildTaskCard(Tasks tasksList) {
return InkWell( return InkWell(
onTap: () { onTap: _selectedTabIndex == 2
? null // Disable click when on the "COMPLETED" tab
: () {
if (tasksList.task == 'Collect KYC') { if (tasksList.task == 'Collect KYC') {
Navigator.push( Navigator.push(
context, context,
@ -203,8 +204,9 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
MaterialPageRoute( MaterialPageRoute(
builder: (context) => AddProductsScreen( builder: (context) => AddProductsScreen(
distributorType: tasksList.addedFor!, distributorType: tasksList.addedFor!,
tradeName: tasksList.tradeName?? '', tradeName: tasksList.tradeName ?? '',
pdRdId: tasksList.addedForId!, inventoryId:tasksList.sId))); pdRdId: tasksList.addedForId!,
inventoryId: tasksList.sId)));
} else if (tasksList.task == 'Update Sales Data') { } else if (tasksList.task == 'Update Sales Data') {
Navigator.push( Navigator.push(
context, context,
@ -215,7 +217,8 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => VisitDealersScreen( builder: (context) => VisitDealersScreen(
tradeName: tasksList.tradeName??'', tradeName: tasksList.tradeName ?? '',
id: tasksList.sId,
))); )));
} }
}, },
@ -233,22 +236,25 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 16, fontSize: 16,
fontFamily: 'Anek')), fontFamily: 'Anek')),
trailing: trailing: _selectedTabIndex == 2
const Icon(Icons.arrow_forward_ios, color: Colors.black87)), ? null // Remove arrow icon in "COMPLETED" tab
: const Icon(Icons.arrow_forward_ios, color: Colors.black87),
),
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (tasksList.note != null) if (tasksList.note != null) Text('Note: ${tasksList.note}'),
Text('Note: ${tasksList.note}'), if (tasksList.addedFor != null)
if(tasksList.addedFor != null)
Text('Distributor: ${tasksList.addedFor ?? ""}'), Text('Distributor: ${tasksList.addedFor ?? ""}'),
if(tasksList.tradeName != null) Text('Trade Name: ${tasksList.tradeName ?? ""}'), if (tasksList.tradeName != null)
if(tasksList.taskDueDate != null) Text('Due Date: ${DateFormat('dd/MM/yyyy').format(DateTime.parse(tasksList.taskDueDate!))}'), Text('Trade Name: ${tasksList.tradeName ?? ""}'),
if( if (tasksList.taskDueDate != null)
tasksList.taskPriority != null Text(
)Text('Priority: ${tasksList.taskPriority}'), 'Due Date: ${DateFormat('dd/MM/yyyy').format(DateTime.parse(tasksList.taskDueDate!))}'),
if (tasksList.taskPriority != null)
Text('Priority: ${tasksList.taskPriority}'),
], ],
), ),
), ),
@ -258,4 +264,3 @@ class _DailyTasksScreenState extends State<DailyTasksScreen> {
); );
} }
} }

View File

@ -43,7 +43,7 @@ class DisplaySalesScreenState extends State<DisplaySalesScreen> {
icon: Image.asset('assets/Back_attendance.png'), padding: const EdgeInsets.only(right: 20), icon: Image.asset('assets/Back_attendance.png'), padding: const EdgeInsets.only(right: 20),
), ),
], ],
title: const Text('Display Sales', title: const Text('Update Sales Data',
style: TextStyle( style: TextStyle(
fontSize: 20, fontSize: 20,
color: Colors.black, color: Colors.black,

View File

@ -1,5 +1,8 @@
import 'package:cheminova/provider/forgot_password_provider.dart'; import 'package:cheminova/provider/forgot_password_provider.dart';
import 'package:cheminova/screens/change_password_screen.dart';
import 'package:cheminova/screens/login_screen.dart'; import 'package:cheminova/screens/login_screen.dart';
import 'package:cheminova/screens/password_change_screen.dart';
import 'package:cheminova/screens/verify_code_screen.dart';
import 'package:cheminova/widgets/common_background.dart'; import 'package:cheminova/widgets/common_background.dart';
import 'package:cheminova/widgets/common_elevated_button.dart'; import 'package:cheminova/widgets/common_elevated_button.dart';
import 'package:cheminova/widgets/common_text_form_field.dart'; import 'package:cheminova/widgets/common_text_form_field.dart';

View File

@ -52,10 +52,6 @@ class _HomePageState extends State<HomePage> {
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
appBar: CommonAppBar( appBar: CommonAppBar(
title: Row(children: [ title: Row(children: [
// CircleAvatar(
// backgroundImage: AssetImage(
// 'assets/profile.png'), // Replace with actual user image
// ),
const SizedBox(width: 10), const SizedBox(width: 10),
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
const Text('Welcome', const Text('Welcome',
@ -81,160 +77,73 @@ class _HomePageState extends State<HomePage> {
body: SafeArea( body: SafeArea(
child: Padding( child: Padding(
padding: const EdgeInsets.all(16.0), padding: const EdgeInsets.all(16.0),
child: Column( child: LayoutBuilder(
crossAxisAlignment: CrossAxisAlignment.start, builder: (context, constraints) {
children: [ double screenWidth = constraints.maxWidth;
Expanded( double buttonWidth = screenWidth / 2 - 18; // Adjust button width
child: ListView(
return ListView(
children: [ children: [
_buildCustomCard( _buildCustomCard(
'Mark Attendance', 'Mark Attendance',
'Mark Attendance / On Leave', 'Mark Attendance / On Leave',
screenWidth,
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) => const MarkAttendanceScreen(),
const MarkAttendanceScreen(), ),
)); );
}, },
), ),
const SizedBox( const SizedBox(height: 5),
height: 5, _buildCustomCard(
), 'Daily Tasks',
_buildCustomCard('Daily Tasks', 'Dashboard', onTap: () { 'Dashboard',
screenWidth,
onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => const DailyTasksScreen(), builder: (context) => const DailyTasksScreen(),
));
}),
const SizedBox(
height: 5,
), ),
);
},
),
const SizedBox(height: 5),
Row( Row(
children: [ children: [
Expanded( Expanded(
child: _buildCustomCard( child: _buildCustomCard(
'Display\nSales data', 'Quickly display Sales', 'Update\nSales data',
'Quickly display Sales',
buttonWidth,
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
const DisplaySalesScreen(), const DisplaySalesScreen(),
));
}),
), ),
const SizedBox( );
width: 12, },
), ),
),
const SizedBox(width: 12),
Expanded( Expanded(
child: _buildCustomCard('Update Inventory Data', child: _buildCustomCard(
'Quickly Inventory Data', onTap: () { 'Update Inventory Data',
'Quickly Inventory Data',
buttonWidth,
onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
const UpdateInventoryTaskScreen(), const UpdateInventoryTaskScreen(),
));
}),
), ),
], );
),
const SizedBox(
height: 5,
),
Row(
children: [
Expanded(
child:
_buildCustomCard('Summary', '\n\n', onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const SummaryScreen(),
));
}),
),
const SizedBox(
width: 12,
),
Expanded(
child: _buildCustomCard(
'Product\nSales Data Visibility', '',
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const ProductSalesData(),
));
}),
),
],
),
const SizedBox(height: 5),
Row(
children: [
Expanded(
child: _buildCustomCard('Collect \nKYC Data',
'Scan and upload KYC Documents', onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const SelectTaskkycScreen(),
));
}),
),
],
),
const SizedBox(height: 5),
Row(
children: [
Expanded(
child: _buildCustomCard('Rejected Applications',
'Re-upload Rejected Documents', onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const RejectedApplicationScreen(),
));
}),
),
],
),
const SizedBox(height: 5),
Row(
children: [
Expanded(
child: _buildCustomCard(
'Notifications', 'Tasks & Alerts\n\n',
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const NotificationScreen(),
));
}),
),
const SizedBox(
width: 15,
),
Expanded(
child: _buildCustomCard(
'Calendar',
' Upcoming Appointments & Deadlines',
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const CalendarScreen(),
));
}, },
), ),
), ),
@ -245,22 +154,108 @@ class _HomePageState extends State<HomePage> {
children: [ children: [
Expanded( Expanded(
child: _buildCustomCard( child: _buildCustomCard(
'Products Manual', 'details of products', 'Notifications',
'Tasks & Alerts\n\n',
buttonWidth,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const NotificationScreen(),
),
);
},
),
),
const SizedBox(width: 12),
Expanded(
child: _buildCustomCard(
'Product\nSales Data Visibility',
'',
buttonWidth,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const ProductSalesData(),
),
);
},
),
),
],
),
const SizedBox(height: 5),
_buildCustomCard(
'Collect \nKYC Data',
'Scan and upload KYC Documents',
screenWidth,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const SelectTaskkycScreen(),
),
);
},
),
const SizedBox(height: 5),
_buildCustomCard(
'Rejected Applications',
'Re-upload Rejected Documents',
screenWidth,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const RejectedApplicationScreen(),
),
);
},
),
const SizedBox(height: 5),
Row(
children: [
Expanded(
child: _buildCustomCard(
'Calendar',
'Appointments & Deadlines',
buttonWidth,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const CalendarScreen(),
),
);
},
),
),
const SizedBox(width: 12),
Expanded(
child: _buildCustomCard(
'Products Manual',
'Details of products',
buttonWidth,
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
const ProductsManualScreen(), const ProductsManualScreen(),
)); ),
}), );
},
),
), ),
], ],
), ),
], ],
), );
), },
],
), ),
), ),
), ),
@ -268,9 +263,10 @@ class _HomePageState extends State<HomePage> {
); );
} }
Widget _buildCustomCard(String title, String subtitle, Widget _buildCustomCard(String title, String subtitle, double width,
{void Function()? onTap}) { {void Function()? onTap}) {
return Container( return Container(
width: width,
margin: const EdgeInsets.only(bottom: 10), margin: const EdgeInsets.only(bottom: 10),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.indigo, color: Colors.indigo,
@ -278,7 +274,6 @@ class _HomePageState extends State<HomePage> {
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
), ),
child: ListTile( child: ListTile(
// trailing: Image.asset('assets/forward_icon.png'),
title: Text( title: Text(
title, title,
style: const TextStyle( style: const TextStyle(

View File

@ -49,7 +49,7 @@ class ProfileScreen extends StatelessWidget {
children: [ children: [
SizedBox(height: 20), SizedBox(height: 20),
_buildProfileItem('Name', profileData?.name ?? ''), _buildProfileItem('Name', profileData?.name ?? ''),
_buildProfileItem('ID', profileData?.sId ?? ''), _buildProfileItem('ID', profileData?.uniqueId ?? ''),
_buildProfileItem('Email ID', profileData?.email ?? ''), _buildProfileItem('Email ID', profileData?.email ?? ''),
_buildProfileItem('Mobile Number', profileData?.mobileNumber ?? ''), _buildProfileItem('Mobile Number', profileData?.mobileNumber ?? ''),
_buildProfileItem('Designation', profileData?.designation ?? ''), _buildProfileItem('Designation', profileData?.designation ?? ''),

View File

@ -36,7 +36,7 @@ class CommonDrawer extends StatelessWidget {
style: const TextStyle( style: const TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 18)), fontSize: 18)),
Text(value.profileResponse!.myData!.sId!, Text(value.profileResponse!.myData!.uniqueId!,
style: const TextStyle( style: const TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 15)) fontSize: 15))