views_vendor_api.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django.forms import model_to_dict
  2. # from django.forms.models import model_to_dict
  3. from django.http import JsonResponse
  4. from django.views.decorators.csrf import csrf_exempt
  5. from .model_handler import PartHandler, VendorHandler
  6. from .models import VendorAttachment
  7. from Info.model_handler import CompanyHandler, UserHandler
  8. from Info.func import file_upload, get_file
  9. def code_check(request):
  10. company = CompanyHandler.get_by_id(request.session.get('company_id'))
  11. result = {'code': 1, 'content': None}
  12. if request.method == 'GET':
  13. vendor = VendorHandler.get_by_code(request.GET.get('vendor_code'), company)
  14. if vendor:
  15. result = {'code': 1, 'content': "这个供应商编号已经使用了。"}
  16. else:
  17. result = {'code': 0, 'content': None }
  18. return JsonResponse(result)
  19. @csrf_exempt
  20. def file(request):
  21. result = {'code': 1, 'content': None}
  22. company = CompanyHandler.get_by_id(request.session.get('company_id'))
  23. user = UserHandler.get_by_id(request.session.get('user_id'))
  24. if request.method == 'GET':
  25. return get_file(request)
  26. if request.method == 'POST':
  27. upload_result = file_upload(request, ['BOM', 'vendor'])
  28. if upload_result['code'] == 0:
  29. v_attachment = VendorAttachment()
  30. v_attachment.company = company
  31. v_attachment.creator = user
  32. v_attachment.display_name = upload_result['target_file_name']
  33. v_attachment.url = upload_result['target_file_path'] + upload_result['target_file_name']
  34. v_attachment.save()
  35. content = {'id':v_attachment.id , 'url': v_attachment.url, 'display_name': v_attachment.display_name}
  36. result['code'] = 0
  37. result['content'] = content
  38. else:
  39. result['content'] = '上传失败'
  40. return JsonResponse(result)
  41. def search_vendor(request):
  42. if request.method == 'GET':
  43. result = {'code': 1, 'content': None, 'msg':None}
  44. company = CompanyHandler.get_by_id(request.session.get('company_id'))
  45. vendor_name_keyword = request.GET.get('vendor_name')
  46. vendors = VendorHandler.search_like_name(vendor_name_keyword, company)
  47. vendor_list = []
  48. for v in vendors:
  49. vendor_list.append(model_to_dict(v))
  50. result['code'] = 0
  51. result['content'] = vendor_list
  52. return JsonResponse(result)