def receive(self, mail_message): #logging.debug("Received a message from: " + PaOrderHandler.unwraptext(mail_message.sender)) #logging.debug("Subject: " + PaOrderHandler.unwraptext(mail_message.subject)) for bodies in mail_message.bodies('text/plain'): emailtext = "" for body in bodies: try: encodedtext = body[1] emailtext = PaOrderHandler.unwraptext(encodedtext) except: emailtext = body.payload.decode(body.encoding) if (isinstance(emailtext, unicode)): emailtext = emailtext.encode('utf-8') #logging.debug("Body PlainText: " + emailtext) OrderAmountText = self.reOrder.search( emailtext).groupdict()['order'].strip() OrderAmountInt = NumberToGp.ConvertBetToInt(OrderAmountText) OrderId = self.reOrderId.search( emailtext).groupdict()['orderid'].strip() tMatchingOrderQuery = PaOrder.all() tMatchingOrderQuery.filter("paTransactionId", OrderId) tMatches = tMatchingOrderQuery.fetch(10) if (len(tMatches) > 0): return tPaOrder = PaOrder() tPaOrder.paAmount = OrderAmountText tPaOrder.paAmountInt = OrderAmountInt tPaOrder.paTransactionId = OrderId tAssignedAgentClass = DeliveryAssignment() tAssignedAgent = tAssignedAgentClass.GetAssignedAgent() if (tAssignedAgent != 'No Agent Online'): tPaOrder.paAssignedAgent = tAssignedAgent.agentId tPaOrder.paAssignedAgentNick = tAssignedAgent.agentNickName else: tPaOrder.paAssignedAgent = "No Agent Online" tPaOrder.paAssignedAgentNick = "No Agent Online" tPaOrder.put()
def receive(self, mail_message): #logging.debug("Received a message from: " + PaOrderHandler.unwraptext(mail_message.sender)) #logging.debug("Subject: " + PaOrderHandler.unwraptext(mail_message.subject)) for bodies in mail_message.bodies('text/plain'): emailtext = "" for body in bodies: try: encodedtext = body[1] emailtext = PaOrderHandler.unwraptext(encodedtext) except: emailtext = body.payload.decode(body.encoding) if(isinstance(emailtext, unicode)): emailtext = emailtext.encode('utf-8') #logging.debug("Body PlainText: " + emailtext) OrderAmountText = self.reOrder.search(emailtext).groupdict()['order'].strip() OrderAmountInt = NumberToGp.ConvertBetToInt(OrderAmountText) OrderId = self.reOrderId.search(emailtext).groupdict()['orderid'].strip() tMatchingOrderQuery = PaOrder.all() tMatchingOrderQuery.filter("paTransactionId", OrderId) tMatches = tMatchingOrderQuery.fetch(10) if(len(tMatches) > 0): return tPaOrder = PaOrder() tPaOrder.paAmount = OrderAmountText tPaOrder.paAmountInt = OrderAmountInt tPaOrder.paTransactionId = OrderId tAssignedAgentClass = DeliveryAssignment() tAssignedAgent = tAssignedAgentClass.GetAssignedAgent() if(tAssignedAgent != 'No Agent Online'): tPaOrder.paAssignedAgent = tAssignedAgent.agentId tPaOrder.paAssignedAgentNick = tAssignedAgent.agentNickName else: tPaOrder.paAssignedAgent = "No Agent Online" tPaOrder.paAssignedAgentNick = "No Agent Online" tPaOrder.put()
def GetContext(self): tContext = {} tAgent = Agent() tAgentHandler = AgentHandler() tOrders = [] tOrder = Order() tUser = self.USER tAgentQuery = Agent().all() tAgentQuery.filter('agentOnline', True) tAgents = tAgentQuery.fetch(100) if (len(tAgents) > 0): tContext['agentnum'] = len(tAgents) tContext['agents'] = tAgents try: tAgent = Agent().GetAgentByEmail(str(tUser.email())) except: pass if (tAgent.agentId == 'No Agent'): tAgent.agentCurrentCommission = 0.0 tAgent.agentTotalCommission = 0.0 tAgent.agentOrders = [] tAgent.agentId = str(tUser.email()) tAgent.agentGoldSupply = 0 tAgent.agentOnline = False tAgent.put() if (tAgent.agentGoldSupply == None): tAgent.agentGoldSupply = 0 tOrderQuery = PaOrder.all() tOrderQuery.filter("paDeliveryAgent", tAgent.agentId) tOrderQuery.order("-paDateDelivered") tOrdersRaw = tOrderQuery.fetch(50) tAgentDonorsQuery = DonorRecord.all() tAgentDonorsQuery.filter('donorAgent', tAgent.agentId) tAgentDonorsQuery.order('-donorDate') tAgentDonations = tAgentDonorsQuery.fetch(20) for o in tOrdersRaw: tOrder = o if (tOrder != None): tOrders.append(tOrder) #tGoldSupply = tAgent.agentGoldSupply logging.debug('Original eoc ' + str(tAgent.agentGoldSupplyEoc)) logging.debug('Original 07 ' + str(tAgent.agentGoldSupply07)) tEocString = NumberToGp.ConvertIntToBet(tAgent.agentGoldSupplyEoc) t07String = NumberToGp.ConvertIntToBet(tAgent.agentGoldSupply07) logging.debug('Stringed version eoc ' + tEocString) logging.debug('Stringed version 07 ' + t07String) #tAgent.__setattr__('agentGoldSupplyEocString', tEocString) #tAgent.__setattr__('agentGoldSupply07String', t07String) tContext['agent'] = tAgent tContext['gpeocstring'] = str(tEocString) tContext['gp07string'] = str(t07String) #tContext['agentgold'] = locale.format("%d", int(tGoldSupply), grouping = True) tContext['orders'] = tOrders tContext['agentcomm'] = locale.format("%0.2f", tAgent.agentCurrentCommission, grouping=True) tContext['agenttotal'] = locale.format("%0.2f", tAgent.agentTotalCommission, grouping=True) tContext['donations'] = tAgentDonations return tContext