Merge branch 'products_tails' into 'development_new_design_2.0'

Products tails

See merge request Cloud_Solution/diplomatic-quarter!557
merge-update-with-lab-changes
haroon amjad 4 years ago
commit d7de2d6802

@ -15,8 +15,8 @@ const PACKAGES_CUSTOMER = '/api/customers';
const PACKAGES_SHOPPING_CART = '/api/shopping_cart_items';
const PACKAGES_ORDERS = '/api/orders';
const PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara';
const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/';
// Pharmacy UAT URLs
// const BASE_PHARMACY_URL = 'https://uat.hmgwebservices.com/epharmacy/api/';

@ -57,7 +57,15 @@ class _FooterWidgetState extends State<FooterWidget> {
borderRadius: BorderRadius.all(
Radius.circular(0.0),
),
border: Border.all(color: Color(0xFF707070), width: 0),
boxShadow: [
BoxShadow(
color: Color(0xFFCCCCCC),
spreadRadius: 0,
blurRadius: 4,
offset: Offset(2, 2), // changes position of shadow
),
],
// border: Border.all(color: Color(0xFF707070), width: 0),
),
width: double.infinity,
height: quantityUI,
@ -219,12 +227,12 @@ class _FooterWidgetState extends State<FooterWidget> {
),
Container(
width: MediaQuery.of(context).size.width * 0.35,
margin: EdgeInsets.symmetric( vertical: 5.0),
child: SecondaryButton(
label: TranslationBase.of(context).addToCart,
disabled: (!widget.isAvailable && widget.quantity > 0) ||
widget.quantity > widget.quantityLimit ||
widget.item.isRx,
fontSize: 16,
disabled: isAddToCartDisable(),
fontSize: 15,
onTap: () async {
if (!authenticatedUserObject.isLogin) {
login();
@ -235,8 +243,9 @@ class _FooterWidgetState extends State<FooterWidget> {
model: widget.model);
},
fontWeight: FontWeight.w600,
borderColor: Color(0xFF4CAF50).withOpacity(0.7),
borderRadius: 6,
disableColor:Color(0xFFD6D6D6),
textColor: isAddToCartDisable()?Color(0xFFACACAC):Colors.white,
color: Color(0xFF535353),
),
),
@ -245,12 +254,13 @@ class _FooterWidgetState extends State<FooterWidget> {
),
Container(
width: MediaQuery.of(context).size.width * 0.35,
margin: EdgeInsets.symmetric( vertical: 5.0),
child: SecondaryButton(
label: TranslationBase.of(context).buyNow,
fontSize: 16,
disabled: (!widget.isAvailable && widget.quantity > 0) ||
(widget.quantity > widget.quantityLimit) ||
widget.item.isRx,
fontSize: 15,
disabled: isBuyNowDisable(),
onTap: () async {
if (!authenticatedUserObject.isLogin) {
login();
@ -261,15 +271,11 @@ class _FooterWidgetState extends State<FooterWidget> {
model: widget.model);
}
},
textColor: isBuyNowDisable()?Color(0xFFACACAC):Colors.white,
fontWeight: FontWeight.w600,
borderColor: Colors.grey[800].withOpacity(0.7),
borderRadius: 6,
disableColor: Colors.grey[700],
color: !widget.isAvailable && widget.quantity > 0 ||
widget.quantity > widget.quantityLimit ||
widget.item.isRx
? Color(0xFF535353).withOpacity(0.7)
: Color(0xFF5AB145),
disableColor: Color(0xFFD6D6D6),
color: Color(0xFF5AB145),
),
),
],
@ -280,6 +286,22 @@ class _FooterWidgetState extends State<FooterWidget> {
);
}
bool isBuyNowDisable(){
return (!widget.isAvailable && widget.quantity > 0) ||
(widget.quantity > widget.quantityLimit) ||
widget.item.isRx;
}
bool isAddToCartDisable(){
return (!widget.isAvailable && widget.quantity > 0) ||
widget.quantity > widget.quantityLimit ||
widget.item.isRx;
}
void setUserValues(value) async {
if (value != null) sharedPref.setObject(IMEI_USER_DATA, value);
}

@ -4,6 +4,9 @@ import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_mod
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
import 'package:diplomaticquarterapp/pages/offers_categorise_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lacum-activitaion-vida-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lacum-registration-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lakum-main-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/GridViewCard.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
@ -50,7 +53,7 @@ class _BannerPagerState extends State<BannerPager> {
(item, index) {
return InkWell(
onTap: () {
Navigator.push(context, FadePage(page: OffersCategorisePage()));
bannerNavigator(index);
},
child: Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
@ -93,4 +96,27 @@ class _BannerPagerState extends State<BannerPager> {
],
));
}
bannerNavigator(index){
switch(index) {
case 1: {
Navigator.push(context, FadePage(page: OffersCategorisePage()));
}
break;
case 2: {
Navigator.push(context, FadePage(page: LakumActivationVidaPage()));
}
break;
case 5: {
Navigator.push(context, FadePage(page: OffersCategorisePage()));
}
break;
default: {
}
break;
}
}
}

@ -11,12 +11,16 @@ import 'package:diplomaticquarterapp/widgets/input/text_field.dart';
import 'package:diplomaticquarterapp/widgets/others/StarRating.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_pharmacy_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import 'base/base_view.dart';
import 'package:intl/intl.dart' as international;
class SearchProductsPage extends StatefulWidget {
@override
@ -27,6 +31,8 @@ class _SearchProductsPageState extends State<SearchProductsPage> {
final textController = TextEditingController();
final _formKey = GlobalKey<FormState>();
String msg = '';
String validText="";
bool isTextValid = true;
@override
Widget build(BuildContext context) {
@ -55,47 +61,90 @@ class _SearchProductsPageState extends State<SearchProductsPage> {
width: MediaQuery.of(context).size.width * 0.70,
child: Form(
key: _formKey,
child: TextFields(
autoFocus: true,
hintText: TranslationBase.of(context).search,
fontSize: 14.5,
prefixIcon: Icon(Icons.search),
inputAction: TextInputAction.search,
inputFormatters: <TextInputFormatter>[
FilteringTextInputFormatter.allow(
RegExp(r'([A-Za-z0-9 a space])'))
],
validator: (value) {
RegExp regExp = RegExp(r'([A-Za-z0-9 a space])');
if (value.isEmpty) {
TranslationBase.of(context)
.pleaseEnterProductName;
} else if (!regExp.hasMatch(value)) {
AppToast.showErrorToast(
message: TranslationBase.of(context)
.noArabicLetters);
}
return null;
},
onSaved: (value) {
//searchMedicine(model, context);
},
onSubmit: (value) {
searchMedicine(model, context);
child: Column(
children: [
TextFields(
autoFocus: true,
hintText: TranslationBase.of(context).search,
fontSize: 14.5,
prefixIcon: Icon(Icons.search),
inputAction: TextInputAction.search,
validator: (value) {
RegExp regExp = RegExp(r'([A-Za-z0-9 a space])');
if (value.isEmpty) {
TranslationBase.of(context)
.pleaseEnterProductName;
} else if (isRTL(value)) {
AppToast.showErrorToast(
message: TranslationBase.of(context)
.noArabicLetters);
}
return null;
},
onChanged: (value){
if (value.isEmpty) {
TranslationBase.of(context)
.pleaseEnterProductName;
Future.delayed(const Duration(milliseconds: 10), (){
setState(() {
textController.text = "";
isTextValid = true;
});
})
;
} else if (isRTL(value)) {
Future.delayed(const Duration(milliseconds: 10), (){
setState(() {
textController.text = validText;
isTextValid = false;
});
})
;
}else{
Future.delayed(const Duration(milliseconds: 10), (){
setState(() {
textController.text = value;
validText = value;
isTextValid = true;
});
})
;
}
},
onSaved: (value) {
setState(() {
textController.text = validText;
isTextValid = false;
});
//searchMedicine(model, context);
},
onSubmit: (value) {
searchMedicine(model, context);
// msg = 'No Result Found';
msg = TranslationBase.of(context).noResultFound;
},
controller: textController,
// validator: (value) {
// if (value.isEmpty) {
//// return 'please Enter Product Name';
// return TranslationBase.of(context).pleaseEnterProductName;
// }
// return null;
// },
msg = TranslationBase.of(context).noResultFound;
},
controller: textController,
),
SizedBox(
width: 10.0,
),
if(!isTextValid)
AppText( TranslationBase.of(context)
.noArabicLetters, color: Colors.red,),
],
),
),
),
SizedBox(
width: 10.0,
),
@ -337,7 +386,9 @@ class _SearchProductsPageState extends State<SearchProductsPage> {
),
);
}
bool isRTL(String text) {
return international.Bidi.detectRtlDirectionality(text);
}
searchMedicine(PharmacyCategoriseViewModel model, BuildContext context) {
Utils.hideKeyboard(context);
if (_formKey.currentState.validate())

@ -200,9 +200,9 @@ class _SecondaryButtonState extends State<SecondaryButton>
width: MediaQuery.of(context).size.width * 2.2,
height: MediaQuery.of(context).size.width * 2.2,
decoration: BoxDecoration(
shape: BoxShape.circle,
// shape: BoxShape.circle,
color: widget.disabled
? Colors.grey
? widget.disableColor ?? Colors.grey
: widget.color ?? Theme.of(context).buttonColor,
),
),
@ -212,8 +212,8 @@ class _SecondaryButtonState extends State<SecondaryButton>
padding: widget.iconOnly
? EdgeInsets.symmetric(vertical: 4.0, horizontal: 5.0)
: EdgeInsets.only(
top: widget.small ? 8.0 : 14.0,
bottom: widget.small ? 6.0 : 14.0,
top: widget.small ? 8.0 : 12.0,
bottom: widget.small ? 6.0 : 12.0,
left: 18.0,
right: 18.0),
child: Stack(
@ -246,8 +246,10 @@ class _SecondaryButtonState extends State<SecondaryButton>
bottom: widget.small ? 4.0 : 3.0),
child: Text(
widget.label,
textAlign: TextAlign.center,
style: TextStyle(
color: widget.textColor,
fontSize: widget.small ? 12.0 : widget.fontSize??14.0,
fontWeight: FontWeight.w700,
fontFamily: projectViewModel.isArabic

@ -93,24 +93,22 @@ class _ProcedureListWidgetState extends State<ProcedureListWidget> {
historyInfo),
activeColor: Colors.red[800],
onChanged: (bool newValue) {
setState(() {
if (widget.isEntityListSelected(
historyInfo)) {
widget
.removeHistory(historyInfo);
} else {
widget.addHistory(historyInfo);
}
});
selectOption(historyInfo);
}),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: Texts(historyInfo.name,
variant: "bodyText",
bold: true,
color: Colors.black),
child: InkWell(
onTap:(){
selectOption(historyInfo);
},
child: Padding(
padding: const EdgeInsets.symmetric(
horizontal: 10, vertical: 0),
child: Texts(historyInfo.name,
variant: "bodyText",
bold: true,
color: Colors.black),
),
),
),
],
@ -142,6 +140,19 @@ class _ProcedureListWidgetState extends State<ProcedureListWidget> {
);
}
selectOption(historyInfo){
setState(() {
if (widget.isEntityListSelected(
historyInfo)) {
widget
.removeHistory(historyInfo);
} else {
widget.addHistory(historyInfo);
}
});
}
void filterSearchResults(String query) {
List<CategoriseParentModel> dummySearchList = List();
dummySearchList.addAll(widget.masterList);

Loading…
Cancel
Save