Nenhuma Descrição

staff_views.py 7.2KB

    # -*- coding: utf-8 -*- from django.conf import settings from django.contrib.admin.views.decorators import staff_member_required from django.db import transaction from django_logit import logit from django_response import response from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo from mch.models import BrandInfo, DistributorInfo, ModelInfo, SaleclerkInfo from staff.models import StaffDeleteClerkSaleSubmitLogInfo from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo, SaleclerkSaleStatisticInfo, SaleStatisticInfo) def exec_del_clerk_sale_submit(pk, username): try: ssli = SaleclerkSubmitLogInfo.objects.select_for_update().get(pk=pk) except SaleclerkSubmitLogInfo.DoesNotExist: return response() if not ssli.status: return response() if ssli.is_staff_delete: return response() sn = ssli.code StaffDeleteClerkSaleSubmitLogInfo.objects.create(username=username, code=sn) ssli.status = False ssli.is_staff_delete = True ssli.save() SaleclerkIntegralIncomeExpensesInfo.objects.select_for_update().filter(code=sn).update(status=False) try: brand = BrandInfo.objects.get(pk=ssli.brand_pk) except BrandInfo.DoesNotExist: return response() try: model = ModelInfo.objects.get(pk=ssli.model_pk) except ModelInfo.DoesNotExist: return response() try: clerk = SaleclerkInfo.objects.select_for_update().get(clerk_id=ssli.clerk_id, status=True) except SaleclerkInfo.DoesNotExist: return response() try: distributor = DistributorInfo.objects.get(distributor_id=clerk.distributor_id) except DistributorInfo.DoesNotExist: return response() integral = model.integral clerk.num -= 1 clerk.integral -= integral clerk.total_integral -= integral clerk.save() ymd = str(ssli.ymd) if not clerk.test_user and not ssli.dupload: # 日销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd, ) ssi.num -= 1 ssi.save() # 月销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:6], ) ssi.num -= 1 ssi.save() # 年销量统计 ssi, _ = SaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, ymd=ymd[:4], ) ssi.num -= 1 ssi.save() # 型号销量统计 mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd, ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:6], ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() mssi, _ = ModelSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, model_name=model.model_uni_name, ymd=ymd[:4], ) try: mssi.saleclerks.remove(clerk.clerk_id) except ValueError: pass mssi.num = len(mssi.saleclerks) mssi.save() # 经销商销量统计 dssi, _ = DistributorSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, distributor_id=distributor.distributor_id, ymd=ymd, ) dssi.distributor_name = distributor.distributor_name dssi.num -= 1 dssi.save() dssi2, _ = DistributorSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, distributor_id=distributor.distributor_id, ymd=0, ) dssi2.distributor_name = distributor.distributor_name dssi2.num -= 1 dssi2.save() # 日省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd, ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 月省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd[:6], ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 年省份销量统计 pssi, _ = ProvinceSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, province_code=distributor.distributor_province_code, ymd=ymd[:4], ) pssi.province_name = distributor.distributor_province_name pssi.num -= 1 pssi.save() # 日销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd, ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() # 月销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd[:6], ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() # 年销售员销量统计 sssi, _ = SaleclerkSaleStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand.brand_id, clerk_id=clerk.clerk_id, ymd=ymd[:4], ) sssi.distributor_id = distributor.distributor_id sssi.distributor_name = distributor.distributor_name sssi.distributor_short_name = distributor.distributor_short_name sssi.clerk_name = clerk.clerk_name sssi.num -= 1 sssi.save() @logit @staff_member_required @transaction.atomic def del_clerk_sale_submit_api(request): brand_id = request.GET.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) pk = request.GET.get('pk', '') exec_del_clerk_sale_submit(pk, request.user.username) return response(200, 'Del Success', u'删除成功')