コード例 #1
0
ファイル: views.py プロジェクト: andlister/frano
def process_import(request, portfolio, is_sample, read_only):
  formset = ImportTransactionFormSet(request.POST)
  if not formset.is_valid():
    raise Exception('Invalid import set');
  
  for form in formset.forms:
    cd = form.cleaned_data
    
    if not cd.get('exclude'):
      transaction = Transaction()
      transaction.portfolio = portfolio
      transaction.type = cd.get('type').encode('UTF-8')
      transaction.as_of_date = cd.get('as_of_date')
      transaction.symbol = cd.get('symbol').encode('UTF-8').upper()
      transaction.quantity = cd.get('quantity')
      transaction.price = cd.get('price')
      transaction.total = cd.get('total')
      
      linked_symbol = cd.get('linked_symbol').encode('UTF-8')
      if linked_symbol != None and linked_symbol != '':
        transaction.linked_symbol = linked_symbol
        
      transaction.save()
    
  refresh_positions(portfolio, force = True)
  return redirect_to_portfolio_action('transactions', portfolio)
コード例 #2
0
ファイル: views.py プロジェクト: andlister/frano
def add(request, portfolio, is_sample, read_only):
  form = TransactionForm(request.POST)
  if form.is_valid():
    commission = form.cleaned_data.get('commission')
    if commission == None:
      commission = 0.0
    
    type = form.cleaned_data.get('type').encode('UTF-8')
    
    symbol = form.cleaned_data.get('symbol').encode('UTF-8').upper()
    linked_symbol = None
    if type == 'ADJUST':
      linked_symbol = symbol
      
    if type in ['DEPOSIT', 'WITHDRAW', 'ADJUST']:
      symbol = CASH_SYMBOL
    
    if symbol != None and len(symbol) > 0:
      transaction = Transaction()
      transaction.portfolio = portfolio
      transaction.type = type
      transaction.as_of_date = form.cleaned_data.get('as_of_date')
      transaction.symbol = symbol
      transaction.quantity = form.cleaned_data.get('quantity')
      transaction.price = form.cleaned_data.get('price')
      transaction.total = (transaction.quantity * transaction.price) + commission
      transaction.linked_symbol = linked_symbol
      transaction.save()
    
      refresh_positions(portfolio, force = True)
  
  return redirect_to_portfolio_action('transactions', portfolio)
コード例 #3
0
ファイル: Payment.py プロジェクト: nikko0327/Ninja-Tutor
  def post(self, mode =""):
      # Nothing to do here, content script will pick up accesstoken from here
      if mode == "ipn":
        logging.info(self.request.body)
        result = urlfetch.fetch(
                        ipn_sandbox_url,
                        payload = "cmd=_notify-validate&" + self.request.body,
                        method=urlfetch.POST,
                        validate_certificate=True
                     )
        logging.info(result.content)
        if result.status_code == 200 and result.content == 'VERIFIED': # OK
          ipn_values = cgi.parse_qs(self.request.body)
          debug_msg = '\n'.join(["%s=%s" % (k,'&'.join(v)) for (k,v) in ipn_values.items()])
          #logging.info("from tung with love")
          item_number = cgi.escape(self.request.get('item_number'))


          # get stuff
          transaction_id        = str(cgi.escape(self.request.get('txn_id')))
          payer_email           = str(cgi.escape(self.request.get('payer_email')))  
          receiver_email        = str(cgi.escape(self.request.get('receiver_email')))
          item_amount           = str(cgi.escape(self.request.get('payment_gross')))
          sales_tax             = str(cgi.escape(self.request.get('tax')))
          shipping              = str(cgi.escape(self.request.get('shipping')))
          handling              = str(cgi.escape(self.request.get('mc_fee')))    
          quantity              = str(cgi.escape(self.request.get('quantity')))
          item_name             = str(cgi.escape(self.request.get('item_name')))     
          date                  = str(cgi.escape(self.request.get('payment_date'))) 
          status                = str(cgi.escape(self.request.get('payment_status')))
          payment_type          = str(cgi.escape(self.request.get('payment_type')))



          ### Change Request to done
          post = RequestPost.query(RequestPost.reference == item_number).get() #that post
          
          if post:
            post.payment_is_done = True

            ## Notify tutee
            notifymsg = NotifiedMessage()
            notifymsg.read             =  False
            notifymsg.person_reference =  post.requester
            notifymsg.object_reference =  item_number
            notifymsg.content          =  " paid " + item_amount + ", click to give feedback"
            notifymsg.price            =  item_amount
            notifymsg.initiator        =  post.requester
            notifymsg.put()

            #

            ## Notify tutor
            notifymsg2 = NotifiedMessage()
            notifymsg2.read             =  False
            notifymsg2.person_reference =  post.final_provider
            notifymsg2.object_reference =  item_number
            notifymsg2.content          =  " paid " + item_amount + ", click to give feedback "
            notifymsg2.price            =  item_amount
            notifymsg2.initiator        =  post.requester
            notifymsg2.put()

            ### Create Transaction Object
            newtransaction    = Transaction()
            newtransaction.transaction_id    = transaction_id
            newtransaction.payer_email       = payer_email
            newtransaction.receiver_email    = receiver_email
            newtransaction.item_amount       = item_amount
            newtransaction.sales_tax         = sales_tax
            newtransaction.shipping          = shipping
            newtransaction.handling          = handling
            newtransaction.quantity          = quantity
            newtransaction.item_name         = item_name
            newtransaction.item_number       = item_number
            newtransaction.date              = date
            newtransaction.status            = status
            newtransaction.payment_type      = payment_type

            newtransaction.tutee_username    = post.requester
            newtransaction.tutor_username    = post.final_provider

            newtransaction.testPeoplewhocanseethis.append(post.requester)
            newtransaction.testPeoplewhocanseethis.append(post.final_provider)


            newtransaction.put()

            post.put()

          self.response.out.write(debug_msg)
        else:
          logging.error('Could not fetch %s (%i)' % (url, result.status_code,))
      else:
        logging.error("Unknown mode for POST request!")