def upload_driver_docs(request): token = get_or_none(Token, key=request.POST.get('Authorization')) if not isinstance(token, Token): return HttpResponseRedirect('/login/') try: driver_id = int_or_none(request.POST.get('driver', None)) document_category = request.POST.get('document_category', None) if not driver_id: return json_error_response('driver_id id not provided', status=400) if not document_category: return json_error_response('document category id not provided', status=400) driver = get_or_none(Driver, id=driver_id) if not driver: return json_error_response('Driver with id=%s not found' % driver, status=404) if not request.FILES: return json_error_response('no file to upload', status=400) upload_file = request.FILES.get('file') driver_files = create_driver_file(driver, document_category, upload_file, token.user) return upload_json_response(request, data={'files': [serialize(driver_files)]}) except UnreadablePostError: return HttpResponseRedirect('/upload/upload-driver-document-page/')
def form_valid(self, form): self.object = form.save() files = [serialize(self.object)] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) print response response['Content-Disposition'] = 'inline; filename=files.json' return response
def form_valid(self, form): print 'form_valid' self.object = form.save() files = [serialize(self.object)] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def upload_invoice_receipt_docs(request): token = get_or_none(Token, key=request.POST.get('Authorization')) if not isinstance(token, Token): return HttpResponseRedirect('/login/') try: invoice = get_or_none(Invoice, invoice_number=request.POST.get('invoice_number', None)) if not isinstance(invoice, Invoice): return json_error_response('invoice_number doesnot exists', status=400) if not request.FILES: return json_error_response('no file to upload', status=400) invoice_sent_mode = request.POST.get('invoice_sent_mode', None) invoice_confirm_mode = request.POST.get('invoice_confirm_mode', None) invoice_confirm_by_name = request.POST.get('invoice_confirm_by_name', None) invoice_confirm_by_phone = request.POST.get('invoice_confirm_by_phone', None) if invoice_sent_mode: if invoice_sent_mode not in [x[0] for x in INVOICE_SENT_MODE_CHOICES]: return json_error_response('Invalid Invoice Sent Mode', status=400) if invoice_confirm_mode: if invoice_confirm_mode not in [x[0] for x in INVOICE_CONFIRM_MODE_CHOICES]: return json_error_response('Invalid Invoice Confirm Mode', status=400) if invoice_confirm_mode == 'PH' and not invoice_confirm_by_name and not invoice_confirm_by_phone: return json_error_response('Invoice Confirm Name and Phone required', status=400) if not invoice_sent_mode and not invoice_confirm_mode: return json_error_response('Invoice Sent or Confirm Mode Required', status=400) if 'file' in request.FILES: upload_file = request.FILES.get('file') else: upload_file = None invoice_receipt = create_invoice_receipt_file(invoice.invoice_number, upload_file, token.user, invoice_sent_mode, invoice_confirm_mode, invoice_confirm_by_name, invoice_confirm_by_phone) if invoice_sent_mode: update_invoice_booking_status(invoice.id, 'party_invoice_sent', token.user) if invoice_confirm_mode: update_invoice_booking_status(invoice.id, 'invoice_confirmed', token.user) return upload_json_response(request, data={'files': [serialize(invoice_receipt)]}) except UnreadablePostError: return HttpResponseRedirect('/upload/upload-cheque-document-page/')
def upload_cheque_docs(request): token = get_or_none(Token, key=request.POST.get('Authorization')) if not isinstance(token, Token): return HttpResponseRedirect('/login/') try: customer_name = request.POST.get('customer_name', None) amount = int_or_none(request.POST.get('amount', None)) cheque_number = request.POST.get('cheque_number', None) remarks = request.POST.get('remarks', None) cheque_date = request.POST.get('cheque_date', None) if not customer_name: return json_error_response('customer_name id not provided', status=400) if not amount: return json_error_response('amount id not provided', status=400) if not cheque_date: return json_error_response('Cheque Date not provided', status=400) if not (cheque_number and len(cheque_number) == 6): return json_error_response('cheque_number id not provided', status=400) if ChequeFile.objects.filter(cheque_number__iexact=cheque_number, cheque_date=django_date_format(cheque_date)): return json_error_response('Cheque Number is not unique', status=400) if not request.FILES: return json_error_response('no file to upload', status=400) upload_file = request.FILES.get('file') cheque_files = create_cheque_file(customer_name=customer_name, amount=amount, cheque_number=cheque_number, remarks=remarks, upload_file=upload_file, user=token.user, cheque_date=django_date_format(cheque_date)) return upload_json_response(request, data={'files': [serialize(cheque_files)]}) except UnreadablePostError: return HttpResponseRedirect('/upload/upload-cheque-document-page/')
def upload_pod(request): token = get_or_none(Token, key=request.POST.get('Authorization')) if not isinstance(token, Token): return HttpResponseRedirect('/login/') try: lr_number_id = request.POST.get('lr_number', None) if not lr_number_id: return json_error_response('lr_number id not provided', status=400) if str(lr_number_id).startswith('BROKER') or str(lr_number_id).startswith('AB'): booking = get_or_none(ManualBooking, booking_id=lr_number_id) lr_obj = None else: lr_obj = get_or_none(LrNumber, id=lr_number_id) booking = None if not isinstance(lr_obj, LrNumber) else lr_obj.booking if not (isinstance(lr_obj, LrNumber) or isinstance(booking, ManualBooking)): return json_error_response('LrNumber with id=%s not found' % lr_number_id, status=404) if not request.FILES: return json_error_response('no file to upload', status=400) upload_file = request.FILES.get('file') pod_file = create_pod_file(lr_number=lr_obj, upload_file=upload_file, user=token.user, booking=booking) booking_unloaded = check_booking_status(booking, 'unloaded') if not booking_unloaded: create_new_booking_status(booking, 'unloaded', User.objects.get(username='******')) else: update_booking_status(booking, 'unloaded', 'in_progress', User.objects.get(username='******')) booking_pod_uploaded = check_booking_status(booking, 'pod_uploaded') if not booking_pod_uploaded: create_new_booking_status(booking, 'pod_uploaded', token.user) else: update_booking_status(booking, 'pod_uploaded', 'in_progress', token.user) return upload_json_response(request, data={'files': [serialize(pod_file)]}) except UnreadablePostError: return HttpResponseRedirect('/upload/pod/')
def upload_weighing_slip_docs(request): token = get_or_none(Token, key=request.POST.get('Authorization')) if not isinstance(token, Token): return HttpResponseRedirect('/login/') try: mb_id = int_or_none(request.POST.get('mb_id', None)) if not mb_id: return json_error_response('mb_id id not provided', status=400) booking = get_or_none(ManualBooking, id=mb_id) if not isinstance(booking, ManualBooking): return json_error_response('Manual Booking with id=%s not found' % mb_id, status=404) if not request.FILES: return json_error_response('no file to upload', status=400) upload_file = request.FILES.get('file') weighing_slip_files = create_weighing_slip_file(booking, upload_file, token.user) return upload_json_response(request, data={'files': [serialize(weighing_slip_files)]}) except UnreadablePostError: return HttpResponseRedirect('/upload/upload-vehicle-document-page/')
def render_to_response(self, context, **response_kwargs): files = [ serialize(p) for p in self.get_queryset()] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def render_to_response(self, context, **response_kwargs): files = [serialize(p) for p in self.get_queryset().order_by('created_on')[0:0]] data = {'files': files} response = JSONResponse(data, mimetype=response_mimetype(self.request)) response['Content-Disposition'] = 'inline; filename=files.json' return response
def invoice_receipt_list(request): files = [serialize(p) for p in InvoiceReceiptFile.objects.all()] return upload_json_response(request, data={'files': files})
def cheque_list(request): files = [serialize(p) for p in ChequeFile.objects.select_related('customer_name', 's3_upload').all()] return upload_json_response(request, data={'files': files})
def driver_list(request): files = [serialize(p) for p in DriverFile.objects.select_related('driver', 's3_upload').all()] return upload_json_response(request, data={'files': files})
def vehicle_list(request): files = [serialize(p) for p in VehicleFile.objects.select_related('vehicle', 's3_upload').all()] return upload_json_response(request, data={'files': files})
def weighing_slip_list(request): files = [serialize(p) for p in WeighingSlip.objects.all()] return upload_json_response(request, data={'files': files})
def pod_list(request): files = [serialize(p) for p in PODFile.objects.select_related('lr_number', 's3_upload').all()] return upload_json_response(request, data={'files': files})