|
@@ -624,7 +624,8 @@ def purchase_order_edit(request):
|
|
|
with transaction.atomic():
|
|
|
|
|
|
order = PurchaseOrder.objects.filter(id=id).first()
|
|
|
- if order.status > PurchaseOrder.DRAFT:
|
|
|
+ # if order.status > PurchaseOrder.DRAFT:
|
|
|
+ if order.status != PurchaseOrder.DEFAULT:
|
|
|
raise CustomError(u'该合同已审核,禁止修改')
|
|
|
|
|
|
order.supplier_id = data['supplier']
|
|
@@ -653,7 +654,8 @@ def purchase_order_save(request):
|
|
|
try:
|
|
|
with transaction.atomic():
|
|
|
pb = PurchaseOrderSerializer.factory(request.user, data['order_data'], id)
|
|
|
- if pb.instance and pb.instance.status == PurchaseOrder.TAKE_EFFECT:
|
|
|
+ # if pb.instance and pb.instance.status == PurchaseOrder.TAKE_EFFECT:
|
|
|
+ if pb.instance and pb.instance.status != PurchaseOrder.DEFAULT:
|
|
|
raise CustomError(u'该合同已审核,禁止修改')
|
|
|
pb = pb.validSave()
|
|
|
PurchaseOrderDetail.objects.filter(main_id=pb.id).delete()
|
|
@@ -766,10 +768,10 @@ def purchase_order_detail(request):
|
|
|
'create_user': purchase_order.create_user and purchase_order.create_user.name or '',
|
|
|
'create_time': Formater.formatStrTime(purchase_order.create_time),
|
|
|
'deliver_time': Formater.formatStrTime(purchase_order.deliver_time),
|
|
|
- 'check_user2': purchase_order.check_user2 and purchase_order.check_user2.name or '',
|
|
|
- 'check_time2': Formater.formatStrTime(purchase_order.check_time2),
|
|
|
- 'check_user3': purchase_order.check_user3 and purchase_order.check_user3.name or '',
|
|
|
- 'check_time3': Formater.formatStrTime(purchase_order.check_time3),
|
|
|
+ # 'check_user2': purchase_order.check_user2 and purchase_order.check_user2.name or '',
|
|
|
+ # 'check_time2': Formater.formatStrTime(purchase_order.check_time2),
|
|
|
+ # 'check_user3': purchase_order.check_user3 and purchase_order.check_user3.name or '',
|
|
|
+ # 'check_time3': Formater.formatStrTime(purchase_order.check_time3),
|
|
|
'consignee_name': purchase_order.consignee_name,
|
|
|
'consignee_tel': purchase_order.consignee_tel,
|
|
|
}
|
|
@@ -828,9 +830,10 @@ def select_purchase_order(request):
|
|
|
if not no:
|
|
|
return JSONError(u'请输入合同单号!')
|
|
|
|
|
|
- rows = PurchaseOrderDetail.objects.filter(main__no=no, main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ # rows = PurchaseOrderDetail.objects.filter(main__no=no, main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ rows = PurchaseOrderDetail.objects.filter(main__no=no, main__status=PurchaseOrder.PASS)
|
|
|
if rows.count() == 0:
|
|
|
- return JSONError(u'合同单号不正确或该合同尚未生效!')
|
|
|
+ return JSONError(u'合同单号不正确或该合同尚未审核!')
|
|
|
if rows[0].main.apply_amount >= rows[0].main.amount:
|
|
|
return JSONError(u'该合同已付款完毕!')
|
|
|
result = {
|
|
@@ -860,8 +863,9 @@ def purchase_order_delete(request):
|
|
|
try:
|
|
|
with transaction.atomic():
|
|
|
order = PurchaseOrder.getById(id)
|
|
|
- if order.status != PurchaseOrder.DRAFT:
|
|
|
- raise CustomError(u'该采购合同已生效, 不允许删除')
|
|
|
+ # if order.status != PurchaseOrder.DRAFT:
|
|
|
+ if order.status != PurchaseOrder.DEFAULT:
|
|
|
+ raise CustomError(u'该采购合同已审核, 不允许删除')
|
|
|
|
|
|
# 删除发票图片
|
|
|
image_rows = PurchaseInvoiceImage.objects.filter(order_detail__main_id=order.id)
|
|
@@ -900,116 +904,47 @@ def purchase_order_delete(request):
|
|
|
@permission_required('purchase.check_purchase_order')
|
|
|
def purchase_order_check(request):
|
|
|
id = request.GET.get('id')
|
|
|
- c_type = request.GET.get('c_type')
|
|
|
status = int(request.GET.get('status'))
|
|
|
try:
|
|
|
with transaction.atomic():
|
|
|
order = PurchaseOrder.getById(id)
|
|
|
- if c_type == 'check':
|
|
|
- if status == PurchaseOrder.TAKE_EFFECT:
|
|
|
- if order.status == PurchaseOrder.CHECKING:
|
|
|
- raise CustomError(u'该采购合同已审核')
|
|
|
- if not order.no:
|
|
|
- raise CustomError(u'该采购合同未填写合同号, 不允许审核')
|
|
|
- exist_rows = PurchaseOrder.objects.filter(Q(no=order.no), ~Q(id=id)).first()
|
|
|
- if exist_rows:
|
|
|
- raise CustomError(u'该采购合同单号已存在')
|
|
|
- order.status = PurchaseOrder.CHECKING
|
|
|
- order.check_user = request.user
|
|
|
- order.check_time = timezone.now()
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"审核采购合同[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- else:
|
|
|
- if order.status == PurchaseOrder.DRAFT:
|
|
|
- raise CustomError(u'该采购合同尚未审核')
|
|
|
- if order.check_user2:
|
|
|
- raise CustomError(u'该采购合同已复核')
|
|
|
- g_row = GodownEntry.objects.filter(purchase_order=order).first()
|
|
|
- if g_row:
|
|
|
- raise CustomError(u'该合同已存在入库单, 不允许撤销审核')
|
|
|
- pay = PurchasePayment.objects.filter(order=order).first()
|
|
|
- if pay:
|
|
|
- raise CustomError(u'该合同已存在付款单, 不允许撤销审核')
|
|
|
-
|
|
|
- d_row = PurchaseOrderDetail.objects.filter(main=order, invoice_no__isnull=False, check_status=settings.PASS).first()
|
|
|
- if d_row:
|
|
|
- raise CustomError(u'该合同已审核发票, 不允许撤销审核')
|
|
|
- order.status = PurchaseOrder.DRAFT
|
|
|
- order.check_user = None
|
|
|
- order.check_time = None
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购合同取消审核[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- elif c_type == 'check2':
|
|
|
- #复核
|
|
|
- if status == PurchaseOrder.TAKE_EFFECT:
|
|
|
- if order.status == PurchaseOrder.DRAFT:
|
|
|
- raise CustomError(u'该采购合同未审核')
|
|
|
- if order.check_user3:
|
|
|
- raise CustomError(u'该采购合同已批准')
|
|
|
-
|
|
|
- order.check_user2 = request.user
|
|
|
- order.check_time2 = timezone.now()
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购合同复核[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- else:
|
|
|
- if not order.check_user2:
|
|
|
- raise CustomError(u'该采购计划未复核')
|
|
|
- if order.check_user3:
|
|
|
- raise CustomError(u'该采购计划已批准')
|
|
|
-
|
|
|
- order.check_user2 = None
|
|
|
- order.check_time2 = None
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购合同取消复核[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- elif c_type == 'check3':
|
|
|
- #批准
|
|
|
- if status == PurchaseOrder.TAKE_EFFECT:
|
|
|
- if not order.check_user2:
|
|
|
- raise CustomError(u'该采购合同未复核')
|
|
|
- if order.check_user3:
|
|
|
- raise CustomError(u'该采购合同已批准')
|
|
|
- order.status = status
|
|
|
- order.check_user3 = request.user
|
|
|
- order.check_time3 = timezone.now()
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购合同批准[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- else:
|
|
|
- if not order.check_user3:
|
|
|
- raise CustomError(u'该采购合同未批准')
|
|
|
- g_row = GodownEntry.objects.filter(purchase_order=order).first()
|
|
|
- if g_row:
|
|
|
- raise CustomError(u'该合同已存在入库单, 不允许撤销')
|
|
|
- pay = PurchasePayment.objects.filter(order=order).first()
|
|
|
- if pay:
|
|
|
- raise CustomError(u'该合同已存在付款单, 不允许撤销')
|
|
|
-
|
|
|
- d_row = PurchaseOrderDetail.objects.filter(main=order, invoice_no__isnull=False,
|
|
|
- check_status=settings.PASS).first()
|
|
|
- if d_row:
|
|
|
- raise CustomError(u'该合同已审核发票, 不允许撤销')
|
|
|
- order.status = PurchaseOrder.CHECKING
|
|
|
- order.check_user3 = None
|
|
|
- order.check_time3 = None
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购合同取消批准[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
+ if status == PurchaseOrder.PASS:
|
|
|
+ if order.status == PurchaseOrder.PASS:
|
|
|
+ raise CustomError(u'该采购合同已审核')
|
|
|
+ if not order.no:
|
|
|
+ raise CustomError(u'该采购合同未填写合同号, 不允许审核')
|
|
|
+ exist_rows = PurchaseOrder.objects.filter(Q(no=order.no), ~Q(id=id)).first()
|
|
|
+ if exist_rows:
|
|
|
+ raise CustomError(u'该采购合同单号已存在')
|
|
|
+ order.status = PurchaseOrder.PASS
|
|
|
+ order.check_user = request.user
|
|
|
+ order.check_time = timezone.now()
|
|
|
+ BizLog.objects.addnew(
|
|
|
+ request.user,
|
|
|
+ BizLog.CHECK,
|
|
|
+ u"审核采购合同[%s],id=%d" % (order.no, order.id),
|
|
|
+ )
|
|
|
+ else:
|
|
|
+ if order.status == PurchaseOrder.DEFAULT:
|
|
|
+ raise CustomError(u'该采购合同尚未审核')
|
|
|
+ g_row = GodownEntry.objects.filter(purchase_order=order).first()
|
|
|
+ if g_row:
|
|
|
+ raise CustomError(u'该合同已存在入库单, 不允许撤销审核')
|
|
|
+ pay = PurchasePayment.objects.filter(order=order).first()
|
|
|
+ if pay:
|
|
|
+ raise CustomError(u'该合同已存在付款单, 不允许撤销审核')
|
|
|
+
|
|
|
+ d_row = PurchaseOrderDetail.objects.filter(main=order, invoice_no__isnull=False, check_status=settings.PASS).first()
|
|
|
+ if d_row:
|
|
|
+ raise CustomError(u'该合同已审核发票, 不允许撤销审核')
|
|
|
+ order.status = PurchaseOrder.DEFAULT
|
|
|
+ order.check_user = None
|
|
|
+ order.check_time = None
|
|
|
+ BizLog.objects.addnew(
|
|
|
+ request.user,
|
|
|
+ BizLog.CHECK,
|
|
|
+ u"采购合同取消审核[%s],id=%d" % (order.no, order.id),
|
|
|
+ )
|
|
|
order.save()
|
|
|
except CustomError, e:
|
|
|
return JSONError(e.get_error_msg())
|
|
@@ -1177,7 +1112,7 @@ def purchase_payment_check(request):
|
|
|
if status == settings.PASS:
|
|
|
if order.status == settings.PASS:
|
|
|
raise CustomError(u'该付款单已审核')
|
|
|
- order.status = settings.CHECKING
|
|
|
+ order.status = settings.PASS
|
|
|
order.check_user = request.user
|
|
|
order.check_time = timezone.now()
|
|
|
BizLog.objects.addnew(
|
|
@@ -1188,8 +1123,8 @@ def purchase_payment_check(request):
|
|
|
else:
|
|
|
if order.status == settings.DEFAULT:
|
|
|
raise CustomError(u'该付款单尚未审核')
|
|
|
- if order.review_time:
|
|
|
- raise CustomError(u'该付款单已复核,请先撤销复核')
|
|
|
+ # if order.review_time:
|
|
|
+ # raise CustomError(u'该付款单已复核,请先撤销复核')
|
|
|
if order.is_pay:
|
|
|
raise CustomError(u'该付款单已付款,禁止撤销审核')
|
|
|
order.status = settings.DEFAULT
|
|
@@ -1208,92 +1143,6 @@ def purchase_payment_check(request):
|
|
|
return JSONError(u'审核失败')
|
|
|
return JSONResponse({})
|
|
|
|
|
|
-@csrf_exempt
|
|
|
-@permission_required('purchase.review_purchase_payment')
|
|
|
-def purchase_payment_review(request):
|
|
|
- id = request.GET.get('id')
|
|
|
- status = int(request.GET.get('status'))
|
|
|
- try:
|
|
|
- with transaction.atomic():
|
|
|
- order = PurchasePayment.getById(id)
|
|
|
- if status == 1:
|
|
|
- if order.status == settings.DEFAULT:
|
|
|
- raise CustomError(u'该付款单尚未审核')
|
|
|
- if order.review_time:
|
|
|
- raise CustomError(u'该付款单已复核')
|
|
|
- order.review_user = request.user
|
|
|
- order.review_time = timezone.now()
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"复核采购付款[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- else:
|
|
|
- if not order.review_time:
|
|
|
- raise CustomError(u'该付款单尚未复核')
|
|
|
- if order.ratify_time:
|
|
|
- raise CustomError(u'该付款单已批准')
|
|
|
- if order.is_pay:
|
|
|
- raise CustomError(u'该付款单已付款,禁止撤销复核')
|
|
|
- order.review_user = None
|
|
|
- order.review_time = None
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购付款单撤销复核[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- order.save()
|
|
|
- except CustomError, e:
|
|
|
- return JSONError(e.get_error_msg())
|
|
|
- except Exception, e:
|
|
|
- traceback.print_exc()
|
|
|
- return JSONError(u'复核失败')
|
|
|
- return JSONResponse({})
|
|
|
-
|
|
|
-
|
|
|
-@csrf_exempt
|
|
|
-@permission_required('purchase.ratify_purchase_payment')
|
|
|
-def purchase_payment_ratify(request):
|
|
|
- id = request.GET.get('id')
|
|
|
- status = int(request.GET.get('status'))
|
|
|
- try:
|
|
|
- with transaction.atomic():
|
|
|
- order = PurchasePayment.getById(id)
|
|
|
- if status == 1:
|
|
|
- if order.status == settings.DEFAULT:
|
|
|
- raise CustomError(u'该付款单尚未审核')
|
|
|
- if not order.review_time:
|
|
|
- raise CustomError(u'该付款单尚未复核,请先复核')
|
|
|
- if order.ratify_time:
|
|
|
- raise CustomError(u'该付款单已批准')
|
|
|
- order.status = settings.PASS
|
|
|
- order.ratify_user = request.user
|
|
|
- order.ratify_time = timezone.now()
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"批准采购付款[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- else:
|
|
|
- if not order.ratify_time:
|
|
|
- raise CustomError(u'该付款单尚未批准')
|
|
|
- if order.is_pay:
|
|
|
- raise CustomError(u'该付款单已付款,禁止撤销复核')
|
|
|
- order.status = settings.CHECKING
|
|
|
- order.ratify_user = None
|
|
|
- order.ratify_time = None
|
|
|
- BizLog.objects.addnew(
|
|
|
- request.user,
|
|
|
- BizLog.CHECK,
|
|
|
- u"采购付款单撤销批准[%s],id=%d" % (order.no, order.id),
|
|
|
- )
|
|
|
- order.save()
|
|
|
- except CustomError, e:
|
|
|
- return JSONError(e.get_error_msg())
|
|
|
- except Exception, e:
|
|
|
- traceback.print_exc()
|
|
|
- return JSONError(u'批准失败')
|
|
|
- return JSONResponse({})
|
|
|
|
|
|
@csrf_exempt
|
|
|
@permission_required('purchase.export_purchase_payment')
|
|
@@ -1319,10 +1168,12 @@ def purchase_payment_pay(request):
|
|
|
if payment.apply_amount <= payment.actual_amount:
|
|
|
raise CustomError(u'付款单已付款完毕')
|
|
|
|
|
|
- if not payment.ratify_time:
|
|
|
- raise CustomError(u'付款单未批准,禁止付款')
|
|
|
- if not payment.review_time:
|
|
|
- raise CustomError(u'付款单未复核,禁止付款')
|
|
|
+ # if not payment.ratify_time:
|
|
|
+ # raise CustomError(u'付款单未批准,禁止付款')
|
|
|
+ # if not payment.review_time:
|
|
|
+ # raise CustomError(u'付款单未复核,禁止付款')
|
|
|
+ if payment.status == settings.DEFAULT:
|
|
|
+ raise CustomError(u'付款单未审核,禁止付款')
|
|
|
try:
|
|
|
data['actual_amount'] = Formater.formatAmount(data['actual_amount'])
|
|
|
except:
|
|
@@ -1376,7 +1227,8 @@ def purchase_payment_pay_detail(request):
|
|
|
@permission_required('purchase.view_purchase_invoice')
|
|
|
def purchase_invoice_list(request):
|
|
|
invoice = request.GET.get('invoice')
|
|
|
- rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ # rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.PASS)
|
|
|
department_ids = request.user.getSubDepartmentIds()
|
|
|
user_ids = request.user.getSubEmployeeIds()
|
|
|
rows = rows.filter(Q(main__create_user_id__in=user_ids) | Q(main__department_id__in=department_ids) | Q(main__create_user=request.user))
|
|
@@ -1401,7 +1253,8 @@ def purchase_invoice_list(request):
|
|
|
@permission_required('purchase.export_purchase_invoice')
|
|
|
def purchase_invoice_export(request):
|
|
|
invoice = request.GET.get('invoice')
|
|
|
- rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ # rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.TAKE_EFFECT)
|
|
|
+ rows = PurchaseOrderDetail.objects.filter(main__status=PurchaseOrder.PASS)
|
|
|
department_ids = request.user.getSubDepartmentIds()
|
|
|
user_ids = request.user.getSubEmployeeIds()
|
|
|
rows = rows.filter(Q(main__create_user_id__in=user_ids) | Q(main__department_id__in=department_ids) | Q(
|