Example #1
0
    def post(self, request):
        # 上传的文件都在request.FILES里面获取,所以这里要多传一个这个参数
        excel_form = UploadExcelForm(request.POST, request.FILES)
        next_url = request.GET.get('next', '')
        if excel_form.is_valid():
            excel_file = excel_form.cleaned_data["excel_file"]
            case_file = File()
            case_file.excel_file = excel_file
            case_file.save()

            excel_file_name = os.path.join(MEDIA_ROOT,
                                           case_file.excel_file.name)
            wb = openpyxl.load_workbook(excel_file_name)
            sheet = wb.get_active_sheet()
            for i in range(1, sheet.max_row):
                record_id = sheet.cell(row=i + 1, column=1).value
                record = Record.objects.get(pk=record_id)
                if record:
                    record.site = sheet.cell(row=i + 1, column=2).value
                    record.shop = sheet.cell(row=i + 1, column=3).value
                    record.product_chinese_name = sheet.cell(row=i + 1,
                                                             column=4).value
                    record.sku = sheet.cell(row=i + 1, column=5).value
                    record.order_word = sheet.cell(row=i + 1, column=6).value
                    record.key_word_page_number = sheet.cell(row=i + 1,
                                                             column=7).value
                    record.key_word_link = sheet.cell(row=i + 1,
                                                      column=8).value
                    record.order_date = sheet.cell(row=i + 1, column=9).value
                    record.review_date = sheet.cell(row=i + 1, column=10).value
                    record.direct_review_title = sheet.cell(row=i + 1,
                                                            column=11).value
                    record.direct_review_content = sheet.cell(row=i + 1,
                                                              column=12).value
                    record.direct_review_remark = sheet.cell(row=i + 1,
                                                             column=13).value
                    record.user = request.user
                    record.save()

            messages.add_message(request,
                                 messages.SUCCESS,
                                 "文件上传成功",
                                 extra_tags='success')
            return redirect(next_url)
        else:
            messages.add_message(request,
                                 messages.ERROR,
                                 "表单验证错误",
                                 extra_tags='danger')
            return redirect(next_url)
Example #2
0
    def post(self, request):
        # 上传的文件都在request.FILES里面获取,所以这里要多传一个这个参数
        excel_form = UploadExcelForm(request.POST, request.FILES)
        next_url = request.GET.get('next', '')
        if excel_form.is_valid():
            excel_file = excel_form.cleaned_data["excel_file"]
            case_file = File()
            case_file.excel_file = excel_file
            case_file.save()

            excel_file_name = os.path.join(MEDIA_ROOT,
                                           case_file.excel_file.name)
            wb = openpyxl.load_workbook(excel_file_name)
            sheet = wb.get_active_sheet()
            for i in range(1, sheet.max_row):
                record = Record()

                record.asin = sheet.cell(row=i + 1, column=1).value
                record.c_price = sheet.cell(row=i + 1, column=2).value
                record.purchase_cost = sheet.cell(row=i + 1, column=3).value
                record.product_profit = sheet.cell(row=i + 1, column=4).value
                record.product_upload_time = sheet.cell(row=i + 1,
                                                        column=5).value
                # record.brush_number = sheet.cell(row=i + 1, column=6).value
                record.sale_30_number = sheet.cell(row=i + 1, column=6).value
                record.sale_7_number = sheet.cell(row=i + 1, column=7).value
                record.record_src = sheet.cell(row=i + 1, column=8).value
                record.now_score = sheet.cell(row=i + 1, column=9).value
                record.now_review_number = sheet.cell(row=i + 1,
                                                      column=10).value
                review_type = sheet.cell(row=i + 1, column=11).value
                record.review_type = review_type
                if review_type == "留评":
                    record.direct_review = '0'
                    record.free_review_number = '0'
                    record.feedback = '0'
                elif review_type == "直评":
                    record.review_number = '0'
                    record.free_review_number = '0'
                    record.feedback = '0'
                elif review_type == "免评":
                    record.review_number = '0'
                    record.direct_review = '0'
                    record.feedback = '0'
                elif review_type == "feedback":
                    record.review_number = '0'
                    record.direct_review = '0'
                    record.free_review_number = '0'

                record.user = request.user
                record.save()

            messages.add_message(request,
                                 messages.SUCCESS,
                                 "文件上传成功",
                                 extra_tags='success')
            return redirect(next_url)
        else:
            messages.add_message(request,
                                 messages.ERROR,
                                 "表单验证错误",
                                 extra_tags='danger')
            return redirect(next_url)
Example #3
0
    def post(self, request):
        # 上传的文件都在request.FILES里面获取,所以这里要多传一个这个参数
        excel_form = UploadExcelForm(request.POST, request.FILES)
        next_url = request.GET.get('next', '')
        if excel_form.is_valid():
            excel_file = excel_form.cleaned_data["excel_file"]
            case_file = File()
            case_file.excel_file = excel_file
            case_file.save()

            excel_file_name = os.path.join(MEDIA_ROOT,
                                           case_file.excel_file.name)
            wb = openpyxl.load_workbook(excel_file_name)
            sheet = wb.get_active_sheet()
            for i in range(1, sheet.max_row):
                track_number = sheet.cell(row=i + 1, column=6).value
                if not Goods.objects.filter(user=request.user,
                                            track_number=track_number):
                    good = Goods()
                    old_total_price = good.total_price if good.total_price else 0
                    good.track_number = track_number
                    good.user = request.user
                    good.send_time = sheet.cell(row=i + 1, column=1).value
                    if isinstance(good.send_time, str):
                        good.send_time = datetime.datetime.strptime(
                            good.send_time.replace("/", "-"), "%Y-%m-%d")
                    good.send_company = sheet.cell(row=i + 1, column=2).value
                    good.channel = sheet.cell(row=i + 1, column=3).value
                    good.site = sheet.cell(row=i + 1, column=4).value
                    good.country = sheet.cell(row=i + 1, column=5).value
                    good.net_weight = sheet.cell(row=i + 1, column=7).value
                    good.volume_weight = sheet.cell(row=i + 1, column=8).value
                    good.actual_charged_weight = sheet.cell(row=i + 1,
                                                            column=9).value
                    good.pieces_number = sheet.cell(row=i + 1, column=10).value
                    good.includes_price = sheet.cell(row=i + 1,
                                                     column=11).value
                    good.other_price = sheet.cell(row=i + 1, column=12).value
                    good.total_price = sheet.cell(row=i + 1, column=13).value
                    good.express_time = sheet.cell(row=i + 1, column=14).value
                    good.express_status = sheet.cell(
                        row=i + 1, column=15).value if sheet.cell(
                            row=i + 1, column=15).value else "not express"
                    good.settlement = sheet.cell(row=i + 1, column=16).value
                    good.order_remark = sheet.cell(row=i + 1, column=17).value
                    good.user = request.user
                    good.save()

                    total_price = sheet.cell(row=i + 1, column=13).value
                    send_company = sheet.cell(row=i + 1, column=2).value
                    good_total_price = good.total_price if good.total_price else 0

                    year = datetime.datetime.now().strftime('%Y')
                    month = datetime.datetime.now().strftime('%m')
                    user_freight_money = UserFreight.objects.filter(
                        brush_year=year, brush_month=month,
                        user=request.user).first()
                    total_price_difference = float(good_total_price) - float(
                        old_total_price)
                    if not user_freight_money:
                        user_freight_money_object = UserFreight()
                        user_freight_money_object.user = request.user
                    else:
                        user_freight_money_object = user_freight_money

                    user_freight_money_object.freight += total_price_difference
                    user_freight_money_object.save()

                    company_freight_money = LogisticsCompanyFreight.objects.filter(
                        brush_year=year,
                        brush_month=month,
                        send_company=send_company).first()
                    if not company_freight_money:
                        company_freight_money_object = LogisticsCompanyFreight(
                        )
                        company_freight_money_object.send_company = send_company
                    else:
                        company_freight_money_object = company_freight_money
                    company_freight_money_object.freight += total_price_difference
                    company_freight_money_object.save()

            messages.add_message(request,
                                 messages.SUCCESS,
                                 "文件上传成功",
                                 extra_tags='success')
            return redirect(next_url)
        else:
            messages.add_message(request,
                                 messages.ERROR,
                                 "表单验证错误",
                                 extra_tags='danger')
            return redirect(next_url)