def outward_payment(paid_to, amount, date, fuel_card, remarks, booking_id_list, account_id, payment_mode, is_sms, username, is_refund_amount=False): bank_account = get_or_none(Bank, id=account_id) if payment_mode == 'bank_transfer': mode, payment_date = payment_mode_date( current_datetime=datetime.now(), bank=bank_account, amount=amount, payment_date=django_date_format(date)) else: mode, payment_date = payment_mode, django_date_format(date) manual_bookings = ManualBooking.objects.filter(id__in=booking_id_list) payment = OutWardPayment() payment.paid_to = paid_to payment.actual_amount = amount payment.remarks = remarks payment.payment_date = payment_date payment.fuel_card = fuel_card_obj(card_id=fuel_card) payment.bank_account, payment.payment_mode = bank_account, mode if payment.payment_mode not in [ 'neft', 'rtgs', 'hdfc_internal_account', 'imps' ]: payment.status = 'paid' else: payment.status = 'unpaid' payment.lorry_number = ', '.join([ booking.lorry_number for booking in manual_bookings if booking.lorry_number ]) payment.created_by = User.objects.get(username=username) payment.is_refund_amount = True if is_refund_amount == 'y' else False payment.changed_by = User.objects.get(username=username) payment.save() for booking in manual_bookings: payment.booking_id.add(booking) for booking in manual_bookings: update_outward_payments(booking) if is_sms == 'yes': payment.is_sms_supplier = True payment.save() tasks.email_outward_payment.delay(payment.id) if payment.is_sms_supplier and settings.ENABLE_SMS: tasks.sms_outward_payment.delay(payment_id=payment.id) return payment
def inward_payment(booking_id_list, receive_from, amount, payment_mode, date, invoice_number, remarks, trn, username, tds_amount=0): manual_bookings = ManualBooking.objects.filter(id__in=booking_id_list) payment = InWardPayment() payment.received_from = receive_from payment.actual_amount = amount payment.payment_mode = payment_mode payment.tds = tds_amount payment.remarks = remarks if trn: payment.trn = trn payment.payment_date = django_date_format(date) payment.invoice_number = invoice_number payment.created_by = User.objects.get(username=username) payment.changed_by = User.objects.get(username=username) payment.save() for booking in payment.booking_id.all(): booking.tds_deducted_amount += sum( booking.inward_booking.values_list('tds', flat=True)) booking.total_in_ward_amount += sum( booking.inward_booking.values_list('actual_amount', flat=True)) booking.save() for booking in manual_bookings: payment.booking_id.add(booking) for booking in manual_bookings: update_inward_payments(booking) return payment
def update_inward_payment(booking_id_list, payment_id, received_from, amount, payment_mode, remarks, date, invoice_number, trn, tds_amount=0): manual_bookings = ManualBooking.objects.filter(id__in=booking_id_list) payment = InWardPayment.objects.get(id=payment_id) payment.received_from = received_from payment.tds = tds_amount payment.actual_amount = amount payment.payment_mode = payment_mode payment.remarks = remarks payment.payment_date = django_date_format(date) payment.invoice_number = invoice_number payment.trn = trn payment.save() for value in payment.booking_id.all(): value.total_in_ward_amount -= to_int(amount) value.tds_deducted_amount += int(float(tds_amount)) value.save() payment.booking_id.clear() for booking in manual_bookings: payment.booking_id.add(booking) for booking in manual_bookings: update_inward_payments(booking)
def in_ward_payments(request): if request.method == 'POST': payment = InWardPayment.objects.create( received_from=request.POST.get('received_from'), actual_amount=request.POST.get('actual_amount'), payment_mode=request.POST.get('payment_mode'), remarks=request.POST.get('remarks'), payment_date=django_date_format( request.POST.get('inward_payment_date')), invoice_number=request.POST.get('invoice_number'), created_by=User.objects.get(username=request.user.username)) booking_id_list = request.POST.getlist('booking_id[]') for booking_id in booking_id_list: manual_booking_id = ManualBooking.objects.get( booking_id=booking_id) in_ward_payment = InWardPayment.objects.filter( booking_id=manual_booking_id) amount = 0 for value in in_ward_payment: amount += value.actual_amount amount += to_int(float(request.POST.get('actual_amount'))) manual_booking_id.total_in_ward_amount = amount manual_booking_id.save() payment.booking_id.add(manual_booking_id) update_inward_payments(manual_booking_id)
def save_invoice_details(request, booking): booking.party_invoice_number = request.POST.get('party_invoice_number') booking.party_invoice_date = django_date_format( request.POST.get('party_invoice_date')) booking.party_invoice_amount = to_float( request.POST.get('party_invoice_amount')) booking.road_permit_number = request.POST.get('road_permit_number') booking.save()
def update_booking_pod_data(request): approve_type = request.POST.get('accept_choice') if approve_type == 'accept': booking = ManualBooking.objects.get(id=request.POST.get('booking_id')) booking.supplier_charged_weight = to_float( request.POST.get('supplier_weight')) booking.charged_weight = to_float(request.POST.get('party_weight')) booking.loaded_weight = to_float(request.POST.get('loaded_weight')) booking.delivered_weight = to_float( request.POST.get('delivered_weight')) booking.pod_date = datetime.now() booking.delivery_datetime = django_date_format( request.POST.get('delivery_datetime')) for pod in PODFile.objects.filter(booking=booking).exclude( verified=True): pod.is_valid = True pod.verified = True pod.verified_by = request.user pod.verified_datetime = datetime.now() pod.save() S3Upload.objects.filter(id=pod.s3_upload_id).update(is_valid=True, verified=True) # if verify_pod(booking=booking): booking.pod_status = 'completed' booking.save() return json_success_response( msg='POD for booking ID {} is Accepted'.format(booking.booking_id)) elif approve_type == 'reject': booking = ManualBooking.objects.get(id=request.POST.get('booking_id')) booking.pod_status = 'rejected' booking.save() for lr in booking.lr_numbers.all(): RejectedPOD.objects.create( booking=booking, lr=lr, remarks=request.POST.get('rejection_remark'), rejected_by=request.user) if not booking.lr_numbers.exists(): RejectedPOD.objects.create( booking=booking, remarks=request.POST.get('rejection_remark'), rejected_by=request.user) for pod in PODFile.objects.filter(booking=booking).exclude( verified=True): pod.is_valid = False pod.verified = True pod.verified_by = request.user pod.verified_datetime = datetime.now() pod.save() S3Upload.objects.filter(id=pod.s3_upload_id).update(is_valid=False, verified=True) return json_success_response( msg='POD for booking ID {} is rejected'.format(booking.booking_id)) return json_error_response(msg='fail', status=404)
def register_vehicle(request): if Vehicle.objects.filter(vehicle_number=compare_format( request.POST.get('vehicle_number'))).exists(): return json_error_response(msg="Vehicle Already Exists", status=409) owner = get_or_none(Owner, id=int_or_none(request.POST.get('owner_id', None))) vehicle = Vehicle.objects.create( owner=owner, vehicle_number=compare_format(request.POST.get('vehicle_number')), rc_number=request.POST.get('rc_number'), permit=request.POST.get('permit_number'), permit_validity=django_date_format( request.POST.get('permit_validity')), permit_type=request.POST.get('permit_type'), vehicle_type=get_or_none(VehicleCategory, id=int_or_none( request.POST.get('vehicle_category'))), vehicle_capacity=to_int(request.POST.get('exact_vehicle_capacity')), body_type=request.POST.get('vehicle_body_type'), vehicle_model=request.POST.get('vehicle_model'), chassis_number=request.POST.get('chassis_number'), engine_number=request.POST.get('engine_number'), insurer=request.POST.get('insurer'), insurance_number=request.POST.get('insurance_number'), insurance_validity=django_date_format( request.POST.get('insurance_validity')), registration_year=None if not request.POST.get('registration_year') else django_date_format('01-Jan-' + request.POST.get('registration_year').strip()), registration_validity=django_date_format( request.POST.get('registration_validity')), fitness_certificate_number=request.POST.get( 'fitness_certificate_number'), fitness_certificate_issued_on=django_date_format( request.POST.get('fitness_certificate_issued_on')), fitness_certificate_validity_date=django_date_format( request.POST.get('fitness_certificate_validity')), puc_certificate_number=request.POST.get('puc_certificate_number'), puc_certificate_issued_on=django_date_format( request.POST.get('puc_certificate_issued_on')), puc_certificate_validity_date=django_date_format( request.POST.get('puc_certificate_validity')), gps_enabled=False if request.POST.get('gps_enable') == 'no' else True, changed_by=request.user) if owner: create_broker_owner(owner=owner) broker = Broker.objects.get(name=owner.name) update_broker_vehicle(broker=broker, vehicle=vehicle) return json_success_response(msg="Success")
def save_insurance_details(request, booking): booking.insurance_provider = request.POST.get('insurance_provider') booking.insurance_policy_number = request.POST.get( 'insurance_policy_number') booking.insured_amount = to_float(request.POST.get('insurance_amount')) booking.insurance_date = django_date_format( request.POST.get('insurance_date')) is_insured = request.POST.get('insured') if is_insured == 'insured': booking.is_insured = True else: booking.is_insured = False booking.save()
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 update_vehicle(request): vehicle = Vehicle.objects.get( id=int_or_none(request.POST.get('vehicle_id'))) vehicle.owner = get_or_none(Owner, id=int_or_none( request.POST.get('owner_id', None))) vehicle.vehicle_number = compare_format(request.POST.get('vehicle_number')) vehicle.rc_number = request.POST.get('rc_number') vehicle.permit = request.POST.get('permit_number') vehicle.permit_validity = django_date_format( request.POST.get('permit_validity')) vehicle.permit_type = request.POST.get('permit_type') vehicle.vehicle_type = get_or_none( VehicleCategory, id=int_or_none(request.POST.get('vehicle_category'))) vehicle.vehicle_capacity = to_int( request.POST.get('exact_vehicle_capacity')) vehicle.body_type = request.POST.get('vehicle_body_type') vehicle.vehicle_model = request.POST.get('vehicle_model') vehicle.chassis_number = request.POST.get('chassis_number') vehicle.engine_number = request.POST.get('engine_number') vehicle.insurer = request.POST.get('insurer') vehicle.insurance_number = request.POST.get('insurance_number') vehicle.insurance_validity = django_date_format( request.POST.get('insurance_validity')) vehicle.registration_year = None if not request.POST.get( 'registration_year') else django_date_format( '01-Jan-' + request.POST.get('registration_year').strip()) vehicle.registration_validity = django_date_format( request.POST.get('registration_validity')) vehicle.fitness_certificate_number = request.POST.get( 'fitness_certificate_number') vehicle.fitness_certificate_issued_on = django_date_format( request.POST.get('fitness_certificate_issued_on')) vehicle.fitness_certificate_validity_date = django_date_format( request.POST.get('fitness_certificate_validity')) vehicle.puc_certificate_number = request.POST.get('puc_certificate_number') vehicle.puc_certificate_issued_on = django_date_format( request.POST.get('puc_certificate_issued_on')) vehicle.puc_certificate_validity_date = django_date_format( request.POST.get('puc_certificate_validity')) vehicle.gps_enabled = False if request.POST.get( 'gps_enable') == 'no' else True vehicle.changed_by = request.user vehicle.save() return json_success_response("success")
def register_driver(request): if Driver.objects.filter( phone=request.POST.get('driver_phone_number')).exists(): return json_error_response('Driver Already Exists', status=409) else: Driver.objects.create( name=request.POST.get('driver_name'), phone=request.POST.get('driver_phone_number'), alt_phone=request.POST.get('driver_alt_phone_number1'), alt_phone2=request.POST.get('driver_alt_phone_number2'), driving_licence_number=request.POST.get('dl_number'), driving_licence_validity=django_date_format( request.POST.get('dl_validity')), route=request.POST.get('route'), driving_licence_location=request.POST.get('driver_city')) return json_success_response('Driver Successfully Registered')
def update_driver_details(request): if Driver.objects.filter( phone=request.POST.get('driver_phone_number')).exclude( id=int_or_none(request.POST.get('driver_id'))).exists(): return json_error_response("Phone Already Exists", status=409) driver = get_or_none(Driver, id=int_or_none(request.POST.get('driver_id'))) if driver: driver.name = request.POST.get('driver_name') driver.phone = request.POST.get('driver_phone_number') driver.alt_phone = request.POST.get('driver_alt_phone_number1') driver.alt_phone2 = request.POST.get('driver_alt_phone_number2') driver.driving_licence_number = request.POST.get('dl_number') driver.driving_licence_validity = django_date_format( request.POST.get('dl_validity')) driver.route = request.POST.get('route') driver.save() return json_success_response("Updated success")
def save_updated_out_ward_payment(request): booking_id_list = request.POST.getlist('booking_id[]') payment_id = OutWardPayment.objects.get(id=request.POST.get('payment_id')) old_amount = str(to_int(payment_id.actual_amount)) new_amount = str(to_int(request.POST.get('actual_amount'))) payment_id.paid_to = request.POST.get('paid_to') payment_id.actual_amount = request.POST.get('actual_amount') payment_id.remarks = request.POST.get('remarks') payment_id.payment_date = django_date_format( request.POST.get('outward_payment_date')) payment_id.invoice_number = request.POST.get('invoice_number') payment_id.fuel_card = None if not request.POST.get( 'fuel_card_number') else FuelCard.objects.get( id=request.POST.get('fuel_card_number')) # save_outward_payment__mode(request, payment_id) if payment_id.payment_mode not in [ 'neft', 'rtgs', 'hdfc_internal_account' ]: payment_id.status = 'paid' payment_id.save() for value in payment_id.booking_id.all(): value.total_out_ward_amount -= to_int( request.POST.get('actual_amount')) value.save() payment_id.booking_id.clear() booking_id = '' for value in booking_id_list: manual_booking_id = ManualBooking.objects.get(booking_id=value) payment_id.booking_id.add(manual_booking_id) out_ward_payment = OutWardPayment.objects.filter( booking_id=manual_booking_id).exclude(is_refund_amount=True) amount = 0 for value in out_ward_payment: amount += value.actual_amount if manual_booking_id.total_amount_to_owner > amount: manual_booking_id.outward_payment_status = 'partial' elif manual_booking_id.total_amount_to_owner == amount: manual_booking_id.outward_payment_status = 'complete' elif manual_booking_id.total_amount_to_owner < amount: manual_booking_id.outward_payment_status = 'excess' manual_booking_id.total_out_ward_amount = amount booking_id = manual_booking_id.booking_id manual_booking_id.save() email_updated_outward_payment(request, booking_id, payment_id, old_amount, new_amount)
def email_updated_outward_payment(request, booking_id, payment, old_amount, new_amount): booking_data = ManualBooking.objects.get(booking_id=booking_id) paid_to = request.POST.get('paid_to') payment_mode = request.POST.get('outward_payment_mode') remarks = request.POST.get('remarks') payment_date = django_date_format( request.POST.get('outward_payment_date')).strftime('%d-%b-%Y') lr = '' for value in booking_data.lr_numbers.all(): lr += value.lr_number + ', ' subject = "Updated Outward Payment for " + booking_data.booking_id prior_amount_data = OutWardPayment.objects.filter(booking_id=booking_data) paid_amount = 0 for value in prior_amount_data: paid_amount += value.actual_amount paid_amount = to_int(paid_amount) if payment.bank_account: body = "LR No(s) : " + lr + '\nPaid To : ' + payment.paid_to + '\nAccount Holder Name: ' + payment.bank_account.account_holder_name + '\nPrevious Amount : ' + old_amount + '\nUpdated Amount : ' + new_amount + '\nMode : ' + payment_mode + "\nDate : " + payment_date + "\nRemarks : " + remarks + "\n\n" + "Payments made for " + booking_id + ": Rs. " + str( paid_amount ) + "\nTotal amount to owner for " + booking_id + ": Rs. " + str( booking_data.total_amount_to_owner) elif payment.fuel_card: body = "LR No(s) : " + lr + '\nPaid To : ' + paid_to + '\nFuel Card Number: ' + payment.fuel_card.card_number + '\nPrevious Amount : ' + old_amount + '\nUpdated Amount : ' + new_amount + '\nMode : ' + payment_mode + "\nDate : " + payment_date + "\nRemarks : " + remarks + "\n\n" + "Payments made for " + booking_id + ": Rs. " + str( paid_amount ) + "\nTotal amount to owner for " + booking_id + ": Rs. " + str( booking_data.total_amount_to_owner) else: body = "LR No(s) : " + lr + '\nPaid To : ' + paid_to + '\nPrevious Amount : ' + old_amount + '\nUpdated Amount : ' + new_amount + '\nMode : ' + payment.get_payment_mode_display( ) + "\nDate : " + payment_date + "\nRemarks : " + remarks + "\n\n" + "Payments made for " + booking_id + ": Rs. " + str( paid_amount ) + "\nTotal amount to owner for " + booking_id + ": Rs. " + str( booking_data.total_amount_to_owner) to_email_list = get_email_list(booking_data) email = EmailMessage(subject, body, 'AAHO UPDATED OUTWARD PAYMENT', to=to_email_list) if settings.ENABLE_MAIL and not settings.TESTING: email.send()
def update_outward_payment(booking_id_list, paid_to, amount, remarks, date, fuel_card, payment_mode, payment_id): manual_bookings = ManualBooking.objects.filter(id__in=booking_id_list) payment = OutWardPayment.objects.get(id=payment_id) old_amount = str(to_int(payment.actual_amount)) payment.paid_to = paid_to payment.actual_amount = amount payment.remarks = remarks payment.payment_mode = payment_mode payment.payment_date = django_date_format(date) payment.fuel_card = fuel_card_obj(card_id=fuel_card) payment.lorry_number = ', '.join( manual_bookings.values_list('lorry_number', flat=True)) payment.save() for value in payment.booking_id.all(): value.total_out_ward_amount -= to_int(amount) value.save() payment.booking_id.clear() for booking in manual_bookings: payment.booking_id.add(booking) email_updated_outward_payment(booking.booking_id, payment_id, old_amount, str(to_int(amount))) for booking in manual_bookings: update_outward_payments(booking)
def save_existing_manual_booking_data(request, booking_id): booking = ManualBooking.objects.get(id=booking_id) from_city = get_or_none(City, id=request.POST.get('from_city')) if isinstance(from_city, City): from_city_fk = from_city from_city = from_city.name else: from_city = None from_city_fk = None to_city = get_or_none(City, id=request.POST.get('to_city')) if isinstance(to_city, City): to_city_fk = to_city to_city = to_city.name else: to_city = None to_city_fk = None consignor_city = get_or_none(City, id=request.POST.get('consignor_city')) if isinstance(consignor_city, City): consignor_city_fk = consignor_city consignor_city = consignor_city.name else: consignor_city_fk = None consignor_city = None consignee_city = get_or_none(City, id=request.POST.get('consignee_city')) if isinstance(consignee_city, City): consignee_city_fk = consignee_city consignee_city = consignee_city.name else: consignee_city_fk = None consignee_city = None vehicle_category = get_or_none(VehicleCategory, id=request.POST.get('vehicle_category_id')) if isinstance(vehicle_category, VehicleCategory): type_of_vehicle = vehicle_category.vehicle_category else: type_of_vehicle = None vehicle = get_or_none(Vehicle, vehicle_number=compare_format( request.POST.get('vehicle_number'))) if isinstance(vehicle, Vehicle): lorry_number = display_format(vehicle.vehicle_number) else: lorry_number = None if not EMP_GROUP3 in request.user.groups.values_list('name', flat=True): booking.party_rate = to_int(request.POST.get('party_rate')) booking.charged_weight = to_float(request.POST.get('charged_weight')) booking.additional_charges_for_company = to_int( request.POST.get('additional_charges_for_company')) booking.deductions_for_company = to_int( request.POST.get('deductions_for_company')) booking.total_amount_to_company = to_int( request.POST.get('total_amount_to_party')) booking.refund_amount = to_int(request.POST.get('refundable_amount')) booking.invoice_amount = to_int(request.POST.get('invoice_amount')) booking.invoice_remarks_for_deduction_discount = request.POST.get( 'invoice_remarks_for_deduction_discount') booking.advance_amount_from_company = request.POST.get( 'advance_from_company') booking.invoice_remarks_for_additional_charges = request.POST.get( 'invoice_remarks_for_additional_charges') booking.consignor_name = request.POST.get('consignor_name') booking.consignor_address = request.POST.get('consignor_address') booking.consignor_city = consignor_city booking.consignor_city_fk = consignor_city_fk booking.consignor_pin = request.POST.get('consignor_pin') booking.consignor_phone = request.POST.get('consignor_phone') booking.consignor_gstin = request.POST.get('consignor_gstin') booking.consignee_name = request.POST.get('consignee_name') booking.consignee_address = request.POST.get('consignee_address') booking.consignee_city = consignee_city booking.consignee_city_fk = consignee_city_fk booking.consignee_pin = request.POST.get('consignee_pin') booking.consignee_phone = request.POST.get('consignee_phone') booking.consignee_gstin = request.POST.get('consignee_gstin') booking.driver = get_or_none(Driver, id=request.POST.get('truck_driver_id')) shipment_date = request.POST.get('shipment_datetime') booking.shipment_date = None if is_blank( shipment_date) else datetime.strptime(shipment_date, '%Y-%m-%d') booking.billing_type = request.POST.get('billing_type') booking.number_of_package = request.POST.get('number_of_package') booking.material = request.POST.get('material') booking.from_city = from_city booking.from_city_fk = from_city_fk booking.to_city = to_city booking.to_city_fk = to_city_fk booking.lorry_number = lorry_number booking.vehicle = vehicle booking.party_invoice_number = request.POST.get('party_invoice_number') booking.party_invoice_date = django_date_format( request.POST.get('party_invoice_date')) booking.party_invoice_amount = to_float( request.POST.get('party_invoice_amount')) booking.road_permit_number = request.POST.get('road_permit_number') booking.vehicle_category = vehicle_category booking.type_of_vehicle = type_of_vehicle booking.liability_of_service_tax = request.POST.get( 'liability_of_service_tax') booking.loaded_weight = to_float(request.POST.get('loaded_weight')) booking.supplier_charged_weight = to_float( request.POST.get('supplier_charged_weight')) booking.supplier_rate = to_int(request.POST.get('supplier_rate')) save_insurance_details(request, booking) booking.comments = request.POST.get('comments') booking.billing_type = request.POST.get('billing_type') booking.loading_charge = to_int(request.POST.get('loading_charge')) booking.unloading_charge = to_int(request.POST.get('unloading_charge')) booking.detention_charge = to_int(request.POST.get('detention_charge')) booking.additional_charges_for_owner = to_int( request.POST.get('additional_charges_for_owner')) booking.commission = to_int(request.POST.get('commission')) booking.lr_cost = to_int(request.POST.get('lr_cost')) booking.deduction_for_advance = to_int( request.POST.get('deduction_for_advance')) booking.deduction_for_balance = to_int( request.POST.get('deduction_for_balance')) booking.other_deduction = to_int(request.POST.get('other_deduction')) booking.remarks_about_deduction = request.POST.get( 'remarks_about_deduction') booking.total_amount_to_owner = to_int( request.POST.get('total_amount_to_owner')) booking.tds_deducted_amount = to_int( request.POST.get('tds_deducted_amount')) booking.invoice_status = request.POST.get('invoice_status') booking.note_for_additional_owner_charges = request.POST.get( 'note_for_additional_owner_charges') booking.is_advance = request.POST.get('is_print_payment_mode_instruction') booking.changed_by = request.user booking.save() Vehicle.objects.filter( vehicle_number=compare_format(booking.lorry_number)).update( vehicle_type=vehicle_category) save_vendor_details(booking) update_inward_payments(booking) update_outward_payments(booking) update_invoice_status(booking) return booking