コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
    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