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

20-08-2025 By Sai Srinivas

Test Cases CRM
parent 6ace5c45
......@@ -26,6 +26,7 @@ class Generatequotationscreen extends StatefulWidget {
class _GeneratequotationscreenState extends State<Generatequotationscreen> {
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(12, (index) => FocusNode());
@override
void initState() {
......@@ -45,6 +46,13 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
});
}
@override
void dispose() {
focusNodes.map((e) => e.dispose());
super.dispose();
}
@override
Widget build(BuildContext context) {
return Consumer<Crmgeneratequotationprovider>(
......@@ -95,6 +103,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.emailAddress,
false,
null,
focusNodes[0],
focusNodes[1],
TextInputAction.done,
null,
),
errorWidget(context, provider.mailIdError),
......@@ -107,6 +119,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.phone,
false,
FilteringTextInputFormatter.digitsOnly,
focusNodes[1],
focusNodes[2],
TextInputAction.done,
null,
),
errorWidget(context, provider.mobileError),
......@@ -119,6 +135,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.text,
false,
null,
focusNodes[2],
focusNodes[3],
TextInputAction.done,
null,
),
errorWidget(context, provider.subjectsError),
],
......@@ -623,6 +643,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.text,
false,
null,
focusNodes[3],
focusNodes[4],
TextInputAction.done,
null,
),
errorWidget(context, provider.SpecialNoteError),
......@@ -635,6 +659,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.text,
false,
null,
focusNodes[4],
focusNodes[5],
TextInputAction.done,
null,
),
errorWidget(context, provider.forError),
......@@ -647,6 +675,10 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
TextInputType.text,
false,
null,
focusNodes[5],
focusNodes[6],
TextInputAction.done,
null,
),
errorWidget(context, provider.paymentTermsError),
],
......@@ -675,22 +707,29 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children:provider.buttonsLoading?[
SizedBox(width:25),
children:
provider.buttonsLoading
? [
SizedBox(width: 25),
CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(AppColors.app_blue),
valueColor: AlwaysStoppedAnimation(
AppColors.app_blue,
),
SizedBox(width:25),
]: [
),
SizedBox(width: 25),
]
: [
Expanded(
child: InkResponse(
onTap:
provider.buttonsLoading
? null
: () {
HapticFeedback.mediumImpact();
provider.buttonsLoading = true;
//genquotedown
final insertedData = provider.productRows;
final insertedData =
provider.productRows;
print(insertedData);
provider
.crmLeadDetailsGenerateQuoteSubmitAPIFunction(
......@@ -711,22 +750,25 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
child:
provider.submitLoading
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
valueColor:
AlwaysStoppedAnimation<Color>(
AppColors.app_blue,
),
)
: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/crm/download_quote_ic.svg",
),
SizedBox(width: 10,),
SizedBox(width: 10),
Text(
"Download",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaRegular",
fontFamily:
"JakartaRegular",
),
),
],
......@@ -734,16 +776,21 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
),
),
),
SvgPicture.asset("assets/svg/crm/vertical_line_ic.svg"),
SvgPicture.asset(
"assets/svg/crm/vertical_line_ic.svg",
),
Expanded(
child: InkResponse(
onTap:
provider.buttonsLoading
? null
: () {
HapticFeedback.mediumImpact();
provider.buttonsLoading = true;
//genquotemail,
final insertedData = provider.getFormData();
final insertedData =
provider.productRows;
print(insertedData);
provider
.crmLeadDetailsGenerateQuoteSubmitAPIFunction(
context,
......@@ -763,22 +810,25 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
child:
provider.submitLoading
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
valueColor:
AlwaysStoppedAnimation<Color>(
AppColors.app_blue,
),
)
: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/crm/email_quote_ic.svg",
),
SizedBox(width: 10,),
SizedBox(width: 10),
Text(
"Email",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaRegular",
fontFamily:
"JakartaRegular",
),
),
],
......@@ -786,16 +836,21 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
),
),
),
SvgPicture.asset("assets/svg/crm/vertical_line_ic.svg"),
SvgPicture.asset(
"assets/svg/crm/vertical_line_ic.svg",
),
Expanded(
child: InkResponse(
onTap:
provider.buttonsLoading
? null
: () {
HapticFeedback.mediumImpact();
provider.buttonsLoading = true;
//genquotewhatsapp,
final insertedData = provider.getFormData();
final insertedData =
provider.productRows;
print(insertedData);
provider
.crmLeadDetailsGenerateQuoteSubmitAPIFunction(
context,
......@@ -815,22 +870,25 @@ class _GeneratequotationscreenState extends State<Generatequotationscreen> {
child:
provider.submitLoading
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation<Color>(
valueColor:
AlwaysStoppedAnimation<Color>(
AppColors.app_blue,
),
)
: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
SvgPicture.asset(
"assets/svg/crm/whatsapp_quote_ic.svg",
),
SizedBox(width: 10,),
SizedBox(width: 10),
Text(
"Whatsapp",
style: TextStyle(
fontSize: 14,
fontFamily: "JakartaRegular",
fontFamily:
"JakartaRegular",
),
),
],
......
......@@ -3,6 +3,7 @@ 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/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/crmProvider/crmDashboardProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -96,7 +97,10 @@ class _PendingtasksdetailsState extends State<Pendingtasksdetails> {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
InkResponse(
onTap: () => Navigator.pop(context, true),
onTap: () {
HapticFeedback.selectionClick();
Navigator.pop(context, true);
},
child: SvgPicture.asset(
"assets/svg/appbar_back_button.svg",
height: 25,
......@@ -104,7 +108,10 @@ class _PendingtasksdetailsState extends State<Pendingtasksdetails> {
),
SizedBox(width: 10),
InkResponse(
onTap: () => Navigator.pop(context, true),
onTap: () {
HapticFeedback.selectionClick();
Navigator.pop(context, true);
},
child: Text(
"Pending Tasks",
style: TextStyle(
......@@ -236,6 +243,7 @@ class _PendingtasksdetailsState extends State<Pendingtasksdetails> {
Expanded(
child: InkResponse(
onTap:belowHeads[i]=="Mobile Number"?(){
HapticFeedback.selectionClick();
launch(
'tel://${belowSubHeads[i]}',
);
......@@ -278,6 +286,7 @@ class _PendingtasksdetailsState extends State<Pendingtasksdetails> {
FloatingActionButtonLocation.centerFloat,
floatingActionButton: InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
await Navigator.push(
context,
MaterialPageRoute(builder: (context) => Followupupdatescreen(
......
......@@ -3,6 +3,7 @@ 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/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:generp/Notifiers/crmProvider/crmDashboardProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -140,6 +141,7 @@ class _PendingTasksListState extends State<PendingTasksList> {
];
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
await Navigator.push(
context,
MaterialPageRoute(
......@@ -236,7 +238,8 @@ class _PendingTasksListState extends State<PendingTasksList> {
child: Text(
"${provider.pendingTasksLists[index].anote}",
textAlign: TextAlign.right,
maxLines: 1,
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: AppColors.semi_black,
fontFamily: "JakartaRegular",
......
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/crm/ProspectDetailsByMode.dart';
import 'package:provider/provider.dart';
......@@ -73,7 +74,10 @@ class _UniversalsearchscreenState extends State<Universalsearchscreen> {
Expanded(
flex: 1,
child: InkResponse(
onTap: () => Navigator.pop(context, true),
onTap: () {
HapticFeedback.selectionClick();
Navigator.pop(context, true);
},
child: Container(
child: SvgPicture.asset("assets/svg/appbar_back_button.svg", height: 25)),
......@@ -127,6 +131,7 @@ class _UniversalsearchscreenState extends State<Universalsearchscreen> {
child:provider.searchController.text.isNotEmpty?
InkResponse(
onTap: () {
HapticFeedback.selectionClick();
provider.searchController.clear();
provider.crmUniversalSearchFunction(
context,
......@@ -260,6 +265,7 @@ class _UniversalsearchscreenState extends State<Universalsearchscreen> {
}
return InkResponse(
onTap: () {
HapticFeedback.selectionClick();
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
......@@ -395,6 +401,7 @@ class _UniversalsearchscreenState extends State<Universalsearchscreen> {
}
return InkResponse(
onTap: () {
HapticFeedback.selectionClick();
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
......
......@@ -335,7 +335,9 @@ class _PaymentrequestionlistdetailsState
Expanded(
child: InkResponse(
onTap: () {
if (provider.Headings[j] == "Attachment") {
HapticFeedback.selectionClick();
Navigator.push(
context,
MaterialPageRoute(
......@@ -354,6 +356,7 @@ class _PaymentrequestionlistdetailsState
);
} else if (provider.Headings[j] ==
"Requested Account") {
HapticFeedback.selectionClick();
Navigator.push(
context,
MaterialPageRoute(
......@@ -428,6 +431,7 @@ class _PaymentrequestionlistdetailsState
Expanded(
child: InkResponse(
onTap: () {
HapticFeedback.selectionClick();
print(provider.requestsDetails.id);
_showLevelRejectionSheet(
context,
......@@ -461,6 +465,7 @@ class _PaymentrequestionlistdetailsState
Expanded(
child: InkResponse(
onTap: () {
HapticFeedback.selectionClick();
provider
.approveRejectPaymentRequestAPIFunction(
context,
......@@ -495,6 +500,7 @@ class _PaymentrequestionlistdetailsState
Expanded(
child: InkResponse(
onTap: () {
HapticFeedback.selectionClick();
provider
.approveRejectPaymentRequestAPIFunction(
context,
......
......@@ -2,6 +2,7 @@ import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
......@@ -94,7 +95,10 @@ class _FinancedashboardState extends State<Financedashboard> {
"assets/svg/finance/fin_accounts_ic.svg", //"
];
final paymentInitiationNames = ["Self", "Account List"];
final paymentInitiationSubtitles = ["Payment Requests", "Transactions Details"];
final paymentInitiationSubtitles = [
"Payment Requests",
"Transactions Details",
];
final paymentInitiationRoles = [668, 293];
final paymentAdministrationIcons = [
......@@ -118,9 +122,11 @@ class _FinancedashboardState extends State<Financedashboard> {
// "Ledgers, transactions, finance",
"Payment Requests",
];
final paymentAdministrationRoles = [666, 678, 673,
final paymentAdministrationRoles = [
666, 678, 673,
// 675,
667];
667,
];
// Extract role IDs from accessible pages
final roles = provider.accessiblePagesList.map((e) => e.id).toList();
......@@ -163,7 +169,7 @@ class _FinancedashboardState extends State<Financedashboard> {
return Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
appBar: appbarNew(context, "Finance",0xFFCEEDFF),
appBar: appbarNew(context, "Finance", 0xFFCEEDFF),
body: SizedBox(
child: SingleChildScrollView(
child: Column(
......@@ -171,15 +177,21 @@ class _FinancedashboardState extends State<Financedashboard> {
Container(
height: 200,
decoration: BoxDecoration(
image: DecorationImage(image: AssetImage(
image: DecorationImage(
image: AssetImage(
"assets/svg/finance/main_dashboard.png",
), fit: BoxFit.contain,),
gradient: LinearGradient(colors: [
),
fit: BoxFit.contain,
),
gradient: LinearGradient(
colors: [
Color(0xFFCEEDFF),
AppColors.scaffold_bg_color
],begin: Alignment.topCenter,end: Alignment.bottomCenter)
AppColors.scaffold_bg_color,
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
),
),
Container(
padding: EdgeInsets.symmetric(horizontal: 10),
......@@ -215,6 +227,7 @@ class _FinancedashboardState extends State<Financedashboard> {
return Expanded(
child: InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var navigate;
navigate = Allpaymentrequesitionlistsbymodes(
mode: approvalModes[co],
......@@ -293,6 +306,7 @@ class _FinancedashboardState extends State<Financedashboard> {
itemBuilder: (context, ini) {
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var navigate;
if (ini == 0) {
navigate = await Navigator.push(
......@@ -406,6 +420,7 @@ class _FinancedashboardState extends State<Financedashboard> {
itemBuilder: (context, ad) {
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var navigate;
if (ad == 0) {
navigate = await Navigator.push(
......@@ -483,8 +498,7 @@ class _FinancedashboardState extends State<Financedashboard> {
borderRadius: BorderRadius.circular(14),
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
......@@ -535,7 +549,8 @@ class _FinancedashboardState extends State<Financedashboard> {
},
),
],
SizedBox(height: 100,),
SizedBox(height: 100),
// ListView.builder(
// itemCount: pages.length,
// shrinkWrap: true,
......@@ -653,7 +668,6 @@ class _FinancedashboardState extends State<Financedashboard> {
// );
// },
// ),
],
),
),
......@@ -665,6 +679,7 @@ class _FinancedashboardState extends State<Financedashboard> {
FloatingActionButtonLocation.centerFloat,
floatingActionButton: InkResponse(
onTap: () {
HapticFeedback.selectionClick();
_showPaymentOptionsSheet(context);
},
child: Container(
......@@ -752,6 +767,7 @@ class _FinancedashboardState extends State<Financedashboard> {
];
return ListTile(
onTap: () async {
HapticFeedback.selectionClick();
var res;
if (provider
.accessiblePagesList2[index]
......@@ -856,9 +872,7 @@ class _FinancedashboardState extends State<Financedashboard> {
}
Navigator.pop(context);
},
leading: SvgPicture.asset(
icons[index],
),
leading: SvgPicture.asset(icons[index]),
title: Text(
"${pages2[index].pageName}",
style: TextStyle(
......
......@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/GlobalConstants.dart';
import 'package:generp/screens/finance/paymentDetailsPaymentRequisition.dart';
......@@ -109,6 +110,7 @@ class _PaymentlistpaymentrequisitionState
// ),
InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var cf = Commondaterangefilter();
var result = await cf.showFilterBottomSheet(context);
if (result != null) {
......@@ -164,6 +166,7 @@ class _PaymentlistpaymentrequisitionState
itemBuilder: (context, index) {
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var res = await Navigator.push(
context,
MaterialPageRoute(
......@@ -334,6 +337,7 @@ class _PaymentlistpaymentrequisitionState
];
return ListTile(
onTap: () {
HapticFeedback.selectionClick();
switch (index) {
case 0:
provider.copyToClipboard(context);
......
......@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/GlobalConstants.dart';
import 'package:generp/screens/finance/paymentReceiptDetails.dart';
......@@ -93,6 +94,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
// ),
InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var cf = Commondaterangefilter();
var result = await cf.showFilterBottomSheet(context);
if (result != null) {
......@@ -124,7 +126,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
),
],
),
0xFFFFFFFF
0xFFFFFFFF,
),
backgroundColor: AppColors.scaffold_bg_color,
body:
......@@ -146,6 +148,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
itemBuilder: (context, index) {
return InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var res = await Navigator.push(
context,
MaterialPageRoute(
......@@ -160,8 +163,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
),
),
);
if (routeSettingName ==
"Paymentreceiptdetails") {
if (routeSettingName == "Paymentreceiptdetails") {
debugPrint("prd");
provider.paymentsListAPI(context, '', '');
}
......@@ -194,7 +196,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
padding: EdgeInsets.all(3.0),
decoration: BoxDecoration(
color: AppColors.requested_bg_color,
shape: BoxShape.circle
shape: BoxShape.circle,
),
child: SvgPicture.asset(
"assets/svg/finance/rupee_ic.svg",
......@@ -311,6 +313,7 @@ class _PaymentreceiptlistState extends State<Paymentreceiptlist> {
];
return ListTile(
onTap: () {
HapticFeedback.selectionClick();
switch (index) {
case 0:
provider.copyToClipboard(context);
......
......@@ -293,6 +293,7 @@ class _SubmitpaymentrequestionlistsbymodeState
flex: 1,
child: InkResponse(
onTap: () async {
HapticFeedback.selectionClick();
var res = await Navigator.push(
context,
MaterialPageRoute(
......@@ -574,6 +575,7 @@ class _SubmitpaymentrequestionlistsbymodeState
InkResponse(
onTap: () {
HapticFeedback.selectionClick();
_showAttachmentSheet(context);
},
child: Container(
......@@ -759,6 +761,7 @@ class _SubmitpaymentrequestionlistsbymodeState
provider.submitClicked
? null
: () {
HapticFeedback.selectionClick();
provider.submitClicked = true;
provider.addPaymentRequestionSubmitAPI(
......
......@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.0.98+106
version: 1.0.99+107
environment:
sdk: ^3.7.2
......
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