コード例 #1
0
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/')
コード例 #2
0
ファイル: views.py プロジェクト: quevon24/Mapp
 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
コード例 #3
0
ファイル: views.py プロジェクト: Foxugly/MyTaxAccountant
 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
コード例 #4
0
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/')
コード例 #5
0
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/')
コード例 #6
0
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/')
コード例 #7
0
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/')
コード例 #8
0
ファイル: views.py プロジェクト: Foxugly/MyTaxAccountant
 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
コード例 #9
0
 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
コード例 #10
0
def invoice_receipt_list(request):
    files = [serialize(p) for p in InvoiceReceiptFile.objects.all()]
    return upload_json_response(request, data={'files': files})
コード例 #11
0
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})
コード例 #12
0
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})
コード例 #13
0
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})
コード例 #14
0
def weighing_slip_list(request):
    files = [serialize(p) for p in WeighingSlip.objects.all()]
    return upload_json_response(request, data={'files': files})
コード例 #15
0
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})