Exemple #1
0
    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,  # 禁止结果列表显示
            },
        )
Exemple #2
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
Exemple #3
0
 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,
                    }, )
Exemple #4
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,
            },
        )
Exemple #5
0
    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,
                                                           }, )