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> { ...@@ -159,9 +159,10 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
return (connection == "Online") return (connection == "Online")
? Platform.isAndroid ? Platform.isAndroid
? WillPopScope( ? WillPopScope(
onWillPop: () { onWillPop: () async {
Provider.of<Paymentsprovider>(context).resetAll(); Provider.of<Paymentsprovider>(context,listen: false).resetAll();
return onBackPressed(context); Navigator.pop(context,true);
return true;
}, },
child: SafeArea( child: SafeArea(
top: false, top: false,
...@@ -175,30 +176,11 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> { ...@@ -175,30 +176,11 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
Widget _scaffold(BuildContext context) { Widget _scaffold(BuildContext context) {
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile: return Consumer<Paymentsprovider>(
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return
Consumer<Paymentsprovider>(
builder: (context, provider, child) { builder: (context, provider, child) {
final paymentLists = provider.paymentsList; final paymentLists = provider.paymentsList;
return WillPopScope( return Scaffold(
onWillPop: () {
provider.resetAll();
return onBackPressed(context);
},
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2New( appBar: appbar2New(
context, context,
...@@ -388,8 +370,6 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> { ...@@ -388,8 +370,6 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
], ],
), ),
) : Emptywidget(context), ) : Emptywidget(context),
),
),
); );
}, },
); );
......
import 'dart:io'; import 'dart:io';
import 'package:dotted_line/dotted_line.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/ordersProvider/tpcAgentsProvider.dart'; import 'package:generp/Notifiers/ordersProvider/tpcAgentsProvider.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../Utils/app_colors.dart'; import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart'; import '../../Utils/commonWidgets.dart';
...@@ -12,11 +14,18 @@ import 'ordersDetailsByModes.dart'; ...@@ -12,11 +14,18 @@ import 'ordersDetailsByModes.dart';
import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart'; import 'package:generp/Utils/commonServices.dart';
class Tpcagentdetailsbymode extends StatefulWidget { class Tpcagentdetailsbymode extends StatefulWidget {
final tpcAgentId; final tpcAgentId;
final pageTitleName; final pageTitleName;
final mode; final mode;
const Tpcagentdetailsbymode({super.key, this.tpcAgentId, this.pageTitleName, this.mode});
const Tpcagentdetailsbymode({
super.key,
this.tpcAgentId,
this.pageTitleName,
this.mode,
});
@override @override
State<Tpcagentdetailsbymode> createState() => _TpcagentdetailsbymodeState(); State<Tpcagentdetailsbymode> createState() => _TpcagentdetailsbymodeState();
...@@ -26,7 +35,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -26,7 +35,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
Map _source = {ConnectivityResult.mobile: true}; Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance; final MyConnectivity _connectivity = MyConnectivity.instance;
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
...@@ -36,12 +44,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -36,12 +44,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
setState(() => _source = source); setState(() => _source = source);
}); });
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>( var provider = Provider.of<Tpcagentsprovider>(context, listen: false);
context, provider.TPCAgentsDetailsAPIFunction(context, widget.tpcAgentId);
listen: false,
);
provider.TPCAgentsDetailsAPIFunction(
context, widget.tpcAgentId);
}); });
} }
...@@ -65,19 +69,693 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -65,19 +69,693 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
default: default:
connection = 'Offline'; connection = 'Offline';
} }
return connection=="Online"? return (connection == "Online")
Consumer<Tpcagentsprovider>( ? 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) { builder: (context, provider, child) {
var tpcAgentDetails = provider.TPCAgentsDetails; var tpcAgentDetails = provider.TPCAgentsDetails;
var tpcReqAmt = provider.TPCRequestedAmounts; var tpcReqAmt = provider.TPCRequestedAmounts;
return WillPopScope( return WillPopScope(
child: SafeArea( child: SafeArea(
top: false, top: false,
bottom: Platform.isIOS?false:true, bottom: Platform.isIOS ? false : true,
child: Scaffold( child: Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
appBar: appbar2(context, widget.pageTitleName, provider.resetAll, appBar: appbar2(
SizedBox(width: 0,),), context,
widget.pageTitleName,
provider.resetAll,
SizedBox(width: 0),
),
backgroundColor: AppColors.scaffold_bg_color, backgroundColor: AppColors.scaffold_bg_color,
body: Container( body: Container(
child: SingleChildScrollView( child: SingleChildScrollView(
...@@ -88,8 +766,14 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -88,8 +766,14 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10), margin: EdgeInsets.symmetric(
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), vertical: 10,
horizontal: 10,
),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column( child: Column(
children: [ children: [
Row( Row(
...@@ -104,7 +788,9 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -104,7 +788,9 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
color: Color(0xFFFFF3CE), color: Color(0xFFFFF3CE),
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
), ),
child: SvgPicture.asset("assets/svg/fin_ic.svg"), child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
),
), ),
), ),
SizedBox(width: 10), SizedBox(width: 10),
...@@ -112,7 +798,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -112,7 +798,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
flex: 4, flex: 4,
child: SizedBox( child: SizedBox(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Text( Text(
tpcAgentDetails.name ?? "-", tpcAgentDetails.name ?? "-",
...@@ -134,7 +821,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -134,7 +821,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
), ),
), ),
), ),
], ],
), ),
Divider(thickness: 0.5, color: Color(0xFFD7D7D7)), Divider(thickness: 0.5, color: Color(0xFFD7D7D7)),
...@@ -163,8 +849,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -163,8 +849,7 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: builder:
(context) => (context) => Fileviewer(
Fileviewer(
fileName: fileName:
tpcAgentDetails tpcAgentDetails
.idProofViewFileName!, .idProofViewFileName!,
...@@ -181,15 +866,18 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -181,15 +866,18 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: color:
provider.Headings[j] == "ID Proof" provider.Headings[j] ==
"ID Proof"
? AppColors.app_blue ? AppColors.app_blue
: Color(0xFF818181), : Color(0xFF818181),
decoration: decoration:
provider.Headings[j] == "ID Proof" provider.Headings[j] ==
"ID Proof"
? TextDecoration.underline ? TextDecoration.underline
: TextDecoration.none, : TextDecoration.none,
decorationColor: decorationColor:
provider.Headings[j] == "ID Proof" provider.Headings[j] ==
"ID Proof"
? AppColors.app_blue ? AppColors.app_blue
: AppColors.white, : AppColors.white,
), ),
...@@ -206,23 +894,35 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -206,23 +894,35 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
Container( Container(
alignment: Alignment.topLeft, alignment: Alignment.topLeft,
padding: EdgeInsets.symmetric(vertical: 5,horizontal: 10), padding: EdgeInsets.symmetric(
child: Text("TPC Amounts Requested", vertical: 5,
horizontal: 10,
),
child: Text(
"TPC Amounts Requested",
style: TextStyle( style: TextStyle(
fontSize: 14, fontSize: 14,
color: AppColors.grey_thick color: AppColors.grey_thick,
),)), ),
),
),
ListView.builder( ListView.builder(
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
shrinkWrap: true, shrinkWrap: true,
physics: NeverScrollableScrollPhysics(), physics: NeverScrollableScrollPhysics(),
itemCount: tpcReqAmt.length, itemCount: tpcReqAmt.length,
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10), padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Container( return Container(
margin: EdgeInsets.symmetric(vertical: 5), margin: EdgeInsets.symmetric(vertical: 5),
padding: EdgeInsets.symmetric(horizontal: 15, vertical: 10), padding: EdgeInsets.symmetric(
horizontal: 15,
vertical: 10,
),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
...@@ -247,21 +947,21 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -247,21 +947,21 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
"View", "View",
]; ];
return Container( return Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
vertical: 6, vertical: 6,
horizontal: 0, horizontal: 0,
), ),
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.start,
MainAxisAlignment.start, crossAxisAlignment:
crossAxisAlignment: CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: Text(textheads[j].toString(), child: Text(
textheads[j].toString(),
maxLines: 2, maxLines: 2,
overflow: TextOverflow.ellipsis,), overflow: TextOverflow.ellipsis,
),
), ),
Expanded( Expanded(
child: InkResponse( child: InkResponse(
...@@ -271,11 +971,15 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -271,11 +971,15 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: builder:
(context) => (
Ordersdetailsbymodes( context,
pageTitleName: "CRM Order Details", ) => Ordersdetailsbymodes(
pageTitleName:
"CRM Order Details",
mode: widget.mode, mode: widget.mode,
orderId: tpcReqAmt[index].orderId, orderId:
tpcReqAmt[index]
.orderId,
), ),
), ),
); );
...@@ -291,14 +995,16 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -291,14 +995,16 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
child: Text( child: Text(
textSubheads[j], textSubheads[j],
maxLines: 2, maxLines: 2,
overflow: overflow: TextOverflow.ellipsis,
TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
color:textheads[j] == "Action"? AppColors.app_blue: color:
Color(0xFF818181), textheads[j] == "Action"
? AppColors.app_blue
: Color(0xFF818181),
decoration: decoration:
textheads[j] == "Action" textheads[j] == "Action"
? TextDecoration.underline ? TextDecoration
.underline
: TextDecoration.none, : TextDecoration.none,
decorationColor: decorationColor:
textheads[j] == "Action" textheads[j] == "Action"
...@@ -309,20 +1015,18 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -309,20 +1015,18 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
), ),
), ),
), ),
], ],
), ),
); );
}), }),
), ),
); );
} },
), ),
], ],
), ),
), ),
), ),
), ),
), ),
...@@ -331,11 +1035,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> { ...@@ -331,11 +1035,6 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
}, },
); );
}, },
): );
NoNetwork(context);
} }
} }
import 'dart:io'; 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/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/screensExports.dart'; import 'package:generp/screens/screensExports.dart';
import 'package:generp/screens/notifierExports.dart'; import 'package:generp/screens/notifierExports.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Utils/app_colors.dart'; import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
import '../../Utils/commonWidgets.dart'; import '../../Utils/commonWidgets.dart';
import '../finance/FileViewer.dart'; import '../finance/FileViewer.dart';
...@@ -22,26 +25,1689 @@ class Tpcagentissuelistdetails extends StatefulWidget { ...@@ -22,26 +25,1689 @@ class Tpcagentissuelistdetails extends StatefulWidget {
} }
class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Pagesdashboardprovider>( var provider = Provider.of<Pagesdashboardprovider>(
context, context,
listen: false, listen: false,
); );
provider.showMoreDetails = false; provider.showMoreDetails = false;
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,
),
),
),
),
],
),
);
}),
provider.ordersDetailsByModeAPIFunction( ],
context, widget.orderId, widget.mode); ),
}); );
},
),
),
],
],
),
],
),
),
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>( return Consumer2<Pagesdashboardprovider,Tpcagentsprovider>(
builder: (context, provider,tpcProvider, child) { builder: (context, provider,tpcProvider, child) {
var orderDetails = provider.orderDetails; var orderDetails = provider.orderDetails;
...@@ -537,6 +2203,173 @@ class _TpcagentissuelistdetailsState extends State<Tpcagentissuelistdetails> { ...@@ -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'; ...@@ -15,6 +15,7 @@ import 'package:generp/Models/crmModels/LeadListContactPopUpResponse.dart';
import 'package:generp/Models/crmModels/LeadListViewResponse.dart'; import 'package:generp/Models/crmModels/LeadListViewResponse.dart';
import 'package:generp/Models/crmModels/ProspectListViewResponse.dart'; import 'package:generp/Models/crmModels/ProspectListViewResponse.dart';
import 'package:generp/Models/crmModels/SubmitLeadListFilterResponse.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/crmDownloadGenQuoteResponse.dart';
import 'package:generp/Models/crmModels/crmLeadDetailsGenerateQuotationSubmitResponse.dart'; import 'package:generp/Models/crmModels/crmLeadDetailsGenerateQuotationSubmitResponse.dart';
import 'package:generp/Models/crmModels/crmNewLeadsProspectsSubmitResponse.dart'; import 'package:generp/Models/crmModels/crmNewLeadsProspectsSubmitResponse.dart';
...@@ -66,6 +67,7 @@ import '../Models/ViewVisitDetailsResponse.dart'; ...@@ -66,6 +67,7 @@ import '../Models/ViewVisitDetailsResponse.dart';
import '../Models/commonModels/commonAddAccountsSubmitResponse.dart'; import '../Models/commonModels/commonAddAccountsSubmitResponse.dart';
import '../Models/crmModels/appointmentCalendarResponse.dart'; import '../Models/crmModels/appointmentCalendarResponse.dart';
import '../Models/crmModels/crmAddFollowUpResponse.dart'; import '../Models/crmModels/crmAddFollowUpResponse.dart';
import '../Models/crmModels/crmDashboardFollowUpResponse.dart';
import '../Models/crmModels/crmDashboardResponse.dart'; import '../Models/crmModels/crmDashboardResponse.dart';
import '../Models/crmModels/crmPendingTasksResponse.dart'; import '../Models/crmModels/crmPendingTasksResponse.dart';
import '../Models/crmModels/crmSelectedProductDetailsResponse.dart'; import '../Models/crmModels/crmSelectedProductDetailsResponse.dart';
...@@ -3162,6 +3164,71 @@ class ApiCalling { ...@@ -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( static Future<CommonResponse?> ordersAddTPCAgentAPI(
empId, empId,
session, session,
...@@ -4726,6 +4793,56 @@ class ApiCalling { ...@@ -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( // static Future<CommonResponse?> TpcIssueListApprovalAPI(
// empId, // empId,
// session, // session,
......
...@@ -118,6 +118,8 @@ const ordersPaymentListByModeUrl = "${baseUrl_test}crm_payments_list_filter_subm ...@@ -118,6 +118,8 @@ const ordersPaymentListByModeUrl = "${baseUrl_test}crm_payments_list_filter_subm
const ordersPaymentListDeleteUrl = "${baseUrl_test}delete_crm_order_payment"; const ordersPaymentListDeleteUrl = "${baseUrl_test}delete_crm_order_payment";
const ordersPaymentListApproveRejectUrl = "${baseUrl_test}crm_approve_reject_payment"; const ordersPaymentListApproveRejectUrl = "${baseUrl_test}crm_approve_reject_payment";
const ordersPaymentDetailsUrl = "${baseUrl_test}crm_payment_details"; 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 ordersAddTPCAgentUrl = "${baseUrl_test}add_tpc_agent_submit";
const ordersTPCAgentListUrl = "${baseUrl_test}tpc_agent_list"; const ordersTPCAgentListUrl = "${baseUrl_test}tpc_agent_list";
const ordersTPCAgentDetailsUrl = "${baseUrl_test}tpc_agent_details"; const ordersTPCAgentDetailsUrl = "${baseUrl_test}tpc_agent_details";
...@@ -170,6 +172,8 @@ const crmNewProspectLeadViewUrl = "${baseUrl_test}crm_add_new_lead_prospect_view ...@@ -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 crmNewProspectLeadSubmitUrl = "${baseUrl_test}crm_add_new_lead_prospect_submit";
const crmNewProspectListEditGstUrl = "${baseUrl_test}crm_prospect_list_edit_gst"; const crmNewProspectListEditGstUrl = "${baseUrl_test}crm_prospect_list_edit_gst";
const crmNearbyOpenLeadsUrl = "${baseUrl_test}nearby_crm_open_leads"; 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