def post(self): self.response.headers['content-type'] = 'text/html' ButtonName = self.request.get('Button') FirstName = self.request.get('FirstName') LastName = self.request.get('LastName') userEmail = self.request.get('userEmail') Contact = self.request.get('Contact') Query = self.request.get('Query') FormSubmittedOn = datetime.now().strftime("%d/%m/%Y at %H:%M:%S") ContactUsDBConnect = ContactUsDB(userEmail=userEmail) ContactUsDBConnect.FirstName = FirstName ContactUsDBConnect.LastName = LastName ContactUsDBConnect.Contact = Contact ContactUsDBConnect.Query = Query ContactUsDBConnect.FormSubmittedOn = FormSubmittedOn ContactUsDBConnect.put() SendEmail( userEmail, "Your query was successfully submitted to MediCare team", """ Dear """ + FirstName + """, This is an automated email sent as a confirmation for your submitted query. Your query : """ + Query + """ Your query has been recorded and sent to the concerned team for further action. Our team will get back to you regarding the same as soon as possible. Thanks & regards, MediCare Team. """) SendEmail( "*****@*****.**", "Someone have contacted by filling form on contact us page", """ Hi Team, This is an automated email sent as someone have contacted you using form on contact us page. User details are: First Name : """ + FirstName + """ Last Name : """ + LastName + """ Email : """ + userEmail + """ Contact : +353-""" + Contact + """ User query : """ + Query + """ Please respond to user as soon as possible or within 48 hours for better customer experience. Thank you. """) self.redirect("/ContactUs?notification=FormSubmittedSuccessfully")
def post(self): self.response.headers['content-type'] = 'text/html' ButtonName = self.request.get('Button') RegisteredAs = self.request.get('RegisteredAs') ResetStatus = self.request.get('ResetStatus') FromPage = self.request.get('FromPage') if(ButtonName == "ResetPasswordButton"): Password = self.request.get('Password_New') Password_Repeat = self.request.get('Password_New_Repeat') if(RegisteredAs == "User"): Email = self.request.get('Email') DBConnect = ndb.Key('UsersDB',Email).get() if(DBConnect != None and ResetStatus == hashlib.md5(DBConnect.user_Password.encode()).hexdigest() and DBConnect.ResetPasswordLinkSent == 1): if(Password == Password_Repeat): DBConnect.user_Password = Password DBConnect.ResetPasswordLinkSent = 0 DBConnect.put() SendEmail(Email,"Password of your MediCare account was recently changed",""" Dear """+DBConnect.user_FirstName+""", This is an automated email sent to you in regards of your MediCare account. It is to inform you that the password of your MediCare account has been recently changed. Thanks & regards, MediCare Team. """) self.redirect(FromPage+'?notification=PasswordResetSuccessful') else: self.redirect("/ResetPassword?RegisteredAs="+RegisteredAs+"&userEmail="+Email+"&FromPage="+FromPage+"&ResetStatus="+hashlib.md5(DBConnect.user_Password.encode()).hexdigest()+"¬ification=PasswordMissmatch") else: self.redirect(FromPage+'?notification=InvalidPasswordResetLink') elif(RegisteredAs == "Staff" or RegisteredAs == "Pharmacist"): Email = self.request.get('Email') DBConnect = ndb.Key('VendorsDB',Email).get() if(DBConnect != None and ResetStatus == hashlib.md5(DBConnect.Password.encode()).hexdigest() and DBConnect.ResetPasswordLinkSent == 1): if(Password == Password_Repeat): DBConnect.Password = Password DBConnect.ResetPasswordLinkSent = 0 DBConnect.put() SendEmail(Email,"Password of your MediCare's vendor account was recently changed",""" Dear """+DBConnect.FirstName+""", This is an automated email sent to you in regards of your MediCare account. It is to inform you that the password of your MediCare account has been recently changed. Thanks & regards, MediCare Team. """) self.redirect(FromPage+'?notification=PasswordResetSuccessful') else: self.redirect("/ResetPassword?RegisteredAs="+RegisteredAs+"&vendorEmail="+Email+"&FromPage="+FromPage+"&ResetStatus="+hashlib.md5(DBConnect.Password.encode()).hexdigest()+"¬ification=PasswordMissmatch") else: self.redirect(FromPage+'?notification=InvalidPasswordResetLink')
def post(self): self.response.headers['content-type'] = 'text/html' WebPageLink = "https://medicare-287205.nw.r.appspot.com" Button = self.request.get("Button") vendorEmail = self.request.get("vendorEmail") if(vendorEmail != ""): VendorsDBConnect = ndb.Key("VendorsDB",vendorEmail).get() if(Button == "EditProfile"): EditMode = self.request.get('EditMode') if(EditMode == "On"): self.redirect('/VendorHomePage?vendorEmail='+vendorEmail) else: self.redirect('/VendorHomePage?vendorEmail='+vendorEmail+'&EditMode=On') elif(Button == "Update"): FirstName = self.request.get('FirstName_New') LastName = self.request.get('LastName_New') Contact = self.request.get('Contact_New') Address = self.request.get('Address_New') if(VendorsDBConnect != None): VendorsDBConnect.FirstName = FirstName VendorsDBConnect.LastName = LastName VendorsDBConnect.Contact = Contact VendorsDBConnect.Address = Address VendorsDBConnect.put() self.redirect('/VendorHomePage?vendorEmail='+vendorEmail+'¬ification=ProfileUpdated') else: self.redirect('/VendorHomePage?vendorEmail='+vendorEmail+'¬ification=InvalidProfile') elif(Button == "ChangePassword"): if(VendorsDBConnect != None): SendEmail(vendorEmail,"Reset password for your MediCare's vendor account",""" Dear """+VendorsDBConnect.FirstName+""", This is an automated email sent to reset password of your MediCare account. Click on below link to reset your password: """+WebPageLink+"""/ResetPassword?RegisteredAs="""+VendorsDBConnect.RegisteredAs+"""&vendorEmail="""+vendorEmail+"""&FromPage=/VendorSignIn&ResetStatus="""+hashlib.md5(VendorsDBConnect.Password.encode()).hexdigest()+""" In case above link doesn't work, copy and paste the same in url bar of your browser. Thanks & regards, MediCare Team. """) VendorsDBConnect.ResetPasswordLinkSent = 1 VendorsDBConnect.put() self.redirect('/VendorSignIn?notification=PasswordResetLinkSent') elif(Button == "DeleteProfile"): VendorsDBConnect.key.delete() self.redirect('/VendorSignIn?¬ification=VendorProfileDeleted') else: self.redirect('/VendorSignIn')
def post(self): self.response.headers['content-type'] = 'text/html' userEmail = self.request.get('userEmail') Button = self.request.get('Button') if (Button == "EditButton"): self.redirect('/Profile?userEmail=' + userEmail + '&Mode=Edit') elif (Button == "UpdateButton"): FirstName = self.request.get('FirstName') LastName = self.request.get('LastName') Email = self.request.get('userEmail') Contact = self.request.get('Contact') Address = self.request.get('Address') DBConnect = ndb.Key('UsersDB', Email).get() if (DBConnect != None): API_Key = "AIzaSyDvLc7SvzpX6KP6HCfn033xNKaM8UH3e2w" params = {"address": Address, "key": API_Key} GoogleAPI = "https://maps.googleapis.com/maps/api/geocode/json" url_params = urlencode(params) url = GoogleAPI + "?" + url_params result = urlfetch.fetch(url=url, method=urlfetch.POST, headers=params) Latitude = json.loads( result.content )['results'][0]['geometry']['location']['lat'] Longitude = json.loads( result.content )['results'][0]['geometry']['location']['lng'] DBConnect.user_FirstName = FirstName DBConnect.user_LastName = LastName DBConnect.user_Contact = Contact DBConnect.user_Address = Address DBConnect.Latitude = Latitude DBConnect.Longitude = Longitude DBConnect.put() SendEmail( Email, "Congratulations! Your MediCare account details are updated successfully", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email confirmation sent to you in regards of successful updation of your MediCare account. Thanks & regards, MediCare Team. """) self.redirect('/Profile?userEmail=' + userEmail + '¬ification=ProfileUpdatedSuccessfully') else: self.redirect('/Profile?userEmail=' + userEmail + '¬ification=ProfileUpdatationFailed') else: self.redirect('/Profile?userEmail=' + userEmail)
def post(self): self.response.headers['content-type'] = 'text/html' userEmail = self.request.get("userEmail") if (userEmail != ""): UserDetails = ndb.Key('UsersDB', userEmail).get() Latitude1 = 0.0 Longitude2 = 0.0 if (UserDetails == None): self.redirect( '/UserSignIn?notification=EmailIdNotRegisteredOrInActive') elif (UserDetails != None and UserDetails.IsActive == 0): self.redirect( '/UserSignIn?notification=EmailIdNotRegisteredOrInActive') elif (UserDetails != None and UserDetails.IsActive == 1): Latitude1 = UserDetails.Latitude Longitude1 = UserDetails.Longitude CartData = ndb.Key("CartDB", userEmail).get() if (CartData != None): UserComments = self.request.get("UserComments") OrderType = self.request.get('OrderType') CartData.UserComments = UserComments Quantity = [] PharmacyID = [] UniquePharmacy = [] Price = [] DeliveryCharge = 0.00 ServiceCharge = 0.00 CartTotal = 0.00 Valid = True if (CartData.PrescriptionRequired == 1): Images = self.get_uploads()[0] PrescriptionImage = get_serving_url(Images.key()) CartData.PrescriptionImage = PrescriptionImage for i in range(0, len(CartData.ProductID)): Key1 = "Quantity" + CartData.ProductID[i] if (self.request.get(Key1) == ""): self.redirect( '/ShoppingCart?userEmail=' + UserDetails.user_Email + '¬ification=InvalidQuantityOrPharmacyName') Valid = False break else: Quantity.append(int(self.request.get(Key1))) Key2 = "PharmacyName" + CartData.ProductID[i] if (self.request.get(Key2) == ""): self.redirect( '/ShoppingCart?userEmail=' + UserDetails.user_Email + '¬ification=InvalidQuantityOrPharmacyName') Valid = False break else: PharmacyID.append(self.request.get(Key2)) if (OrderType != ""): if (Valid == True): CartData.Quantity = Quantity CartData.PharmacyID = PharmacyID CartData.OrderType = OrderType if (OrderType == "Delivery"): for i in range(0, len(CartData.PharmacyID)): VPData = ndb.Key( "VendorProductsDB", CartData.PharmacyID[i] + "" + CartData.ProductID[i]).get() Price.append(VPData.Price) CartTotal = CartTotal + ( VPData.Price * CartData.Quantity[i]) if (CartData.PharmacyID[i] not in UniquePharmacy): UniquePharmacy.append( CartData.PharmacyID[i]) for i in UniquePharmacy: PharmacyData = ndb.Key("PharmacyDB", i).get() if (PharmacyData != None): Latitude2 = PharmacyData.Latitude Longitude2 = PharmacyData.Longitude DifferenceInLatitude = radians( Latitude2 - Latitude1) DifferenceInLongitude = radians( Longitude2 - Longitude1) Formula = (sin( DifferenceInLatitude / 2 )**2) + cos(radians(Latitude1)) * cos( radians(Latitude2)) * (sin( DifferenceInLongitude / 2)**2) Result = 6373.0 * 2 * atan2( sqrt(Formula), sqrt(1 - Formula)) if (round(Result, 3) <= 1.5): DeliveryCharge = DeliveryCharge + 1.00 elif (round(Result, 3) > 1.5 and round(Result, 3) <= 3.0): DeliveryCharge = DeliveryCharge + 2.00 elif (round(Result, 3) > 3.0 and round(Result, 3) <= 4.5): DeliveryCharge = DeliveryCharge + 3.00 elif (round(Result, 3) > 4.5 and round(Result, 3) <= 6.0): DeliveryCharge = DeliveryCharge + 4.00 else: DeliveryCharge = DeliveryCharge + 5.00 ServiceCharge = 1.00 else: for i in range(0, len(CartData.PharmacyID)): VPData = ndb.Key( "VendorProductsDB", CartData.PharmacyID[i] + "" + CartData.ProductID[i]).get() Price.append(VPData.Price) CartTotal = CartTotal + ( VPData.Price * CartData.Quantity[i]) CartData.Price = Price CartData.DeliveryCharge = DeliveryCharge CartData.ServiceCharge = ServiceCharge CartTotal = CartTotal + DeliveryCharge + ServiceCharge CartData.CartTotal = CartTotal CartData.put() # Now placing request in orders for review. OrderID = datetime.now().strftime("%Y%m%d%H%M%S") OrderPlacedOn = datetime.now().strftime( "%d/%m/%Y at %H:%M:%S") UniquePharmacyID = [] for i in range(0, len(CartData.PharmacyID)): if (CartData.PharmacyID[i] not in UniquePharmacyID): UniquePharmacyID.append( CartData.PharmacyID[i]) for i in range(0, len(UniquePharmacyID)): OrdersConnect = OrdersDB(userEmail=userEmail) OrdersConnect.OrderID = OrderID OrdersConnect.OrderType = CartData.OrderType OrdersConnect.PharmacyID = UniquePharmacyID[i] PharmacyData = ndb.Key( "PharmacyDB", UniquePharmacyID[i]).get() PR = 0 DC = 0.00 if (PharmacyData != None and CartData.OrderType == "Delivery"): Latitude2 = PharmacyData.Latitude Longitude2 = PharmacyData.Longitude DifferenceInLatitude = radians(Latitude2 - Latitude1) DifferenceInLongitude = radians( Longitude2 - Longitude1) Formula = (sin( DifferenceInLatitude / 2)**2) + cos(radians(Latitude1)) * cos( radians(Latitude2)) * (sin( DifferenceInLongitude / 2)**2) Result = 6373.0 * 2 * atan2( sqrt(Formula), sqrt(1 - Formula)) if (round(Result, 3) <= 1.5): DC = 1.00 elif (round(Result, 3) > 1.5 and round(Result, 3) <= 3.0): DC = 2.00 elif (round(Result, 3) > 3.0 and round(Result, 3) <= 4.5): DC = 3.00 elif (round(Result, 3) > 4.5 and round(Result, 3) <= 6.0): DC = 4.00 else: DC = 5.00 OrdersConnect.OrderTotal = 0.00 for j in range(0, len(CartData.ProductID)): PD = ndb.Key("ProductsDB", CartData.ProductID[j]).get() if (UniquePharmacyID[i] == CartData.PharmacyID[j] and PD.PrescriptionRequired == 1 and PR == 0): PR = 1 OrdersConnect.PrescriptionImage = CartData.PrescriptionImage elif (UniquePharmacyID[i] == CartData.PharmacyID[j] and PD.PrescriptionRequired == 0 and PR == 0): PR = 0 if (UniquePharmacyID[i] == CartData.PharmacyID[j]): OrdersConnect.ProductID.append( CartData.ProductID[j]) OrdersConnect.Price.append( CartData.Price[j]) OrdersConnect.Quantity.append( CartData.Quantity[j]) OrdersConnect.OrderTotal = OrdersConnect.OrderTotal + ( CartData.Quantity[j] * CartData.Price[j]) OrdersConnect.PrescriptionRequired = PR OrdersConnect.DeliveryCharge = DC OrdersConnect.OrderTotal = OrdersConnect.OrderTotal + DC + CartData.ServiceCharge OrdersConnect.ServiceCharge = CartData.ServiceCharge OrdersConnect.OrderPlacedOn = OrderPlacedOn OrdersConnect.UserComments = CartData.UserComments OrdersConnect.GrandTotal = CartData.CartTotal OrdersConnect.GrandDC = CartData.DeliveryCharge OrdersConnect.OrderStatus = "Active" OrdersConnect.OrderSubStatus = "Reviewing" OrdersConnect.put() SendEmail( userEmail, "Your order has been successfully submitted for reviewing at MediCare", """ Dear """ + UserDetails.user_FirstName + """, This is an automated email confirmation sent to you in regards of your recently placed order at MediCare. Your order has been successfully placed on """ + OrderPlacedOn + """. You can view the same in "My Orders" tab after logging into your MediCare account. Please note your Order ID : """ + OrderID + """ for the reference. Thanks & regards, MediCare Team. """) CartData.key.delete() self.redirect('/?userEmail=' + UserDetails.user_Email) else: self.redirect( '/ShoppingCart?userEmail=' + UserDetails.user_Email + '¬ification=InvalidQuantityOrPharmacyName') else: self.redirect('/ShoppingCart?userEmail=' + UserDetails.user_Email + '¬ification=InvalidOrderType') else: self.redirect('/ShoppingCart?userEmail=' + UserDetails.user_Email) else: self.redirect('/UserSignIn') else: self.redirect('/UserSignIn')
def post(self): self.response.headers['content-type'] = 'text/html' SignInAs = self.request.get("SignInAs") userEmail = self.request.get("userEmail") vendorEmail = self.request.get("vendorEmail") if (SignInAs == "Vendor" and vendorEmail != ""): VendorDetails = ndb.Key('VendorsDB', vendorEmail).get() if (VendorDetails != None and VendorDetails.IsActive == 0): self.redirect( '/VendorSignIn?notification=EmailIdNotRegisteredOrInActive' ) elif (VendorDetails == None): self.redirect( '/VendorSignIn?notification=EmailIdNotRegisteredOrInActive' ) elif (VendorDetails != None and VendorDetails.IsActive == 1): Button = self.request.get('Button') PharmacyID = VendorDetails.PharmacyID OrderID = self.request.get('OrderID') userEmail = self.request.get('userEmail') VendorComments = self.request.get("VendorComments") OrderDetails = OrdersDB.query( OrdersDB.OrderID == OrderID, OrdersDB.PharmacyID == PharmacyID, OrdersDB.userEmail == userEmail).get() if (OrderDetails != None and Button == "SubmitForPayment"): Quantity = [] OrderTotal = 0.00 for i in range(0, len(OrderDetails.ProductID)): Key = "Quantity" + str(OrderDetails.ProductID[i]) Q = self.request.get(Key) Quantity.append(int(Q)) OrderTotal = OrderTotal + (int(Q) * OrderDetails.Price[i]) OrderTotal = OrderTotal + OrderDetails.DeliveryCharge + OrderDetails.ServiceCharge OrderDetails.Quantity = Quantity OrderDetails.VendorComments = VendorComments OrderDetails.OrderTotal = OrderTotal self.response.write(OrderTotal) if (len(OrderDetails.ProductID) != 0): OrderDetails.OrderSubStatus = "PaymentRequired" OrderDetails.put() SendEmail( OrderDetails.userEmail, "Your order uploaded with Prescreption requires payment", """ Dear """ + OrderDetails.userEmail + """, This is an automated email confirmation sent to you in regards of your placed order at MediCare. Your order (""" + OrderDetails.OrderID + """) requires payment to proceed further. You can make payment by loging into your MediCare account and by viewing the order number. Thanks & regards, MediCare Team. """) self.redirect( '/ViewOrderDetails?SignInAs=Vendor&vendorEmail=' + VendorDetails.Email + '&OrderID=' + OrderDetails.OrderID) elif (OrderDetails != None and Button == "CancelOrder"): OrderDetails.VendorComments = VendorComments OrderDetails.DeliveryCharge = 0.0 OrderDetails.ServiceCharge = 0.0 OrderDetails.OrderTotal = 0.0 for i in range(0, len(OrderDetails.Quantity)): OrderDetails.Quantity[i] = 0 OrderDetails.OrderStatus = "Completed" OrderDetails.OrderSubStatus = "CancelledByVendor" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() SendEmail( OrderDetails.userEmail, "Your order has been cancelled by Vendor", """ Dear MediCare User, This is an automated email confirmation sent to you in regards of your placed order at MediCare. Your whole order (""" + OrderDetails.OrderID + """) or a part of this order has been cancelled by vendor. You can view the same in "My Orders" tab after logging into your MediCare account. In case you are able to view same order id in Active Order, this may be due to the fact few items from the whole order are still under consideration. Thanks & regards, MediCare Team. """) self.redirect( '/ViewOrderDetails?SignInAs=Vendor&vendorEmail=' + VendorDetails.Email + '&OrderID=' + OrderDetails.OrderID) elif (OrderDetails != None and Button == "MarkPacking"): OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "PackingInProgress" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() self.redirect('/VendorOrders?vendorEmail=' + VendorDetails.Email) elif (OrderDetails != None and Button == "MarkPacked"): OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "ProductPacked" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() self.redirect('/VendorOrders?vendorEmail=' + VendorDetails.Email) elif (OrderDetails != None and Button == "OutForDelivery" and OrderDetails.OrderType == "Delivery"): OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "OutForDelivery" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() self.redirect('/VendorOrders?vendorEmail=' + VendorDetails.Email) elif (OrderDetails != None and Button == "ReadyForCollection" and OrderDetails.OrderType == "Collection"): OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "ReadyForCollection" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() self.redirect('/VendorOrders?vendorEmail=' + VendorDetails.Email) elif ( OrderDetails != None and (Button == "MarkDelivered" or Button == "MarkCollected")): OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "OrderComplete" OrderDetails.OrderStatus = "Completed" OrderDetails.StatusChangedBy = VendorDetails.Email OrderDetails.put() SendEmail( OrderDetails.userEmail, "Your order has been successfully completed", """ Dear MediCare User, This is an automated email confirmation sent to you in regards of your placed order at MediCare. Your order (""" + OrderDetails.OrderID + """) has been successfully complete. You can view the same in "My Orders" tab after logging into your MediCare account. In case you are able to view same order id in Active Order, this may be due to the fact few items from the whole order are still yet to be delivered. Thanks & regards, MediCare Team. """) self.redirect('/VendorOrders?vendorEmail=' + VendorDetails.Email) elif (OrderDetails != None and Button == "AskUserToUpload"): VendorComments = self.request.get("VendorComments1") OrderDetails.VendorComments = VendorComments OrderDetails.OrderSubStatus = "ReUploadPrescription" OrderDetails.put() self.redirect( '/ViewOrderDetails?SignInAs=Vendor&vendorEmail=' + VendorDetails.Email + '&OrderID=' + OrderDetails.OrderID) else: self.redirect( '/ViewOrderDetails?SignInAs=Vendor&vendorEmail=' + VendorDetails.Email + '&OrderID=' + OrderDetails.OrderID) elif (SignInAs == "User" and userEmail != ""): Button = self.request.get('Button') OrderID = self.request.get('OrderID') OrderDetails = OrdersDB.query( OrdersDB.OrderID == OrderID, OrdersDB.userEmail == userEmail).fetch() if (OrderDetails != [] and Button == "UploadPrescription"): PrescriptionImage = self.get_uploads()[0] PrescriptionImage = get_serving_url(PrescriptionImage.key()) for i in range(0, len(OrderDetails)): if (OrderDetails[i].PrescriptionRequired == 1 and OrderDetails[i].OrderSubStatus == "ReUploadPrescription"): OrderDetails[i].PrescriptionImage = PrescriptionImage OrderDetails[i].OrderSubStatus = "Reviewing" OrderDetails[i].put() self.redirect('/ViewOrderDetails?SignInAs=User&userEmail=' + userEmail + '&OrderID=' + OrderDetails[0].OrderID) elif (OrderDetails != [] and Button == "CancelOrder"): for i in range(0, len(OrderDetails)): OrderDetails[i].DeliveryCharge = 0.0 OrderDetails[i].ServiceCharge = 0.0 OrderDetails[i].OrderTotal = 0.0 for j in range(0, len(OrderDetails[i].Quantity)): OrderDetails[i].Quantity[j] = 0 OrderDetails[i].OrderStatus = "Completed" OrderDetails[i].OrderSubStatus = "CancelledByCustomer" OrderDetails[i].put() SendEmail( userEmail, "You have cancelled your order at MediCare", """ Dear MediCare User, This is an automated email confirmation sent to you in regards of your placed order at MediCare. Your whole order (""" + OrderDetails[0].OrderID + """) has been cancelled by you. You can view the same in "My Orders" tab after logging into your MediCare account. Thanks & regards, MediCare Team. """) self.redirect('/MyOrders?userEmail=' + userEmail) elif (OrderDetails != [] and Button == "Pay"): for i in range(0, len(OrderDetails)): if (OrderDetails[i].OrderStatus != "Completed"): OrderDetails[i].OrderSubStatus = "PaymentSuccessful" OrderDetails[i].put() self.redirect('/ViewOrderDetails?SignInAs=User&userEmail=' + userEmail + '&OrderID=' + OrderDetails[0].OrderID) else: self.redirect('/')
def post(self): self.response.headers['content-type'] = 'text/html' WebPageLink = "https://medicare-287205.nw.r.appspot.com/" ButtonName = self.request.get('Button') if (ButtonName == "SignInButton"): vendorEmail = self.request.get('vendorEmail') vendorPassword = self.request.get('vendorPassword') DBConnect = ndb.Key('VendorsDB', vendorEmail).get() if (DBConnect != None): if (DBConnect.Password == vendorPassword and DBConnect.IsActive == 1): self.redirect('/VendorHomePage?vendorEmail=' + vendorEmail) elif (DBConnect.Password != vendorPassword and DBConnect.IsActive == 1): self.redirect( '/VendorSignIn?notification=PasswordMissmatch') elif (DBConnect.Password == vendorPassword and DBConnect.IsActive == 0): self.redirect('/VendorSignIn?notification=VendorInActive') else: self.redirect( '/VendorSignIn?notification=EmailIdNotRegistered') elif (ButtonName == "SignUpButton"): PharmacyID = self.request.get('PharmacyID') FirstName = self.request.get('FirstName') LastName = self.request.get('LastName') Email = self.request.get('vendorEmail_SU') Password = self.request.get('vendorPassword_SU') Contact = self.request.get('Contact') Address = self.request.get('Address') Gender = self.request.get('Gender') DOB = self.request.get('DOB') RegisteredAs = self.request.get('RegisteredAs') DBConnect_Pharmacy = ndb.Key('PharmacyDB', PharmacyID).get() if (DBConnect_Pharmacy != None): if (DBConnect_Pharmacy.IsActive == 1): if (DBConnect_Pharmacy.EmailVerified == 1): DBConnect = ndb.Key('VendorsDB', Email).get() if (DBConnect == None): DBConnect = VendorsDB(id=Email) DBConnect.PharmacyID = PharmacyID DBConnect.FirstName = FirstName DBConnect.LastName = LastName DBConnect.Email = Email DBConnect.Password = Password DBConnect.Contact = Contact DBConnect.Address = Address DBConnect.Gender = Gender DBConnect.DOB = DOB DBConnect.RegisteredAs = RegisteredAs DBConnect.EmailVerified = 0 DBConnect.ResetPasswordLinkSent = 0 DBConnect.IsActive = 1 DBConnect.put() SendEmail( Email, "Congratulations! Your MediCare's vendor account has been setup", """ Dear """ + DBConnect.FirstName + """, This is an automated email confirmation sent to you in regards of your MediCare account. Your MediCare account has been registered as : '""" + RegisteredAs + """' for vendor : """ + DBConnect_Pharmacy.PharmacyName + """ Please click on below link to verify your Email Id: """ + WebPageLink + """VerifyEmail?RegisteredAs=""" + RegisteredAs + """&vendorEmail=""" + Email + """&VerifyStatus=""" + hashlib.md5(Password.encode()).hexdigest() + """ Thanks & regards, MediCare Team. """) self.redirect( '/VendorSignIn?notification=VendorSuccessfullyRegistered' ) else: self.redirect( '/VendorSignIn?notification=EmailAlreadyRegistered' ) else: self.redirect( '/VendorSignIn?notification=EmailIdNotVerified') else: self.redirect('/VendorSignIn?notification=VendorNotActive') else: self.redirect('/VendorSignIn?notification=InvalidPharmacyID') elif (ButtonName == "ForgotPasswordButton"): Email = self.request.get('vendorEmail_FP') DBConnect = ndb.Key('VendorsDB', Email).get() if (DBConnect != None): SendEmail( Email, "Reset password for your MediCare's vendor account", """ Dear """ + DBConnect.FirstName + """, This is an automated email sent to reset password of your MediCare account. Click on below link to reset your password: """ + WebPageLink + """ResetPassword?RegisteredAs=""" + DBConnect.RegisteredAs + """&vendorEmail=""" + Email + """&FromPage=/VendorSignIn&ResetStatus=""" + hashlib.md5(DBConnect.Password.encode()).hexdigest() + """ In case above link doesn't work, copy and paste the same in url bar of your browser. Thanks & regards, MediCare Team. """) DBConnect.ResetPasswordLinkSent = 1 DBConnect.put() self.redirect( '/VendorSignIn?notification=PasswordResetLinkSent') else: self.redirect( '/VendorSignIn?notification=EmailIdNotRegistered')
def post(self): self.response.headers['content-type'] = 'text/html' WebPageLink = "https://medicare-287205.nw.r.appspot.com/" ButtonName = self.request.get('Button') if (ButtonName == "SignInButton"): userEmail = self.request.get('userEmail') userPassword = self.request.get('userPassword') DBConnect = ndb.Key('UsersDB', userEmail).get() if (DBConnect != None and DBConnect.IsActive == 1): if (DBConnect.user_Password == userPassword): self.redirect('/?userEmail=' + userEmail) else: self.redirect('/UserSignIn?notification=PasswordMissmatch') else: self.redirect( '/UserSignIn?notification=EmailIdNotRegisteredOrInActive') elif (ButtonName == "SignUpButton"): FirstName = self.request.get('FirstName') LastName = self.request.get('LastName') Email = self.request.get('userEmail_SU') Password = self.request.get('userPassword_SU') Contact = self.request.get('Contact') Address = self.request.get('Address') Gender = self.request.get('Gender') DOB = self.request.get('DOB') DBConnect = ndb.Key('UsersDB', Email).get() if (DBConnect == None): API_Key = "AIzaSyDvLc7SvzpX6KP6HCfn033xNKaM8UH3e2w" params = {"address": Address, "key": API_Key} GoogleAPI = "https://maps.googleapis.com/maps/api/geocode/json" url_params = urlencode(params) url = GoogleAPI + "?" + url_params result = urlfetch.fetch(url=url, method=urlfetch.POST, headers=params) Latitude = json.loads( result.content )['results'][0]['geometry']['location']['lat'] Longitude = json.loads( result.content )['results'][0]['geometry']['location']['lng'] DBConnect = UsersDB(id=Email) DBConnect.user_FirstName = FirstName DBConnect.user_LastName = LastName DBConnect.user_Email = Email DBConnect.user_Password = Password DBConnect.user_Contact = Contact DBConnect.user_Address = Address DBConnect.Latitude = Latitude DBConnect.Longitude = Longitude DBConnect.user_Gender = Gender DBConnect.user_DOB = DOB DBConnect.EmailVerified = 0 DBConnect.ResetPasswordLinkSent = 0 DBConnect.IsActive = 1 DBConnect.put() SendEmail( Email, "Congratulations! Your MediCare account has been setup", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email confirmation sent to you in regards of your MediCare account. Please click on below link to verify your Email Id: """ + WebPageLink + """VerifyEmail?RegisteredAs=User&userEmail=""" + Email + """&VerifyStatus=""" + hashlib.md5(DBConnect.user_Password.encode()).hexdigest() + """ Thanks & regards, MediCare Team. """) self.redirect( '/UserSignIn?notification=UserSuccessfullyRegistered') else: self.redirect( '/UserSignIn?notification=EmailAlreadyRegistered') elif (ButtonName == "ForgotPasswordButton"): Email = self.request.get('userEmail_FP') DBConnect = ndb.Key('UsersDB', Email).get() if (DBConnect != None): SendEmail( Email, "Reset password for your MediCare account", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email sent to reset password of your MediCare account. Click on below link to reset your password: """ + WebPageLink + """ResetPassword?RegisteredAs=User&userEmail=""" + Email + """&FromPage=/UserSignIn&ResetStatus=""" + hashlib.md5(DBConnect.user_Password.encode()).hexdigest() + """ In case above link doesn't work, copy and paste the same in url bar of your browser. Thanks & regards, MediCare Team. """) DBConnect.ResetPasswordLinkSent = 1 DBConnect.put() self.redirect('/UserSignIn?notification=PasswordResetLinkSent') else: self.redirect('/UserSignIn?notification=EmailIdNotRegistered')
def post(self): self.response.headers['Content-Type'] = 'application/json' WebPageLink = "https://medicare-287205.nw.r.appspot.com/" JD = json.loads(self.request.body) ResponseData = {} FunctionOption = JD["function"] userEmail = JD["userEmail"] if (userEmail != "" and userEmail != None): DBConnect = ndb.Key('UsersDB', userEmail).get() # Below is code for SignUp. if (FunctionOption == "SignUp" and DBConnect == None): API_Key = "AIzaSyDvLc7SvzpX6KP6HCfn033xNKaM8UH3e2w" params = {"address": JD["Address"], "key": API_Key} GoogleAPI = "https://maps.googleapis.com/maps/api/geocode/json" url_params = urlencode(params) url = GoogleAPI + "?" + url_params result = urlfetch.fetch(url=url, method=urlfetch.POST, headers=params) Latitude = json.loads( result.content)['results'][0]['geometry']['location']['lat'] Longitude = json.loads( result.content)['results'][0]['geometry']['location']['lng'] DBConnect = UsersDB(id=userEmail) DBConnect.user_FirstName = JD["FirstName"] DBConnect.user_LastName = JD["LastName"] DBConnect.user_Email = userEmail DBConnect.user_Password = JD["Password"] DBConnect.user_Contact = JD["Contact"] DBConnect.user_Address = JD["Address"] DBConnect.Latitude = Latitude DBConnect.Longitude = Longitude DBConnect.user_Gender = JD["Gender"] DBConnect.user_DOB = JD["DOB"] DBConnect.EmailVerified = 0 DBConnect.ResetPasswordLinkSent = 0 DBConnect.IsActive = 1 DBConnect.put() SendEmail( userEmail, "Congratulations! Your MediCare account has been setup", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email confirmation sent to you in regards of your MediCare account. Please click on below link to verify your Email Id: """ + WebPageLink + """VerifyEmail?RegisteredAs=User&userEmail=""" + userEmail + """&VerifyStatus=""" + hashlib.md5(DBConnect.user_Password.encode()).hexdigest() + """ Thanks & regards, MediCare Team. """) ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserSuccessfullyRegistered" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "SignUp" and DBConnect != None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserAlreadyRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for SignIn. elif (FunctionOption == "SignIn" and DBConnect != None): userPassword = JD["Password"] if (DBConnect.IsActive == 1): if (DBConnect.user_Password == userPassword): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "SuccessfulSignIn" ResponseData['FirstName'] = DBConnect.user_FirstName ResponseData['LastName'] = DBConnect.user_LastName ResponseData['Contact'] = DBConnect.user_Contact ResponseData['Address'] = DBConnect.user_Address ResponseData['Gender'] = DBConnect.user_Gender ResponseData['DOB'] = DBConnect.user_DOB ResponseData['EmailVerified'] = DBConnect.EmailVerified self.response.write(json.dumps(ResponseData)) else: ResponseData['userEmail'] = userEmail ResponseData['notification'] = "PasswordMissmatch" self.response.write(json.dumps(ResponseData)) else: ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserInActive" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "SignIn" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for Forgot Password. elif (FunctionOption == "ForgotPassword" and DBConnect != None): DBConnect.ResetPasswordLinkSent = 1 DBConnect.put() SendEmail( userEmail, "Reset password for your MediCare account", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email sent to reset password of your MediCare account. Click on below link to reset your password: """ + WebPageLink + """ResetPassword?RegisteredAs=User&userEmail=""" + userEmail + """&FromPage=/UserSignIn&ResetStatus=""" + hashlib.md5(DBConnect.user_Password.encode()).hexdigest() + """ In case above link doesn't work, copy and paste the same in url bar of your browser. Thanks & regards, MediCare Team. """) ResponseData['userEmail'] = userEmail ResponseData['notification'] = "ResetLinkSent" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "ForgotPassword" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for DeletingUserProfile. elif (FunctionOption == "DeleteUser" and DBConnect != None): DBConnect.key.delete() ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserSuccessfullyDeleted" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "DeleteUser" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for HomePageAllProductsID. elif (FunctionOption == "AllProductID"): ProductsData = ProductsDB.query().fetch() ResponseProductID = {} Product = [] for i in range(0, len(ProductsData)): Product.append(ProductsData[i].ProductID) ResponseProductID['ProductID'] = Product self.response.write(json.dumps(ResponseProductID)) # Below is code for HomePageAllProductsData. elif (FunctionOption == "ProductData"): ResponseProduct = {} ProductID = JD["ProductID"] ProductData = ndb.Key("ProductsDB", ProductID).get() ResponseProduct['ProductID'] = ProductData.ProductID ResponseProduct['ProductName'] = ProductData.ProductName ResponseProduct['Image'] = ProductData.Images[0] ResponseProduct['Description'] = ProductData.Description ResponseProduct['Dosage'] = ProductData.Dosage ResponseProduct['Category'] = ProductData.Category ResponseProduct['Ingredients'] = ProductData.Ingredients ResponseProduct['Price'] = ProductData.Price ResponseProduct['ProductLife'] = ProductData.ProductLife ResponseProduct['Quantity'] = ProductData.Quantity ResponseProduct[ 'PrescriptionRequired'] = ProductData.PrescriptionRequired Stock = [] for j in range(0, len(ProductData.StockedIn)): Stock.append(ProductData.StockedIn[j]) ResponseProduct['StockedIn'] = Stock self.response.write(json.dumps(ResponseProduct)) # Below is code to add products to cart. elif (FunctionOption == "AddToCart" and DBConnect != None): ProductID = JD["ProductID"] ProductDBStatus = ndb.Key("ProductsDB", ProductID).get() CartDBStatus = ndb.Key("CartDB", userEmail).get() if (CartDBStatus != None): if (ProductID not in CartDBStatus.ProductID): CartDBStatus.ProductID.append(ProductID) CartDBStatus.Quantity.append(0) CartDBStatus.PharmacyID.append("None") if (ProductDBStatus.PrescriptionRequired == 1 and CartDBStatus.PrescriptionRequired != 1): CartDBStatus.PrescriptionRequired = 1 else: CartDBStatus = CartDB(id=userEmail) CartDBStatus.userEmail = userEmail CartDBStatus.OrderType = "None" CartDBStatus.ProductID.append(ProductID) CartDBStatus.Quantity.append(0) CartDBStatus.PharmacyID.append("None") if (ProductDBStatus.PrescriptionRequired == 1): CartDBStatus.PrescriptionRequired = 1 else: CartDBStatus.PrescriptionRequired = 0 CartDBStatus.put() ResponseData['userEmail'] = userEmail ResponseData['notification'] = "ProductSuccessfullyAdded" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "AddToCart" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code to remove products from cart. elif (FunctionOption == "RemoveFromCart" and DBConnect != None): ProductID = JD["ProductID"] ProductData = ndb.Key("ProductsDB", ProductID).get() CartData = ndb.Key("CartDB", userEmail).get() if (CartData != None): if (len(CartData.ProductID) > 1): for i in range(0, len(CartData.ProductID)): if (CartData.ProductID[i] == ProductID): if (ProductData.PrescriptionRequired == 1): CartData.PrescriptionRequired = 0 del CartData.PrescriptionImage del CartData.ProductID[i] del CartData.Quantity[i] del CartData.PharmacyID[i] CartData.put() break for i in range(0, len(CartData.ProductID)): PD = ndb.Key("ProductsDB", CartData.ProductID[i]).get() if (PD.PrescriptionRequired == 1): CartData.PrescriptionRequired = 1 CartData.put() else: CartData.key.delete() ResponseData['notification'] = "ProductSuccessfullyRemoved" else: ResponseData['notification'] = "FailedToRemoveProduct" ResponseData['userEmail'] = userEmail self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "RemoveFromCart" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for Fetching user profile data. elif (FunctionOption == "FetchProfileData" and DBConnect != None): ResponseData['userEmail'] = DBConnect.user_Email ResponseData['notification'] = "ProfileDataFound" ResponseData['FirstName'] = DBConnect.user_FirstName ResponseData['LastName'] = DBConnect.user_LastName ResponseData['Contact'] = DBConnect.user_Contact ResponseData['Address'] = DBConnect.user_Address ResponseData['Gender'] = DBConnect.user_Gender ResponseData['DOB'] = DBConnect.user_DOB ResponseData['EmailVerified'] = DBConnect.EmailVerified self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "FetchProfileData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for updating user profile data. elif (FunctionOption == "UpdateProfileData" and DBConnect != None): API_Key = "AIzaSyDvLc7SvzpX6KP6HCfn033xNKaM8UH3e2w" params = {"address": JD["Address"], "key": API_Key} GoogleAPI = "https://maps.googleapis.com/maps/api/geocode/json" url_params = urlencode(params) url = GoogleAPI + "?" + url_params result = urlfetch.fetch(url=url, method=urlfetch.POST, headers=params) DBConnect.user_FirstName = JD["FirstName"] DBConnect.user_LastName = JD["LastName"] DBConnect.user_Contact = JD["Contact"] DBConnect.user_Address = JD["Address"] DBConnect.Latitude = json.loads( result.content)['results'][0]['geometry']['location']['lat'] DBConnect.Longitude = json.loads( result.content)['results'][0]['geometry']['location']['lng'] DBConnect.put() SendEmail( DBConnect.user_Email, "Congratulations! Your MediCare account details are updated successfully", """ Dear """ + DBConnect.user_FirstName + """, This is an automated email confirmation sent to you in regards of successful updation of your MediCare account. Thanks & regards, MediCare Team. """) ResponseData['userEmail'] = DBConnect.user_Email ResponseData['notification'] = "ProfileSuccessfullyUpdated" ResponseData['FirstName'] = DBConnect.user_FirstName ResponseData['LastName'] = DBConnect.user_LastName ResponseData['Contact'] = DBConnect.user_Contact ResponseData['Address'] = DBConnect.user_Address ResponseData['Gender'] = DBConnect.user_Gender ResponseData['DOB'] = DBConnect.user_DOB ResponseData['EmailVerified'] = DBConnect.EmailVerified self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "UpdateProfileData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for searching product and returning product id if keyword matches. elif (FunctionOption == "SearchProduct"): ProductIDs = [] SearchKeyword = JD["SearchKeyword"] if (SearchKeyword != ""): AllProducts = ProductsDB.query().fetch() if (AllProducts != None): for i in range(0, len(AllProducts)): ProdName = AllProducts[i].ProductName.lower() ProdDescription = AllProducts[i].Description.lower() ProdIngredients = AllProducts[i].Ingredients.lower() if (ProdName.find(SearchKeyword.lower()) != -1): ProductIDs.append(AllProducts[i].ProductID) elif (ProdDescription.find(SearchKeyword.lower()) != -1): ProductIDs.append(AllProducts[i].ProductID) elif (ProdIngredients.find(SearchKeyword.lower()) != -1): ProductIDs.append(AllProducts[i].ProductID) ResponseData['ProductID'] = ProductIDs self.response.write(json.dumps(ResponseData)) # Below is code for fetching MyOrdersData for logged in user in android device. elif (FunctionOption == "MyOrdersData" and DBConnect != None): OrderID = [] OrderType = [] OrderStatus = [] OrderTotal = [] ActiveOrderDetails = [] CompletedOrderDetails = [] OrderDetails = OrdersDB.query( OrdersDB.userEmail == userEmail, OrdersDB.OrderStatus == "Active").fetch() UON1 = [] UON2 = [] if (OrderDetails != []): for i in range(0, len(OrderDetails)): if (OrderDetails[i].OrderID not in UON1): UON1.append(OrderDetails[i].OrderID) for i in range(0, len(UON1)): OrderDetails = OrdersDB.query( OrdersDB.userEmail == userEmail, OrdersDB.OrderStatus == "Active", OrdersDB.OrderID == UON1[i]).fetch() ActiveOrderDetails.append(OrderDetails[0]) OrderID.append(ActiveOrderDetails[i].OrderID) OrderType.append(ActiveOrderDetails[i].OrderType) OrderTotal.append(ActiveOrderDetails[i].GrandTotal) if (len(OrderDetails) > 1): for j in range(1, len(OrderDetails)): if (ActiveOrderDetails[i].OrderSubStatus != "Reviewing" and OrderDetails[j].OrderSubStatus == "Reviewing"): ActiveOrderDetails[ i].OrderSubStatus = OrderDetails[ j].OrderSubStatus OrderStatus.append(ActiveOrderDetails[i].OrderSubStatus) OrderDetails = OrdersDB.query( OrdersDB.userEmail == userEmail, OrdersDB.OrderStatus == "Completed").fetch() if (OrderDetails != []): for i in range(0, len(OrderDetails)): if (OrderDetails[i].OrderID not in UON1 and OrderDetails[i].OrderID not in UON2): UON2.append(OrderDetails[i].OrderID) for i in range(0, len(UON2)): OrderDetails = OrdersDB.query( OrdersDB.userEmail == userEmail, OrdersDB.OrderID == UON2[i]).fetch() OrderID.append(OrderDetails[0].OrderID) OrderType.append(OrderDetails[0].OrderType) OrderTotal.append(OrderDetails[0].GrandTotal) if (len(OrderDetails) > 1): OS = OrderDetails[0].OrderStatus OSS = OrderDetails[0].OrderSubStatus for j in range(1, len(OrderDetails)): if (OS != OrderDetails[j].OrderStatus): OS = OrderDetails[j] if (OSS != OrderDetails[j].OrderSubStatus and OSS != "OrderComplete"): OSS = OrderDetails[j].OrderSubStatus if (OS == "Completed"): CompletedOrderDetails.append(OrderDetails[0]) if (OSS != CompletedOrderDetails[ len(CompletedOrderDetails) - 1].OrderSubStatus): OrderDetails[0].OrderSubStatus = OSS else: if (OrderDetails[0].OrderStatus == "Completed"): CompletedOrderDetails.append(OrderDetails[0]) OrderStatus.append(OrderDetails[0].OrderSubStatus) ResponseData['OrderID'] = OrderID ResponseData['OrderType'] = OrderType ResponseData['OrderStatus'] = OrderStatus ResponseData['OrderTotal'] = OrderTotal self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "MyOrdersData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for fetching OrdersData for selected OrderID of logged in user in android device. elif (FunctionOption == "OrderIDData" and DBConnect != None): OrderID = JD["OrderID"] ProductID = [] PharmacyID = [] ProductStatus = [] ServiceCharge = 0.0 DeliveryCharge = 0.0 ReUploadPrescription = 0 PaymentRequired = 0 SubTotalPrice = 0.0 OrderData = OrdersDB.query(OrdersDB.OrderID == OrderID).fetch() if (OrderData != []): OrderDetails = OrderData[0] DeliveryCharge = DeliveryCharge + OrderData[0].DeliveryCharge for i in range(0, len(OrderDetails.ProductID)): PharmacyID.append( OrderData[0].PharmacyID ) # I have got pharmacy id for each product id. ProductStatus.append( OrderData[0].OrderSubStatus ) # I have got individual product status from here. SubTotalPrice = SubTotalPrice + (OrderDetails.Quantity[i] * OrderDetails.Price[i]) if (OrderData[0].OrderSubStatus == "ReUploadPrescription"): ReUploadPrescription = 1 PaymentRequired = 0 elif (OrderData[0].OrderSubStatus == "PaymentRequired"): ReUploadPrescription = 0 PaymentRequired = 1 elif (OrderData[0].OrderSubStatus == "CancelledByVendor" and len(OrderData) > 1): ReUploadPrescription = 0 PaymentRequired = 1 else: ReUploadPrescription = 0 PaymentRequired = 0 if (len(OrderData) > 1): for i in range(1, len(OrderData)): DeliveryCharge = DeliveryCharge + OrderData[ i].DeliveryCharge if (OrderData[i].OrderSubStatus != "CancelledByVendor" and OrderData[i].OrderSubStatus != "CancelledByCustomer" and OrderDetails.ServiceCharge == 0.0): if (OrderData[i].OrderType != "Collection"): OrderDetails.ServiceCharge = 1.0 OrderDetails.OrderTotal = OrderDetails.OrderTotal + OrderData[ i].OrderTotal elif (OrderData[i].OrderSubStatus != "CancelledByVendor" and OrderData[i].OrderSubStatus != "CancelledByCustomer" and OrderDetails.ServiceCharge != 0.0): OrderDetails.OrderTotal = OrderDetails.OrderTotal + OrderData[ i].OrderTotal - OrderData[i].ServiceCharge OrderDetails.DeliveryCharge = OrderDetails.DeliveryCharge + OrderData[ i].DeliveryCharge if (OrderDetails.PrescriptionRequired == 0): OrderDetails.PrescriptionRequired = OrderData[ i].PrescriptionRequired if (OrderDetails.PrescriptionRequired == 1): OrderDetails.PrescriptionImage = OrderData[ i].PrescriptionImage for j in range(0, len(OrderData[i].ProductID)): PharmacyID.append(OrderData[i].PharmacyID) OrderDetails.ProductID.append( OrderData[i].ProductID[j]) OrderDetails.Quantity.append( OrderData[i].Quantity[j]) OrderDetails.Price.append(OrderData[i].Price[j]) SubTotalPrice = SubTotalPrice + ( OrderData[i].Quantity[j] * OrderData[i].Price[j]) ProductStatus.append(OrderData[i].OrderSubStatus) if (OrderData[i].OrderSubStatus == "ReUploadPrescription"): ReUploadPrescription = 1 PaymentRequired = 0 elif (OrderData[i].OrderSubStatus == "CancelledByVendor" and PaymentRequired == 1): ReUploadPrescription = 0 PaymentRequired = 1 elif (OrderData[i].OrderSubStatus == "PaymentRequired" and PaymentRequired == 1): ReUploadPrescription = 0 PaymentRequired = 1 else: PaymentRequired = 0 ProductID = OrderDetails.ProductID ServiceCharge = OrderDetails.ServiceCharge ResponseData['OrderID'] = OrderID ResponseData['notification'] = "DataFound" ResponseData['OrderType'] = OrderDetails.OrderType ResponseData['ProductID'] = ProductID ResponseData['Quantity'] = OrderDetails.Quantity ResponseData['Price'] = OrderDetails.Price ResponseData['PharmacyID'] = PharmacyID ResponseData['ProductStatus'] = ProductStatus ResponseData['ServiceCharge'] = ServiceCharge ResponseData['DeliveryCharge'] = DeliveryCharge ResponseData[ 'PrescriptionRequired'] = OrderDetails.PrescriptionRequired ResponseData[ 'PrescriptionImage'] = OrderDetails.PrescriptionImage ResponseData['ReUploadPrescription'] = ReUploadPrescription ResponseData['PaymentRequired'] = PaymentRequired ResponseData['SubTotalPrice'] = SubTotalPrice else: ResponseData['OrderID'] = OrderID ResponseData['notification'] = "NoData" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "OrderIDData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for fetching data for given pharmacy id. elif (FunctionOption == "PharmacyData" and DBConnect != None): PharmacyID = JD["PharmacyID"] PharmacyData = ndb.Key("PharmacyDB", PharmacyID).get() ResponseData['PharmacyID'] = PharmacyData.PharmacyID ResponseData['PharmacyName'] = PharmacyData.PharmacyName ResponseData['OfficialEmailId'] = PharmacyData.OfficialEmailId ResponseData['OfficialContact'] = PharmacyData.OfficialContact ResponseData['PhysicalAddress'] = PharmacyData.PhysicalAddress ResponseData['Latitude'] = PharmacyData.Latitude ResponseData['Longitude'] = PharmacyData.Longitude self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "PharmacyData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # Below is code for fetching Cart data for logged in user in android device. elif (FunctionOption == "FetchCartData" and DBConnect != None): CartData = ndb.Key("CartDB", userEmail).get() if (CartData != None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "ProductsInCart" ResponseData['ProductID'] = CartData.ProductID ResponseData[ 'PrescriptionRequired'] = CartData.PrescriptionRequired self.response.write(json.dumps(ResponseData)) else: ResponseData['userEmail'] = userEmail ResponseData['notification'] = "NoProductsInCart" self.response.write(json.dumps(ResponseData)) elif (FunctionOption == "FetchCartData" and DBConnect == None): ResponseData['userEmail'] = userEmail ResponseData['notification'] = "UserNotRegistered" self.response.write(json.dumps(ResponseData)) # In case no function satisfy conditions, below will be returned. else: ResponseData['userEmail'] = userEmail ResponseData['notification'] = "FunctionNotRecognized" self.response.write(json.dumps(ResponseData))
def post(self): self.response.headers['content-type'] = 'text/html' WebPageLink = "https://medicare-287205.nw.r.appspot.com" Button = self.request.get('Button') AdminLoggedIn = users.get_current_user() AdminEmail = AdminLoggedIn.email() if(Button == "RegisterVendorButton"): DateTime = datetime.now() PharmacyID = DateTime.strftime("%Y%m%d%H%M%S") self.response.write(PharmacyID) PharmacyName = self.request.get('PharmacyName') OfficialEmailId = self.request.get('OfficialEmailId') OfficialContact = self.request.get('OfficialContact') PhysicalAddress = self.request.get('PhysicalAddress') API_Key = "AIzaSyDvLc7SvzpX6KP6HCfn033xNKaM8UH3e2w" params = {"address":PhysicalAddress,"key":API_Key} GoogleAPI = "https://maps.googleapis.com/maps/api/geocode/json" url_params = urlencode(params) url = GoogleAPI+"?"+url_params result = urlfetch.fetch(url=url,method=urlfetch.POST,headers=params) Latitude = json.loads(result.content)['results'][0]['geometry']['location']['lat'] Longitude = json.loads(result.content)['results'][0]['geometry']['location']['lng'] EmailVerified = 0 PharmacyDB_Reference = PharmacyDB.query(PharmacyDB.PharmacyName == PharmacyName and PharmacyDB.PhysicalAddress == PhysicalAddress).get() if(PharmacyDB_Reference == None): PharmacyDB_Reference = PharmacyDB(id=PharmacyID) PharmacyDB_Reference.PharmacyID = PharmacyID PharmacyDB_Reference.PharmacyName = PharmacyName PharmacyDB_Reference.OfficialEmailId = OfficialEmailId PharmacyDB_Reference.OfficialContact = OfficialContact PharmacyDB_Reference.PhysicalAddress = PhysicalAddress PharmacyDB_Reference.Latitude = Latitude PharmacyDB_Reference.Longitude = Longitude PharmacyDB_Reference.EmailVerified = EmailVerified PharmacyDB_Reference.RegisteredBy = AdminEmail PharmacyDB_Reference.IsActive = 1 PharmacyDB_Reference.put() SendEmail(OfficialEmailId,"Confirmation email for vendor registered as : "+PharmacyName+" at MediCare",""" Dear Vendor, This is an automated email sent to you regarding your MediCare account registration. You have been registered as : """+PharmacyName+""" Your Pharmacy Id is """+PharmacyID+""" Please click on below link to confirm your email id: """+WebPageLink+"""/VerifyEmail?RegisteredAs=Vendor&PharmacyID="""+PharmacyID+"""&VerifyStatus="""+hashlib.md5(PhysicalAddress.encode()).hexdigest()+""" In case above link doesn't work, copy and paste the same in url bar of your browser. Please Note: 1) You will not be able to register any employee unless your email id has been confirmed using above link. 2) Your pharmacy will not be listed to customers to place order unless this email id is confirmed. Thanks & regards, MediCare Team. """) self.redirect('/AdminPanel?notification=VendorRegistrationSuccessful') else: self.redirect('/AdminPanel?notification=VendorAlreadyRegistererd')