def save_businesses(): for bdata in iterate_file("business", shortcircuit=False): business = Business() business.business_id = bdata['business_id'] business.name = bdata['name'] business.address = bdata['address'] business.city = bdata['city'] business.neighborhood = bdata['neighborhood'] business.state = bdata['state'] business.latitude = bdata['latitude'] business.longitude = bdata['longitude'] business.stars = decimal.Decimal(bdata.get('stars', 0)) business.review_count = int(bdata['review_count']) business.is_open = True if bdata['is_open'] == "1" else False business.save() temp = bdata['attributes'] if bdata['attributes'] is not None else [] temp1 = bdata['categories'] if bdata['categories'] is not None else [] save_categories(bdata['business_id'], temp1) save_attributes(bdata['business_id'], temp)
def upload(request): """ Uploads the receipt :url: /shoebox/upload/ :param POST['email']: email identifying user :param POST['business_name']: i.e. McDonalds (blank) :param POST['address']: business address (blank) :param POST['location']: i.e. JFK International (blank) :param POST['phone']: phone number (blank) :param POST['city']: city (blank) :param POST['state']: state (blank) :param POST['purchase_date']: purchase date in NeatReceipts format :param POST['tax']: tax (blank) :param POST['tip']: tip (blank) :param POST['amount']: total amount :param POST['payment_method']: Visa, Master, Cash etc :param POST['category']: NeatReceipts category :param FILES['img']: Receipts image :rtype: JSON :: #: if success in posting returns id of created or update object in string format {'result': 'id'} #: if failed {'result': '-1'} #: if request was not POST {'result': '0'} """ if request.method == 'POST': form = ReceiptUploadForm(request.POST, request.FILES) if form.is_valid(): instance = form.save(commit=False) # assign to the current user uploading data instance.user, created = OTNUserTemp.objects.get_or_create(email=request.POST['email']) instance.save() receipt = DetailReceipt(basic=instance) if 'business_name' in request.POST: b = Business(name=request.POST['business_name']) if 'location' in request.POST: b.location = request.POST['location'] if 'phone' in request.POST: b.phone = request.POST['phone'] if 'address' in request.POST: b.address = request.POST['address'] if 'city' in request.POST: c = City(name=request.POST['city'], state=request.POST['state']) c.save() b.city = c b.save() receipt.business = b if 'category' in request.POST: cat, created = Category.objects.get_or_create(name=request.POST['category']) receipt.category = cat if 'tax' in request.POST: receipt.tax = request.POST['tax'] if 'tip' in request.POST: receipt.tip = request.POST['tip'] if 'payment_method' in request.POST: pmethod = request.POST['payment_method'].lower() if pmethod.find('cash') != -1: receipt.payment_method = receipt.CASH elif pmethod.find('amex') != -1: receipt.payment_method = receipt.AMEX elif pmethod.find('visa') != -1: receipt.payment_method = receipt.VISA elif pmethod.find('master') != -1: receipt.payment_method = receipt.MASTER elif pmethod.find('discover') != -1: receipt.payment_method = receipt.DISCOVER else: receipt.payment_method = receipt.CASH receipt.save() return JSONHttpResponse({'result':str(receipt.id)}) else: return JSONHttpResponse({'result':'-1', 'form_errors':str(form.errors)}) else: return JSONHttpResponse({'result':'0'})