def get(self, request): permission_string = get_user_grant_list(request.user.id) # 如果权限为2, 则可以显示全部公司的价格 display_all_company = int(permission_string[3]) input_para_list = [ 'FELIX', datetime.date.today(), ] collection_queryset = LclCollectAreaModel.objects.only( 'name').all().order_by('sort_num') return render( request, 'lcl_calculate.html', { 'menu_active': MY_MENU_LOCAL, 'menu_grant': get_user_grant_list(request.user.id), 'input_para_list': input_para_list, 'collection_queryset': collection_queryset, 'display_all_company': display_all_company, # 显示所有公司价格 'zone_id': 0, # 禁止结果列表显示 }, )
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['menu_active'] = 'LCL_DATA' context['page_tab'] = 1 context['menu_grant'] = get_user_grant_list(self.request.user.id) context['company_code'] = self.request.GET.get('company_code', '') context['company_name'] = self.request.GET.get('company_name', '') return context
def get(self, request): general_charge = general_surcharge() return render(request, 'air_freight_result.html', {'menu_active': MY_MENU_LOCAL, 'menu_grant': get_user_grant_list(request.user.id), "Airline_Handing": general_charge["AirlineHanding"], "AirlineHanding_minimum": general_charge["AirlineHanding_minimum"], "Clearance": general_charge["Clearance"], "Agent_Fee1": general_charge["Agent_Fee1"], "Agent_Fee2": general_charge["Agent_Fee2"], "Covid19_Fee": general_charge["Covid19_Fee"], "Covid19_Fee_minimum": general_charge["Covid19_Fee_minimum"], "Use_of_deferment": general_charge["Use_of_deferment"], 'zone_id': 0, }, )
def post(self, request): collection_queryset = LclCollectAreaModel.objects.only( 'name').all().order_by('sort_num') query_collect_area = self.request.POST.get('collect_code', 'FELIX') query_delivery_date = datetime.datetime.strptime( self.request.POST.get('delivery_date', datetime.date.today()), '%Y-%m-%d') query_delivery_date = query_delivery_date.strftime('%Y-%m-%d') query_volume = float(request.POST.get("volume", 0)) query_weight = float(request.POST.get("weight", 0)) query_pallet_qty = int(float(request.POST.get("qty", 0))) query_uk_postcode = request.POST.get("postcode", "").upper() company_query = LclCompanyModel.objects.filter( ~Q(code__icontains='Public'), is_used=1, ) company_calc_result = [] input_para_list = [ query_collect_area, query_delivery_date, query_volume, query_weight, query_pallet_qty, query_uk_postcode, ] for record in company_query: company_code = record.code.strip() # 用于保存每个公司的计算结果, [company_code, fuel_charge_Rate, express_amt, economy_amt] company_calc_result.append( calculation(company_code, input_para_list)) permission_string = get_user_grant_list(request.user.id) # 如果权限为2, 则可以显示全部公司的价格 display_all_company = int(permission_string[3]) # 过滤掉所有计算结果均为0的公司 new_result = [] for company in company_calc_result: if company[2] != 0 or company[3] != 0: new_result.append([ company[0], company[1], "£" + '%.2f' % company[2], "£" + '%.2f' % company[3], ]) # 计算销售价格 if query_collect_area == 'FELIX': sales_price = [ 0, calculation('Public', input_para_list)[3], ] else: economy_sales_price = 0 express_sales_price = 0 for company in company_calc_result: if company[0] == 'RIVA': express_sales_price = company[2] economy_sales_price = company[3] queryset_profit = LclProfitViaAreaDetailModel.objects.filter( via_area=query_collect_area) for record in queryset_profit: if record.service_type == 'ECONOMY': economy_sales_price = economy_sales_price + record.fix_price else: express_sales_price = express_sales_price + record.fix_price sales_price = [express_sales_price, economy_sales_price] sales_price = [ "£" + '%.2f' % sales_price[0], "£" + '%.2f' % sales_price[1] ] # 设置返回值 return render( request, 'lcl_calculate.html', { 'menu_active': MY_MENU_LOCAL, 'menu_grant': permission_string, 'input_para_list': input_para_list, 'new_result': new_result, 'collection_queryset': collection_queryset, 'display_all_company': display_all_company, 'sales_price': sales_price, }, )
def post(self, request): general_charge = general_surcharge() quote_type = request.POST.get("quote_type", "") volume = float(request.POST.get("volume", 0)) weight = float(request.POST.get("weight", 0)) uk_postcode = request.POST.get("postcode", "") postcode = (uk_postcode[:-3]).strip().upper() zone_id = get_zone_id(quote_type, postcode) if zone_id == 0: # 返回错误,邮编不存在 return render(request, 'air_freight_result.html', {'menu_active': MY_MENU_LOCAL, 'menu_grant': get_user_grant_list(request.user.id), 'quote_type': quote_type, 'volume': volume, 'weight': weight, 'uk_postcode': uk_postcode.upper(), 'error': 'Postcode can not be found.', 'zone_id': 0, }) # 计算主程序 result = CalcResult(volume, weight, zone_id, quote_type) # 设置返回值 cost_price = '%.2f' % result['cost_price'] Service_Time_Limit = result["ServiceTimes"] Counted_CBM = '%.2f' % result['CalcVolumeWeight'] + "CBM" Delivery_Price = "£" + '%.2f' % result['Delivery_Price'] Airline_Handing_Fee = "£" + '%.2f' % result['Airline_Handing_Fee'] Clearance_Fee = "£" + '%.2f' % result['Clearance_Fee'] Agency_Fee = "£" + '%.2f' % result['Agency_Fee'] COVID19_Fee = "£" + '%.2f' % result['COVID19_Fee'] Total_amount = "£" + '%.2f' % result['Total_amount'] Total_amount_cost = "£" + '%.2f' % result['Total_amount_cost'] return render(request, 'air_freight_result.html', {'menu_active': MY_MENU_LOCAL, 'menu_grant': get_user_grant_list(request.user.id), 'quote_type': quote_type, 'volume': volume, 'weight': weight, 'uk_postcode': uk_postcode.upper(), 'Service_Time_Limit': Service_Time_Limit, 'Counted_CBM': Counted_CBM, 'Delivery_Price': Delivery_Price, 'Airline_Handing_Fee': Airline_Handing_Fee, 'Clearance_Fee': Clearance_Fee, 'Agency_Fee': Agency_Fee, 'COVID19_Fee': COVID19_Fee, 'Total_amount': Total_amount, "Airline_Handing": general_charge["AirlineHanding"], "AirlineHanding_minimum": general_charge[ "AirlineHanding_minimum"], "Clearance": general_charge["Clearance"], "Agent_Fee1": general_charge["Agent_Fee1"], "Agent_Fee2": general_charge["Agent_Fee2"], "Covid19_Fee": general_charge["Covid19_Fee"], "Covid19_Fee_minimum": general_charge["Covid19_Fee_minimum"], "Use_of_deferment": general_charge["Use_of_deferment"], "zone_id": zone_id, "cost_price": cost_price, "Total_amount_cost": Total_amount_cost, }, )