コード例 #1
0
def add_sales(request):
    if request.method == 'POST':
        customer_s = Sales()
        emailID = request.POST.get('ID')
        date = request.POST.get('Date')
        billNo = request.POST.get('Bill No.')
        customer = request.POST.get('Customer_name')
        phone_number = request.POST.get('Contact')
        address = request.POST.get('Address')
        product = request.POST.get('Product_name')
        quantity = request.POST.get('Quantity')
        rate = request.POST.get('Rate')
        avail = request.POST.get('Avail_Qty')
        total = request.POST.get('Total')
        payment = request.POST.get('Payment')
        description = request.POST.get('Description')
        balance = request.POST.get('balance')
        duedate = request.POST.get('Due_date')
        mode = request.POST.get('Mode')
        customer_s.customer = customer
        customer_s.emailID = emailID
        customer_s.billNo = billNo
        customer_s.date = date
        customer_s.phone_number = phone_number
        customer_s.address = address
        customer_s.product = product
        customer_s.quantity = quantity
        customer_s.rate = rate
        customer_s.avail = avail
        customer_s.total = total
        customer_s.payment = payment
        customer_s.description = description
        customer_s.balance = balance
        customer_s.duedate = duedate
        customer_s.mode = mode
        customer_s.save()
    return render(request, 'add_sales.html', {})
コード例 #2
0
ファイル: populate.py プロジェクト: jmjeong/django-appsales
    def execute(self):
        import os
        import sys
        import csv
        import re
        import datetime

        from sales.models import App, Date, Sales, Country
        from django.core.mail import mail_admins

        print self.help

        for i in ACCOUNT_INFO:
            print "Processing directory : %s" % i['DATA_DIR']
            
            if (i['DATA_DIR'] != '' and not os.path.exists(i['DATA_DIR'])):
                os.makedirs(i['DATA_DIR'])

            filenames = [os.path.join(i['DATA_DIR'], f)
                         for f in os.listdir(i['DATA_DIR']) if f.startswith(DAILY_SALES_PREFIX)]

            for f in filenames:
                match = re.findall('S_D_(.*)\.txt', f)
                try:
                    date = datetime.datetime.strptime(match[0], '%m-%d-%Y').date()
                except ValueError:
                    # for old format data
                    try:
                        date = datetime.datetime.strptime(match[0], '%m%d%Y').date()
                    except ValueError:
                        continue

                d_id, created = Date.objects.get_or_create(account=i['APPSTORE_ID'], date=date)
                if created:
                    d_id.populated = False
                else:
                    if d_id.populated == True:
                        continue

                print "[%s] is now processing..." % d_id

                reader = csv.DictReader(open(f), delimiter='\t')

                data_set = []
                for row in reader:
                    data = {}

                    if 'Title' in row:
                        appname = row['Title'].strip()
                    elif 'Title / Episode / Season' in row:
                        appname = row['Title / Episode / Season'].strip()
                    else:
                        raise ValueError

                    data['appname'] = appname
                    data['date'] = datetime.datetime.strptime(row['Begin Date'].strip(), '%m/%d/%Y').date()
                    data['units'] = int(row['Units'])

                    if 'Developer Proceeds' in row:
                        proceeds = float(row['Developer Proceeds'])
                    elif 'Royalty Price' in row:
                        proceeds = float(row['Royalty Price'])
                    else:
                        raise ValueError


                    data['proceeds'] = float(proceeds)

                    country_code = row['Country Code'].strip()
                    try:
                        country = Country.objects.get(code=country_code)
                    except:
                        country = Country.objects.get(code='ZZ') # unknown

                    data['country'] = country

                    if 'Currency of Proceeds' in row:
                        currency = row['Currency of Proceeds'].strip()
                    elif 'Royalty Currency' in row:
                        currency = row['Royalty Currency'].strip()
                    else:
                        raise ValueError

                    data['currency'] = currency
                    data['price'] = float(row['Customer Price'].strip())
                    data['ptype'] = row['Product Type Identifier'].strip()

                    if 'SKU' in row:
                        sku = row['SKU'].strip()
                    elif 'Vendor Identifier' in row:
                        sku = row['Vendor Identifier'].strip()
                    else:
                        raise ValueError
                    data['sku'] = sku

                    if 'Apple Identifier' in row:
                        appleid = row['Apple Identifier']
                    else:
                        raise ValueError

                    data['appleid'] = appleid

                    data_set.append(data)

                for data in data_set:

                    app_id, created = App.objects.get_or_create(sku=data['sku'])
                    if created:
                        app_id.name = data['appname']
                        app_id.appleid = data['appleid']
                        app_id.save()
                    else:
                        if app_id.appleid is None:
                            app_id.appleid = data['appleid']
                            app_id.save()

                    sales = Sales()
                    sales.app = app_id
                    sales.date = data['date']
                    sales.units = data['units']

                    sales.proceeds = data['proceeds']
                    sales.country = data['country']
                    sales.currency = data['currency']

                    sales.price = data['price']
                    sales.ptype = data['ptype']
                    sales.category = sales.calc_category(data['ptype'], data['price'])

                    sales.save()

                d_id.populated = True
                d_id.save()

            pass