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)
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)
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!")