Commit ad026e51 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

08-08-2025 By Sai Srinivas

Order Module
parent b5225d58
......@@ -159,9 +159,10 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
return (connection == "Online")
? Platform.isAndroid
? WillPopScope(
onWillPop: () {
Provider.of<Paymentsprovider>(context).resetAll();
return onBackPressed(context);
onWillPop: () async {
Provider.of<Paymentsprovider>(context,listen: false).resetAll();
Navigator.pop(context,true);
return true;
},
child: SafeArea(
top: false,
......@@ -175,221 +176,200 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
Widget _scaffold(BuildContext context) {
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return
Consumer<Paymentsprovider>(
return Consumer<Paymentsprovider>(
builder: (context, provider, child) {
final paymentLists = provider.paymentsList;
return WillPopScope(
onWillPop: () {
provider.resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2New(
context,
widget.pageTitleName,
provider.resetAll,
Row(
children: [
// InkResponse(
// onTap: () {
// _showOptionsSheet(context);
// },
// child: SvgPicture.asset("assets/svg/ic_download.svg",),
// ),
return Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2New(
context,
widget.pageTitleName,
provider.resetAll,
Row(
children: [
// InkResponse(
// onTap: () {
// _showOptionsSheet(context);
// },
// child: SvgPicture.asset("assets/svg/ic_download.svg",),
// ),
InkResponse(
InkResponse(
onTap: () async {
_showFilterSheet(context);
},
child: SvgPicture.asset(
"assets/svg/filter_ic.svg", height: 25,),
),
],
),
0xFFFFFFFF
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue)
))
: paymentLists.isNotEmpty ? SingleChildScrollView(
child: Column(
children: [
ListView.builder(
itemCount: paymentLists.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
if (paymentLists.isEmpty) {
return SizedBox(
child: Center(
child: Text("No Data Available"),
),
);
}
return InkResponse(
onTap: () async {
_showFilterSheet(context);
Navigator.push(context, MaterialPageRoute(
builder: (context) =>
Paymentdetailsbymode(mode: widget.mode,
pageTitleName: widget.pageTitleName,
paymentId: paymentLists[index].paymentId,
),));
},
child: SvgPicture.asset(
"assets/svg/filter_ic.svg", height: 25,),
),
],
),
0xFFFFFFFF
),
backgroundColor: AppColors.scaffold_bg_color,
body:
provider.isLoading
? Center(child: CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
AppColors.app_blue)
))
: paymentLists.isNotEmpty ? SingleChildScrollView(
child: Column(
children: [
ListView.builder(
itemCount: paymentLists.length,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
if (paymentLists.isEmpty) {
return SizedBox(
child: Center(
child: Text("No Data Available"),
),
);
}
return InkResponse(
onTap: () async {
Navigator.push(context, MaterialPageRoute(
builder: (context) =>
Paymentdetailsbymode(mode: widget.mode,
pageTitleName: widget.pageTitleName,
paymentId: paymentLists[index].paymentId,
),));
},
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 7.5,
vertical: 5,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Column(
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 7.5,
vertical: 5,
),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Column(
children: [
Row(
children: [
Row(
children: [
// Expanded(
// flex: 1,
// child: Container(
// height: 50,
// width: 35,
// padding: EdgeInsets.all(8.0),
// decoration: BoxDecoration(
// color: Color(0xFFFFF3CE),
// borderRadius:
// BorderRadius.circular(8),
// ),
// child: SvgPicture.asset(
// "assets/svg/fin_ic.svg",
// ),
// ),
// ),
Expanded(
flex: 1,
child: Container(
height: 50,
width: 50,
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: getDecorationColor(
// Expanded(
// flex: 1,
// child: Container(
// height: 50,
// width: 35,
// padding: EdgeInsets.all(8.0),
// decoration: BoxDecoration(
// color: Color(0xFFFFF3CE),
// borderRadius:
// BorderRadius.circular(8),
// ),
// child: SvgPicture.asset(
// "assets/svg/fin_ic.svg",
// ),
// ),
// ),
Expanded(
flex: 1,
child: Container(
height: 50,
width: 50,
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: getDecorationColor(
paymentLists[index].status,
),
shape: BoxShape.circle,
),
child: Center(
child: Text(
getText(
paymentLists[index].status,
),
style: TextStyle(
color: getTextColor(
paymentLists[index].status,
),
shape: BoxShape.circle,
),
child: Center(
child: Text(
getText(
paymentLists[index].status,
),
style: TextStyle(
color: getTextColor(
paymentLists[index].status,
),
fontSize: getSize(
paymentLists[index].status,
),
fontFamily: "JakartaBold",
),
fontSize: getSize(
paymentLists[index].status,
),
fontFamily: "JakartaBold",
),
),
),
SizedBox(width: 10),
SizedBox(width: 10),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
paymentLists[index].ename!,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.semi_black,
),
),
Text(
paymentLists[index]
.orderNumber??"-",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_semi,
fontFamily:
"JakartaRegular",
decoration:
TextDecoration.none,
decorationColor:
AppColors.white,
),
),
],
),
),
SizedBox(width: 10),
SizedBox(width: 10),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
paymentLists[index].ename!,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors.semi_black,
),
),
),
Text(
paymentLists[index]
.orderNumber??"-",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_semi,
fontFamily:
"JakartaRegular",
decoration:
TextDecoration.none,
decorationColor:
AppColors.white,
),
),
],
),
Expanded(
flex: 2,
child: Container(
),
),
Expanded(
flex: 2,
child: Container(
child: Center(
child: Text(
"₹"
"${paymentLists[index].amount}",
textAlign: TextAlign.right,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
child: Center(
child: Text(
"₹"
"${paymentLists[index].amount}",
textAlign: TextAlign.right,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
),
],
),
),
],
),
),
);
},
),
],
],
),
),
);
},
),
) : Emptywidget(context),
],
),
),
) : Emptywidget(context),
);
},
);
......
import 'dart:io';
import 'package:dotted_line/dotted_line.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/ordersProvider/tpcAgentsProvider.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
......@@ -12,11 +14,18 @@ import 'ordersDetailsByModes.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Tpcagentdetailsbymode extends StatefulWidget {
final tpcAgentId;
final pageTitleName;
final mode;
const Tpcagentdetailsbymode({super.key, this.tpcAgentId, this.pageTitleName, this.mode});
const Tpcagentdetailsbymode({
super.key,
this.tpcAgentId,
this.pageTitleName,
this.mode,
});
@override
State<Tpcagentdetailsbymode> createState() => _TpcagentdetailsbymodeState();
......@@ -26,7 +35,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
......@@ -36,12 +44,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
listen: false,
);
provider.TPCAgentsDetailsAPIFunction(
context, widget.tpcAgentId);
var provider = Provider.of<Tpcagentsprovider>(context, listen: false);
provider.TPCAgentsDetailsAPIFunction(context, widget.tpcAgentId);
});
}
......@@ -65,19 +69,693 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer<Tpcagentsprovider>(
return (connection == "Online")
? Platform.isAndroid
? WillPopScope(
onWillPop: () async {
Provider.of<Tpcagentsprovider>(
context,
listen: false,
).resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: true,
child: _scaffold(context),
),
)
: _scaffold(context)
: NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
return Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
var tpcAgentDetails = provider.TPCAgentsDetails;
var tpcReqAmt = provider.TPCRequestedAmounts;
final headings1 = [
"TPC Agent Bank Name",
"Bank Beneficiary Name",
"Bank Account No",
"Bank IFSC Code",
"ID Proof",
];
final subHeadings1 = [
tpcAgentDetails.bankName ?? "-",
tpcAgentDetails.bankBeneficiaryName ?? "-",
tpcAgentDetails.bankAccountNo ?? "-",
tpcAgentDetails.bankIfscCode ?? "-",
"View",
];
final headings2 = ["Order Received Date", "Note"];
final subHeadings2 = [
tpcAgentDetails.createdDatetime ?? "-",
tpcAgentDetails.note ?? "-",
];
final sections = [
{
"title": "Bank Details",
"headings": headings1,
"subHeadings": subHeadings1,
},
{
"title": "Other Details",
"headings": headings2,
"subHeadings": subHeadings2,
},
];
return WillPopScope(
child: SafeArea(
top: false,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2New(
context,
widget.pageTitleName,
provider.resetAll,
SizedBox(width: 0),
0xFFFFFFFF,
),
backgroundColor: AppColors.scaffold_bg_color,
body: SingleChildScrollView(
child: Column(
children: [
Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(30),
bottomRight: Radius.circular(30),
),
),
margin: EdgeInsets.symmetric(horizontal: 0),
elevation: 2,
child: Column(
children: [
Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.vertical(
bottom: Radius.circular(30),
),
),
// margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column(
children: [
Row(
children: [
Expanded(
flex: 1,
child: Container(
height: 50,
width: 35,
child: SvgPicture.asset(
"assets/svg/crm/lead_details_ic.svg",
),
),
),
SizedBox(width: 10),
Expanded(
flex: 5,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.all(1),
child: Text(
tpcAgentDetails.name ?? "-",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
InkResponse(
onTap: () {
launch(
'tel://${tpcAgentDetails.mobileNumber}',
);
},
child: Padding(
padding:
const EdgeInsets.symmetric(
vertical: 3.0,
),
child: Text(
tpcAgentDetails
.mobileNumber ??
"-",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_semi,
decoration:
TextDecoration
.underline,
decorationStyle:
TextDecorationStyle
.dashed,
decorationColor:
AppColors.grey_semi,
),
),
),
),
],
),
),
),
SizedBox(width: 10),
],
),
SizedBox(height: 5),
Visibility(
visible:
provider.showMoreDetails ? true : false,
child: Column(
children: List.generate(sections.length, (
sectionIndex,
) {
final section = sections[sectionIndex];
final title = section["title"] as String;
final headings =
section["headings"] as List<String>;
final subHeadings =
section["subHeadings"]
as List<String>;
return Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 4,
),
child: Row(
children: [
Expanded(
flex: 3,
child: Text(
title,
style: TextStyle(
fontSize: 14,
fontFamily:
"JakartaSemiBold",
),
),
),
Expanded(
flex: 6,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor:
AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
Column(
children: List.generate(headings.length, (
j,
) {
if (headings[j] == "ID Proof" &&
tpcAgentDetails
.idProofDirFilePath!
.trim()
.isEmpty) {
return SizedBox.shrink();
}
return Container(
padding: EdgeInsets.symmetric(
vertical: 7,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
),
Expanded(
child: InkResponse(
onTap:
subHeadings[j] ==
"View"
? () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
tpcAgentDetails.idProofViewFileName ??
"",
fileUrl:
tpcAgentDetails.idProofDirFilePath ??
"",
),
),
);
}
: null,
child: Text(
subHeadings[j].isEmpty
? "-"
: subHeadings[j],
style: TextStyle(
fontSize: 14,
decoration:
subHeadings[j] ==
"View"
? TextDecoration
.underline
: TextDecoration
.none,
decorationStyle:
TextDecorationStyle
.dashed,
decorationColor:
subHeadings[j] ==
"View"
? AppColors
.app_blue
: Color(
0xFF818181,
),
color:
subHeadings[j] ==
"View"
? AppColors
.app_blue
: Color(
0xFF818181,
),
),
),
),
),
],
),
);
}),
),
],
);
}),
),
),
InkResponse(
onTap: () async {
provider.showMoreDetails =
!provider.showMoreDetails;
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Text(
provider.showMoreDetails
? "Hide Details"
: "View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
Transform.flip(
flipY:
provider.showMoreDetails
? true
: false,
child: SvgPicture.asset(
"assets/svg/arrow_dropdown.svg",
height: 25,
width: 20,
color: AppColors.app_blue,
),
),
],
),
),
),
],
),
),
],
),
),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.only(
top: 15,
left: 10,
),
child: Text(
"TPC Amounts Requested",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick,
fontFamily: "JakartaMedium",
),
),
),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: tpcReqAmt.length,
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
itemBuilder: (context, index) {
return InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Ordersdetailsbymodes(
pageTitleName:
"CRM Order Details",
mode: widget.mode,
orderId:
tpcReqAmt[index]
.orderId,
),
),
);
},
child: Container(
width:
MediaQuery.of(context).size.width *
0.9,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(14),
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
margin: EdgeInsets.symmetric(
horizontal: 5,
),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/order/tpc_details_req_ic.svg",
),
),
SizedBox(width: 10),
Expanded(
flex: 6,
child: SizedBox(
child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Row(
children: [
Expanded(
flex: 4,
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Ordersdetailsbymodes(
pageTitleName:
"CRM Order Details",
mode: widget.mode,
orderId:
tpcReqAmt[index]
.orderId,
),
),
);
},
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Text(
tpcReqAmt[index].customerName ??
"-",
style: TextStyle(
decoration: TextDecoration.underline,
decorationStyle: TextDecorationStyle.dashed,
decorationColor: AppColors.semi_black,
height: 1.5,
fontFamily:
"JakartaRegular",
fontSize:
14,
color:
AppColors
.semi_black,
),
),
),
),
Text(
tpcReqAmt[index].orderNumber ??
"-",
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize:
14,
color:
AppColors
.grey_semi,
),
),
],
),
),
Expanded(
flex: 2,
child: Container(
decoration:
BoxDecoration(
borderRadius:
BorderRadius.circular(
8,
),
color: AppColors.requested_bg_color,
),
padding:
EdgeInsets.symmetric(
horizontal:
5,
vertical:
10,
),
child: Center(
child: Text(
textAlign:
TextAlign
.right,
"${tpcReqAmt[index].tpcStatus ?? "-"}",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize:
14,
color: AppColors.app_blue,
),
),
),
),
),
],
),
],
),
),
),
],
),
Container(
padding: EdgeInsets.symmetric(
vertical: 7.5,
),
child: Row(
children: [
Expanded(
flex: 4,
child: Text(
"Order Details",
style: TextStyle(
fontSize: 14,
fontFamily:
"JakartaSemiBold",
),
),
),
Expanded(
flex: 6,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor:
AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
...List.generate(2, (j) {
final heads = [
"Order Amount",
"Level 2 Approved Amount",
];
final subHeads = [
"${tpcReqAmt[index].totalAmount}",
"${tpcReqAmt[index].level2TpcApprovedAmount}",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
heads[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
),
Expanded(
child: Text(
textAlign:
TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color: Color(
0xFF818181,
),
),
),
),
],
),
);
}),
],
),
),
);
},
),
],
),
),
),
),
onWillPop: () {
return onBackPressed(context);
},
);
},
);
}
Widget _scaffold1(BuildContext context) {
return Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
var tpcAgentDetails = provider.TPCAgentsDetails;
var tpcReqAmt = provider.TPCRequestedAmounts;
return WillPopScope(
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2(context, widget.pageTitleName, provider.resetAll,
SizedBox(width: 0,),),
appBar: appbar2(
context,
widget.pageTitleName,
provider.resetAll,
SizedBox(width: 0),
),
backgroundColor: AppColors.scaffold_bg_color,
body: Container(
child: SingleChildScrollView(
......@@ -88,8 +766,14 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
margin: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column(
children: [
Row(
......@@ -104,7 +788,9 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
color: Color(0xFFFFF3CE),
borderRadius: BorderRadius.circular(8),
),
child: SvgPicture.asset("assets/svg/fin_ic.svg"),
child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
),
),
),
SizedBox(width: 10),
......@@ -112,7 +798,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
tpcAgentDetails.name ?? "-",
......@@ -134,7 +821,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
),
),
),
],
),
Divider(thickness: 0.5, color: Color(0xFFD7D7D7)),
......@@ -163,14 +849,13 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
context,
MaterialPageRoute(
builder:
(context) =>
Fileviewer(
(context) => Fileviewer(
fileName:
tpcAgentDetails
.idProofViewFileName!,
tpcAgentDetails
.idProofViewFileName!,
fileUrl:
tpcAgentDetails
.idProofDirFilePath!,
tpcAgentDetails
.idProofDirFilePath!,
),
),
);
......@@ -181,17 +866,20 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
style: TextStyle(
fontSize: 14,
color:
provider.Headings[j] == "ID Proof"
? AppColors.app_blue
: Color(0xFF818181),
provider.Headings[j] ==
"ID Proof"
? AppColors.app_blue
: Color(0xFF818181),
decoration:
provider.Headings[j] == "ID Proof"
? TextDecoration.underline
: TextDecoration.none,
provider.Headings[j] ==
"ID Proof"
? TextDecoration.underline
: TextDecoration.none,
decorationColor:
provider.Headings[j] == "ID Proof"
? AppColors.app_blue
: AppColors.white,
provider.Headings[j] ==
"ID Proof"
? AppColors.app_blue
: AppColors.white,
),
),
),
......@@ -205,124 +893,140 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
),
Container(
alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(vertical: 5,horizontal: 10),
child: Text("TPC Amounts Requested",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick
),)),
alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(
vertical: 5,
horizontal: 10,
),
child: Text(
"TPC Amounts Requested",
style: TextStyle(
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: tpcReqAmt.length,
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
"Customer Name",
"Order Number",
"Order Amount",
"Level 2 Approved Amount",
"Status",
"Action",
];
final textSubheads = [
"${tpcReqAmt[index].customerName}",
"${tpcReqAmt[index].orderNumber}",
"${tpcReqAmt[index].totalAmount}",
"${tpcReqAmt[index].level2TpcApprovedAmount}",
"${tpcReqAmt[index].tpcStatus}",
"View",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: tpcReqAmt.length,
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
Expanded(
child: Text(textheads[j].toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,),
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(vertical: 5),
padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: List.generate(6, (j) {
final textheads = [
"Customer Name",
"Order Number",
"Order Amount",
"Level 2 Approved Amount",
"Status",
"Action",
];
final textSubheads = [
"${tpcReqAmt[index].customerName}",
"${tpcReqAmt[index].orderNumber}",
"${tpcReqAmt[index].totalAmount}",
"${tpcReqAmt[index].level2TpcApprovedAmount}",
"${tpcReqAmt[index].tpcStatus}",
"View",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 6,
horizontal: 0,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
textheads[j].toString(),
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
Expanded(
child: InkResponse(
onTap: () {
if (textheads[j] == "Action") {
Navigator.push(
context,
MaterialPageRoute(
builder:
(context) =>
Ordersdetailsbymodes(
pageTitleName: "CRM Order Details",
mode: widget.mode,
orderId: tpcReqAmt[index].orderId,
),
),
);
}
},
child: SizedBox(
// height:45,
width:
MediaQuery.of(
),
Expanded(
child: InkResponse(
onTap: () {
if (textheads[j] == "Action") {
Navigator.push(
context,
).size.width *
0.75,
child: Text(
textSubheads[j],
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color:textheads[j] == "Action"? AppColors.app_blue:
Color(0xFF818181),
decoration:
textheads[j] == "Action"
? TextDecoration.underline
: TextDecoration.none,
decorationColor:
textheads[j] == "Action"
? AppColors.app_blue
: AppColors.white,
MaterialPageRoute(
builder:
(
context,
) => Ordersdetailsbymodes(
pageTitleName:
"CRM Order Details",
mode: widget.mode,
orderId:
tpcReqAmt[index]
.orderId,
),
),
);
}
},
child: SizedBox(
// height:45,
width:
MediaQuery.of(
context,
).size.width *
0.75,
child: Text(
textSubheads[j],
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color:
textheads[j] == "Action"
? AppColors.app_blue
: Color(0xFF818181),
decoration:
textheads[j] == "Action"
? TextDecoration
.underline
: TextDecoration.none,
decorationColor:
textheads[j] == "Action"
? AppColors.app_blue
: AppColors.white,
),
),
),
),
],
),
);
}),
),
);
}
),
],
),
);
}),
),
);
},
),
],
),
),
),
),
),
......@@ -331,11 +1035,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
},
);
},
):
NoNetwork(context);
);
}
}
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dotted_line/dotted_line.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/screensExports.dart';
import 'package:generp/screens/notifierExports.dart';
import 'package:provider/provider.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
import '../../Utils/commonWidgets.dart';
import '../finance/FileViewer.dart';
......@@ -22,11 +25,17 @@ class Tpcagentissuelistdetails extends StatefulWidget {
}
class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Pagesdashboardprovider>(
context,
......@@ -34,14 +43,1671 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
);
provider.showMoreDetails = false;
provider.ordersDetailsByModeAPIFunction(
context, widget.orderId, widget.mode);
});
provider.ordersDetailsByModeAPIFunction(
context, widget.orderId, widget.mode);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
Color getDecorationColor(value) {
var color = AppColors.approved_bg_color;
switch (value) {
case 'Registered':
return AppColors.requested_bg_color;
case 'Level 1 Approved':
return AppColors.approved_bg_color;
case 'Level 1 Rejected':
return AppColors.rejected_bg_color;
case 'Level 2 Approved':
return AppColors.approved_bg_color;
case 'Level 2 Rejected':
return AppColors.rejected_bg_color;
case 'Sales Order Registered':
return AppColors.processed_bg_color;
case 'Dispatched':
return AppColors.approved_bg_color;
}
return color;
}
Color getTextColor(value) {
var color = AppColors.approved_text_color;
switch (value) {
case 'Registered':
return AppColors.requested_text_color;
case 'Level 1 Approved':
return AppColors.approved_text_color;
case 'Level 1 Rejected':
return AppColors.rejected_text_color;
case 'Level 2 Approved':
return AppColors.approved_text_color;
case 'Level 2 Rejected':
return AppColors.rejected_text_color;
case 'Sales Order Registered':
return AppColors.processed_text_color;
case 'Dispatched':
return AppColors.approved_text_color;
}
return color;
}
getText(value) {
var text = "R";
switch (value) {
case 'Registered':
return "R";
case 'Level 1 Approved':
return "L1A";
case 'Level 1 Rejected':
return "L1R";
case 'Level 2 Approved':
return "L2A";
case 'Level 2 Rejected':
return "L2R";
case 'Sales Order Registered':
return "SOR";
case 'Dispatched':
return "D";
}
return text;
}
//All","Registered","Level 1 Approved","Level 2 Approved","Level 1 Rejected",
// Level 2 Rejected","Level 2 Rejected Final","Sales Order Registered","Dispatched"
double getSize(value) {
var text = "A";
switch (value) {
case 'Registered':
return 16.0;
case 'Level 1 Approved':
return 13.0;
case 'Level 1 Rejected':
return 13.0;
case 'Level 2 Approved':
return 13.0;
case 'Level 2 Rejected':
return 13.0;
case 'Processed':
return 16.0;
case 'Sales Order Registered':
return 13.0;
case 'Dispatched':
return 16.0;
}
return 18.0;
}
@override
Widget build(BuildContext context) {
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return (connection == "Online")
? Platform.isAndroid
? WillPopScope(
onWillPop: () async {
Provider.of<Tpcagentsprovider>(
context,
listen: false,
).resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: true,
child: _scaffold(context),
),
)
: _scaffold(context)
: NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
return Consumer2<Pagesdashboardprovider,Tpcagentsprovider>(
builder: (context, provider,tpcProvider, child) {
var orderDetails = provider.orderDetails;
final productsHistory = provider.productsHistory;
final feedbackHistory = provider.feedbackHistory;
final paymentHistory = provider.paymentHistory;
final headings2 = [
"Order Number",
"Account Name",
"Sales Person Name",
"Order Received Date",
"OTP",
];
final subHeadings2 = [
provider.orderDetails.orderNumber ?? "-",
provider.orderDetails.accountName ?? "-",
provider.orderDetails.salesPersonEmpName ?? "-",
provider.orderDetails.orderReceivedDate ?? "-",
provider.orderDetails.otp ?? "-",
];
final headings3 = [
"State",
"District",
"Sub Location",
"Pincode",
"Address",
"Entered By",
];
final subHeadings3 = [
provider.orderDetails.billingState ?? "-",
provider.orderDetails.billingDistrict ?? "-",
provider.orderDetails.billingSubLocality ?? "-",
provider.orderDetails.billingPincode ?? "-",
provider.orderDetails.billingAddress ?? "-",
provider.orderDetails.enteredEmpName ?? "-",
];
final headings4 = [
"State",
"District",
"Sub Location",
"Pincode",
"Address",
"GST Number",
];
final subHeadings4 = [
provider.orderDetails.stateName ?? "-",
provider.orderDetails.districtName ?? "-",
provider.orderDetails.subLocationName ?? "-",
provider.orderDetails.dispatchPincode ?? "-",
provider.orderDetails.dispatchAddress ?? "-",
provider.orderDetails.gstNumber ?? "-",
];
final headings5 = ["Unloading", "Freight", "Erection"];
final subHeadings5 = [
provider.orderDetails.unloadingScope ?? "-",
provider.orderDetails.freightScope ?? "-",
provider.orderDetails.erectionScope ?? "-",
];
final headings6 = ["CGST", "SGST", "IGST"];
final subHeadings6 = [
provider.orderDetails.cgstAmount ?? "-",
provider.orderDetails.sgstAmount ?? "-",
provider.orderDetails.igstAmount ?? "-",
];
final headings7 = [
"Basic Amount",
"Paid Amount",
"Balance Amount",
"Total Amount",
];
final subHeadings7 = [
provider.orderDetails.basicAmount ?? "-",
provider.orderDetails.paidAmount ?? "-",
provider.orderDetails.balanceAmount ?? "-",
provider.orderDetails.totalAmount ?? "-",
];
final headings8 = [
"TPC Applicable",
"TPC Agent",
"TPC Requested Amount",
"TPC Level 1 Approved Amount",
"TPC Level 2 Approved Amount",
];
final subHeadings8 = [
provider.orderDetails.tpcApplicable ?? "-",
provider.orderDetails.tpcaAgentName ?? "-",
provider.orderDetails.requestedTpcAmount ?? "-",
provider.orderDetails.level1TpcApprovedAmount ?? "-",
provider.orderDetails.level2TpcApprovedAmount ?? "-",
];
final headings9 = [
"TPC Payment Mode",
"TPC Payment Reference No",
"TPC Payment Attachment",
"TPC Status",
"Purchase Order",
];
final subHeadings9 = [
provider.orderDetails.tpcPaymentMode ?? "-",
provider.orderDetails.tpcPaymentReferenceNo ?? "-",
provider.orderDetails.tpcPaymentAttachementViewFileName ?? "-",
provider.orderDetails.tpcStatus ?? "-",
provider.orderDetails.tpcPaymentAttachmentDirFilePath ?? "-",
];
final headings10 = ["Created Datetime", "Note", "Status"];
final subHeadings10 = [
provider.orderDetails.createdDatetime ?? "-",
provider.orderDetails.note ?? "-",
provider.orderDetails.status ?? "-",
];
final sections = [
{
"title": "Order Details",
"headings": headings2,
"subHeadings": subHeadings2,
},
if (provider.showMoreDetails) ...[
{
"title": "Amount Details",
"headings": headings7,
"subHeadings": subHeadings7,
},
{
"title": "GST Amount",
"headings": headings6,
"subHeadings": subHeadings6,
},
{
"title": "Billing Details",
"headings": headings3,
"subHeadings": subHeadings3,
},
{
"title": "Dispatch Details",
"headings": headings4,
"subHeadings": subHeadings4,
},
{
"title": "Scope",
"headings": headings5,
"subHeadings": subHeadings5,
},
{
"title": "TPC Details",
"headings": headings8,
"subHeadings": subHeadings8,
},
{
"title": "TPC Payment Details",
"headings": headings9,
"subHeadings": subHeadings9,
},
{
"title": "Others",
"headings": headings10,
"subHeadings": subHeadings10,
},
],
];
return WillPopScope(
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2New(context, widget.pageTitleName, provider.resetAll,
SizedBox.shrink(),
0xFFFFFFFF),
backgroundColor: AppColors.scaffold_bg_color,
body: SingleChildScrollView(
child: Column(
children: [
Card(
margin: EdgeInsets.symmetric(horizontal: 0,vertical: 2),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(30),
bottomRight: Radius.circular(30),
),
),
elevation: 2,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(30),
bottomRight: Radius.circular(30),
),
),
// margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column(
children: [
Row(
children: [
Expanded(
flex: 1,
child: Container(
height: 45,
width: 45,
padding: EdgeInsets.all(7.5),
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
shape: BoxShape.circle,
// borderRadius: BorderRadius.circular(8),
),
child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
),
),
),
SizedBox(width: 10),
Expanded(
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
InkResponse(
onTap: () {},
child: Padding(
padding: const EdgeInsets.only(
top: 8.0,
bottom: 4,
),
child: Text(
orderDetails.accountName == ""
? "-"
: orderDetails.accountName ??
"-",
style: TextStyle(
decoration:
TextDecoration.underline,
decorationStyle:
TextDecorationStyle.dotted,
decorationColor:
AppColors.grey_thick,
height: 1.2,
fontFamily: "JakartaRegular",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
),
Text(
orderDetails.balanceAmount == ""
? "-"
: "₹${orderDetails.balanceAmount}",
style: TextStyle(
fontFamily: "JakartaRegular",
fontSize: 14,
color: AppColors.app_blue,
),
),
],
),
),
),
Expanded(
flex: 2,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 5,
vertical: 10,
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: getDecorationColor(
orderDetails.status ?? "-",
),
),
child: Center(
child: Text(
orderDetails.status ?? "-",
textAlign: TextAlign.center,
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: getTextColor(
orderDetails.status,
),
),
),
),
),
),
],
),
SizedBox(height: 10),
Column(
children: List.generate(sections.length, (
sectionIndex,
) {
final section = sections[sectionIndex];
final title = section["title"] as String;
final headings =
section["headings"] as List<String>;
final subHeadings =
section["subHeadings"] as List<String>;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.symmetric(
vertical: 4,
),
child: Row(
children: [
Expanded(
flex: 3,
child: Text(
title,
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaSemiBold",
),
),
),
Expanded(
flex: 6,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor: AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
Column(
children: List.generate(headings.length, (
j,
) {
return Container(
padding: EdgeInsets.symmetric(
vertical: 7,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
headings[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
Expanded(
child: InkResponse(
onTap:
subHeadings[j] == "View"
? () {}
: null,
child: Text(
subHeadings[j].isEmpty
? "-"
: subHeadings[j],
textAlign: TextAlign.right,
style: TextStyle(
fontSize: 14,
decoration:
subHeadings[j] ==
"View"
? TextDecoration
.underline
: TextDecoration
.none,
decorationColor:
AppColors.app_blue,
color:
subHeadings[j] ==
"View"
? AppColors
.app_blue
: Color(
0xFF818181,
),
),
),
),
),
],
),
);
}),
),
],
);
}),
),
InkResponse(
onTap: () async {
provider.showMoreDetails =
!provider.showMoreDetails;
},
child: Container(
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
provider.showMoreDetails
? "Hide Details"
: "View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
Transform.flip(
flipY:
provider.showMoreDetails
? true
: false,
child: SvgPicture.asset(
"assets/svg/arrow_dropdown.svg",
height: 25,
width: 20,
color: AppColors.app_blue,
),
),
],
),
),
),
SizedBox(height: 10),
],
),
),
),
Column(
children: [
///product details
if (productsHistory.isNotEmpty) ...[
Container(
padding: EdgeInsets.only(
left: 10,
right: 10,
top: 10,
),
child: Row(
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
"Product Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
],
),
),
SizedBox(
width: double.infinity,
height: 300,
child: ListView.builder(
physics: AlwaysScrollableScrollPhysics(),
shrinkWrap: true,
scrollDirection: Axis.horizontal,
padding: EdgeInsets.symmetric(
vertical: 5,
horizontal: 10,
),
itemCount: productsHistory.length,
itemBuilder: (context, lp) {
return Container(
height: 300,
width:
MediaQuery.of(context).size.width * 0.9,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(14),
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 8,
),
margin: EdgeInsets.symmetric(
horizontal: 5,
// vertical: 10,
),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/crm/product_details_ic.svg",
),
),
SizedBox(width: 10),
Expanded(
flex: 6,
child: SizedBox(
child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Row(
children: [
Expanded(
flex: 4,
child: Text(
productsHistory[lp]
.productName ??
"-",
maxLines: 2,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
),
Expanded(
flex: 2,
child: Text(
textAlign:
TextAlign.right,
"₹${productsHistory[lp].unitPrice ?? "-"}",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.app_blue,
),
),
),
],
),
Text(
"x ${productsHistory[lp].qty ?? "-"}",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_semi,
),
),
SizedBox(height: 5),
// DottedLine(
// dashGapLength: 4,
// dashGapColor: Colors.white,
// dashColor: AppColors.grey_semi,
// dashLength: 2,
// lineThickness: 0.5,
// ),
// SizedBox(height: 5),
// Text(
// "₹${productsHistory[lp].totalPrice ?? " - "}",
// style: TextStyle(
// fontFamily: "JakartaMedium",
// fontSize: 14,
// color: AppColors.semi_black,
// ),
// ),
],
),
),
),
],
),
Container(
padding: EdgeInsets.symmetric(
vertical: 7.5,
),
child: Row(
children: [
Expanded(
flex: 3,
child: Text(
"Tax Details",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaSemiBold",
),
),
),
Expanded(
flex: 7,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor: AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
...List.generate(3, (j) {
final heads = [
"CGST (%)",
"SGST (%)",
"IGST (%)",
];
final subHeads = [
productsHistory[lp].cgstPercentage ?? "-",
productsHistory[lp].sgstPercentage ?? "-",
productsHistory[lp].igstPercentage ?? "-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
heads[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
if (subHeads[j] == "View") ...[
Expanded(
child: InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
feedbackHistory[lp].attachmentViewFileName!,
fileUrl:
feedbackHistory[lp].attachmentDirFilePath!,
),
),
);
},
child: Text(
textAlign:
TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color:
AppColors.app_blue,
decorationColor:
AppColors.app_blue,
decoration:
TextDecoration
.underline,
),
),
),
),
] else ...[
Expanded(
child: Text(
textAlign: TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color: Color(0xFF818181),
),
),
),
],
],
),
);
}),
Container(
padding: EdgeInsets.symmetric(
vertical: 7.5,
),
child: Row(
children: [
Expanded(
flex: 3,
child: Text(
"Price Details",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaSemiBold",
),
),
),
Expanded(
flex: 7,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor: AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
...List.generate(2, (j) {
final heads = [
"Unit Price",
"Total Price"
];
final subHeads = [
"₹ ${productsHistory[lp].unitPrice ?? "-"}",
"₹ ${productsHistory[lp].totalPrice ?? "-"}",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
heads[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
if (subHeads[j] == "View") ...[
Expanded(
child: InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
feedbackHistory[lp].attachmentViewFileName!,
fileUrl:
feedbackHistory[lp].attachmentDirFilePath!,
),
),
);
},
child: Text(
textAlign:
TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color:
AppColors.app_blue,
decorationColor:
AppColors.app_blue,
decoration:
TextDecoration
.underline,
),
),
),
),
] else ...[
Expanded(
child: Text(
textAlign: TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color: Color(0xFF818181),
),
),
),
],
],
),
);
}),
],
),
);
},
),
),
],
///Feedback details
Container(
padding: EdgeInsets.only(
left: 10,
right: 10,
top: 10,
),
child: Row(
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
"Feedback Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
if (feedbackHistory.isNotEmpty) ...[
Expanded(
child: InkResponse(
onTap: () async {
_showFeedbackSheet(context);
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
textAlign: TextAlign.right,
"+ Feedback Update",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
),
),
),
],
],
),
),
if (feedbackHistory.isNotEmpty) ...[
SizedBox(
width: double.infinity,
height: 220,
child: ListView.builder(
physics: AlwaysScrollableScrollPhysics(),
shrinkWrap: true,
scrollDirection: Axis.horizontal,
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
itemCount: feedbackHistory.length,
itemBuilder: (context, lp) {
return Container(
height: 220,
width:
MediaQuery.of(context).size.width * 0.9,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(14),
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(horizontal: 5),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/crm/followup_details_ic.svg",
),
),
SizedBox(width: 10),
Expanded(
flex: 6,
child: SizedBox(
child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Row(
children: [
Expanded(
flex: 4,
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Text(
feedbackHistory[lp]
.employeNaem ??
"-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
Text(
feedbackHistory[lp]
.createdDatetime ??
"-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.grey_semi,
),
),
],
),
),
Expanded(
flex: 2,
child: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(
8,
),
color: Color(
0xFFF3FFD5,
),
),
padding:
EdgeInsets.symmetric(
horizontal: 5,
vertical: 10,
),
child: Center(
child: Text(
textAlign:
TextAlign
.center,
"${feedbackHistory[lp].status ?? "-"}",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color: Color(
0xFF586000,
),
),
),
),
),
),
],
),
],
),
),
),
],
),
Container(
padding: EdgeInsets.symmetric(
vertical: 7.5,
),
child: Row(
children: [
Expanded(
flex: 3,
child: Text(
"Feedback",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaSemiBold",
),
),
),
Expanded(
flex: 7,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor: AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
...List.generate(2, (j) {
final heads = [
"Feedback",
"Attachment",
];
final subHeads = [
feedbackHistory[lp].feedback ?? "-",
"View",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex:1,
child: Text(
textAlign: TextAlign.left,
heads[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color: AppColors.semi_black,
),
),
),
if (subHeads[j] == "View") ...[
Expanded(
flex:3,
child: InkResponse(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder:
(
context,
) => Fileviewer(
fileName:
feedbackHistory[lp].attachmentViewFileName!,
fileUrl:
feedbackHistory[lp].attachmentDirFilePath!,
),
),
);
},
child: Text(
textAlign:
TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
style: TextStyle(
fontSize: 14,
color:
AppColors.app_blue,
decorationColor:
AppColors.app_blue,
decoration:
TextDecoration
.underline,
),
),
),
),
] else ...[
Expanded(
flex:4,
child: Text(
textAlign: TextAlign.right,
subHeads[j] == ""
? "-"
: subHeads[j],
maxLines:2,
style: TextStyle(
fontSize: 14,
color: Color(0xFF818181),
),
),
),
],
],
),
);
}),
],
),
);
},
),
),
] else ...[
InkResponse(
onTap: () async {
_showFeedbackSheet(context);
},
child: Container(
height: 50,
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
child: Center(
child: Text(
textAlign: TextAlign.right,
"+ Feedback Update",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
),
),
),
],
///PaymentHistory details
if (paymentHistory.isNotEmpty) ...[
Container(
padding: EdgeInsets.only(
left: 10,
right: 10,
top: 10,
),
child: Row(
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
"Payment Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.grey_thick,
),
),
),
],
),
),
SizedBox(
width: double.infinity,
height: 225,
child: ListView.builder(
physics: AlwaysScrollableScrollPhysics(),
shrinkWrap: true,
scrollDirection: Axis.horizontal,
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
itemCount: paymentHistory.length,
itemBuilder: (context, lp) {
return Container(
height: 225,
width:
MediaQuery.of(context).size.width *
0.9,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(14),
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: EdgeInsets.symmetric(
horizontal: 5,
),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: SvgPicture.asset(
"assets/svg/order/payment_history_ic.svg",
),
),
SizedBox(width: 10),
Expanded(
flex: 6,
child: SizedBox(
child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment
.start,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Row(
children: [
Expanded(
flex: 4,
child: Column(
crossAxisAlignment:
CrossAxisAlignment
.start,
children: [
Text(
paymentHistory[lp]
.ename ??
"-",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize:
14,
color:
AppColors
.semi_black,
),
),
Text(
"₹ ${paymentHistory[lp]
.amount ??
"-"}",
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize:
14,
color:
AppColors
.grey_semi,
),
),
],
),
),
],
),
],
),
),
),
Expanded(
flex: 2,
child: Container(
height: 45,
padding:
EdgeInsets.symmetric(
horizontal: 5,
),
decoration: BoxDecoration(
color:
AppColors
.processed_bg_color,
borderRadius:
BorderRadius.circular(
8,
),
),
child: Center(
child: Text(
paymentHistory[lp].approvalStatus??"-",
textAlign:
TextAlign.right,
style: TextStyle(
fontFamily:
"JakartaMedium",
fontSize: 14,
color:
AppColors
.processed_text_color,
),
),
),
),
),
],
),
Container(
padding: EdgeInsets.symmetric(
vertical: 10,
),
child: Row(
children: [
Expanded(
flex: 4,
child: Text(
"Payment Info",
style: TextStyle(
fontSize: 14,
fontFamily:
"JakartaSemiBold",
),
),
),
Expanded(
flex: 6,
child: DottedLine(
dashGapLength: 4,
dashGapColor: Colors.white,
dashColor:
AppColors.grey_semi,
dashLength: 2,
lineThickness: 0.5,
),
),
],
),
),
...List.generate(3, (j) {
final headsa = [
"Mode of Payment",
"Payment Reference",
"Adjusted Amount",
"Payment Date",
];
final subHeadsa = [
paymentHistory[lp]
.paymentType ??
"-", paymentHistory[lp]
.refNo ??
"-",
"₹${paymentHistory[lp]
.adjustedAmount ??
"-"}",
paymentHistory[lp]
.paymentDate ??
"-",
];
return Container(
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Expanded(
child: Text(
textAlign: TextAlign.left,
headsa[j],
style: TextStyle(
fontFamily:
"JakartaRegular",
fontSize: 14,
color:
AppColors
.semi_black,
),
),
),
Expanded(
child: Text(
textAlign:
TextAlign.right,
subHeadsa[j] == ""
? "-"
: subHeadsa[j],
style: TextStyle(
fontSize: 14,
color: Color(
0xFF818181,
),
),
),
),
],
),
);
}),
],
),
);
},
),
),
],
],
),
],
),
),
bottomNavigationBar:
Container(
decoration: BoxDecoration(
color: Colors.white
),
alignment: Alignment.center,
height: 65,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: InkResponse(
onTap: () {
// provider
// .approveRejectPaymentRequestAPIFunction(
// context,
// provider.requestsDetails.id,
// );
_showLevelApprovalSheet(
context);
},
child: Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(8),
// color: Color(0xFFE7FFE5),
// border: Border.all(
// color: Color(0xFF0D9C00),
// width: 0.5,
// ),
// ),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SvgPicture.asset("assets/svg/finance/level_approve_ic.svg"),
SizedBox(width: 10,),
Center(
child: Text(
"Approve",
style: TextStyle(
color: AppColors.semi_black,
),
),
),
],
),
),
),
),
],
),
),
),
),
onWillPop: () {
return onBackPressed(context);
},
);
},
);
}
@override
Widget build(BuildContext context) {
Widget _scaffold1(BuildContext context) {
return Consumer2<Pagesdashboardprovider,Tpcagentsprovider>(
builder: (context, provider,tpcProvider, child) {
var orderDetails = provider.orderDetails;
......@@ -537,6 +2203,173 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
);
}
Future<void> _showFeedbackSheet(BuildContext context) {
return showModalBottomSheet(
useSafeArea: true,
isDismissible: true,
isScrollControlled: true,
showDragHandle: true,
backgroundColor: Colors.white,
enableDrag: true,
context: context,
builder: (context) {
return StatefulBuilder(
builder: (context, setState) {
return SafeArea(
child: Consumer<Pagesdashboardprovider>(
builder: (context, provider, child) {
final orderDetails = provider.orderDetails;
return Container(
margin: EdgeInsets.only(
bottom: 15,
left: 15,
right: 15,
top: 10,
),
padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom,),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Align(
alignment: Alignment.topLeft,
child: Text(
"Feedback Update",
style: TextStyle(
color: AppColors.app_blue,
fontSize: 16,
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text("Remarks"),
),
Container(
height: 150,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFE9E9E9),
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: provider.feedbackController,
readOnly: true,
keyboardType: TextInputType.text,
maxLines: 60 ,
onChanged: provider.onChangeFeedback,
style: TextStyle(color: Color(0xFF818181), fontSize: 14),
decoration: InputDecoration(
hintText: "Write Remarks",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
if(provider.feedbackError!=null)...[
Container(
alignment: Alignment.topLeft,
margin: EdgeInsets.only(top: 2.5, left: 25),
child: Text(
"${provider.feedbackError}",
style: TextStyle(color: Colors.red, fontSize: 10),
),
),
],
InkResponse(
onTap: () {
_showAttachmentSheet(context);
},
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: 45,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
color: Color(0xFFE6F6FF),
borderRadius: BorderRadius.circular(12),
border: Border.all(
color: AppColors.app_blue,
width: 0.5,
),
),
child: Center(
child: Text(
"Add Attachment",
style: TextStyle(
fontFamily: "JakartaMedium",
color: AppColors.app_blue,
),
),
),
),
),
if(provider.imagePicked==1 && provider.imagePath!=null)...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text("${provider.imagePath}",style: TextStyle(
color: AppColors.semi_black,
fontSize: 11,
fontWeight: FontWeight.w600
),),
InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
provider.imageFilePath = null;
},
child: SvgPicture.asset("assets/svg/ic_close.svg",width: 15,height: 15,))
],
),
)
],
InkWell(
onTap: () {
provider.ordersDetailsFeedbackSubmissionAPIFunction(context,orderDetails.id,orderDetails.status);
},
child: Container(
alignment: Alignment.center,
height: 45,
decoration: BoxDecoration(
color: AppColors.app_blue, //1487C9
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
),
),
),
),
],
),
),
);
},
),
);
},
);
},
);
}
......
......@@ -15,6 +15,7 @@ import 'package:generp/Models/crmModels/LeadListContactPopUpResponse.dart';
import 'package:generp/Models/crmModels/LeadListViewResponse.dart';
import 'package:generp/Models/crmModels/ProspectListViewResponse.dart';
import 'package:generp/Models/crmModels/SubmitLeadListFilterResponse.dart';
import 'package:generp/Models/crmModels/crmDashboardQuotationResponse.dart';
import 'package:generp/Models/crmModels/crmDownloadGenQuoteResponse.dart';
import 'package:generp/Models/crmModels/crmLeadDetailsGenerateQuotationSubmitResponse.dart';
import 'package:generp/Models/crmModels/crmNewLeadsProspectsSubmitResponse.dart';
......@@ -66,6 +67,7 @@ import '../Models/ViewVisitDetailsResponse.dart';
import '../Models/commonModels/commonAddAccountsSubmitResponse.dart';
import '../Models/crmModels/appointmentCalendarResponse.dart';
import '../Models/crmModels/crmAddFollowUpResponse.dart';
import '../Models/crmModels/crmDashboardFollowUpResponse.dart';
import '../Models/crmModels/crmDashboardResponse.dart';
import '../Models/crmModels/crmPendingTasksResponse.dart';
import '../Models/crmModels/crmSelectedProductDetailsResponse.dart';
......@@ -3162,6 +3164,71 @@ class ApiCalling {
}
}
static Future<CommonResponse?> paymentsDetailsAddAdjustedOrderAPI(
empId,
session,
payment_id,
selected_order_id,
amount,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
'payment_id': (payment_id).toString(),
'selected_order_id': (selected_order_id).toString(),
'amount': (amount).toString(),
};
final res = await post(data, ordersPaymentDetailsAddOrderUrl, {});
if (res != null) {
print("paymentsDetailsAddAdjusted: $data");
debugPrint(res.body);
return CommonResponse.fromJson(
jsonDecode(res.body),
);
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
static Future<CommonResponse?> paymentsDetailsEditAdjustedOrderAPI(
empId,
session,
selected_order_id,
amount,
order_payment_id,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
'selected_order_id': (selected_order_id).toString(),
'amount': (amount).toString(),
'order_payment_id': (order_payment_id).toString(),
};
final res = await post(data, ordersPaymentDetailsEditOrderUrl, {});
if (res != null) {
print("paymentsDetailsEditAdjusted $data");
debugPrint(res.body);
return CommonResponse.fromJson(
jsonDecode(res.body),
);
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
static Future<CommonResponse?> ordersAddTPCAgentAPI(
empId,
session,
......@@ -4726,6 +4793,56 @@ class ApiCalling {
}
}
static Future<crmDashboardFollowUpResponse?> crmDashboardFollowUpAPI(
empId,
session,
type,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
'type': (type).toString(),
};
final res = await post(data, crmDashboardFollowUpUrl, {});
if (res != null) {
print(data);
debugPrint(res.body);
return crmDashboardFollowUpResponse.fromJson(jsonDecode(res.body));
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
static Future<crmDashboardQuotationResponse?> crmDashboardQuotationsAPI(
empId,
session,
) async {
try {
Map<String, String> data = {
'emp_id': (empId).toString(),
'session_id': (session).toString(),
};
final res = await post(data, crmDashboardQuotationsUrl, {});
if (res != null) {
print(data);
debugPrint(res.body);
return crmDashboardQuotationResponse.fromJson(jsonDecode(res.body));
} else {
debugPrint("Null Response");
return null;
}
} catch (e) {
debugPrint('hello bev=bug $e ');
return null;
}
}
// static Future<CommonResponse?> TpcIssueListApprovalAPI(
// empId,
// session,
......
......@@ -118,6 +118,8 @@ const ordersPaymentListByModeUrl = "${baseUrl_test}crm_payments_list_filter_subm
const ordersPaymentListDeleteUrl = "${baseUrl_test}delete_crm_order_payment";
const ordersPaymentListApproveRejectUrl = "${baseUrl_test}crm_approve_reject_payment";
const ordersPaymentDetailsUrl = "${baseUrl_test}crm_payment_details";
const ordersPaymentDetailsAddOrderUrl = "${baseUrl_test}crm_payment_add_adjusted_orders";
const ordersPaymentDetailsEditOrderUrl = "${baseUrl_test}crm_payment_edit_adjusted_orders";
const ordersAddTPCAgentUrl = "${baseUrl_test}add_tpc_agent_submit";
const ordersTPCAgentListUrl = "${baseUrl_test}tpc_agent_list";
const ordersTPCAgentDetailsUrl = "${baseUrl_test}tpc_agent_details";
......@@ -170,6 +172,8 @@ const crmNewProspectLeadViewUrl = "${baseUrl_test}crm_add_new_lead_prospect_view
const crmNewProspectLeadSubmitUrl = "${baseUrl_test}crm_add_new_lead_prospect_submit";
const crmNewProspectListEditGstUrl = "${baseUrl_test}crm_prospect_list_edit_gst";
const crmNearbyOpenLeadsUrl = "${baseUrl_test}nearby_crm_open_leads";
const crmDashboardFollowUpUrl = "${baseUrl_test}crm_dashboard_followup_list";
const crmDashboardQuotationsUrl = "${baseUrl_test}crm_dashboard_quotations_list";
......
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