暫無描述

staff_views.py 7.3KB

    # -*- 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 TimeConvert import TimeConvert as tc 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 SaleclerkInfo.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 = tc.local_string(format='%Y%m%d') 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'删除成功')