def create_update_address(line1, line2=None, line3=None, city=None, pin=None, address_id=None, latitude=None, longitude=None, landmark=None): if address_id: address = get_or_none(Address, id=int_or_none(address_id)) Address.objects.filter(id=int_or_none(address_id)).update( line1=line1, line2=line2, line3=line3, city=city, pin=pin, latitude=latitude, longitude=longitude, landmark=landmark) else: address = Address.objects.create(line1=line1, line2=line2, line3=line3, city=city, pin=pin, latitude=latitude, longitude=longitude, landmark=landmark) return address
def update_supplier(request): supplier = get_or_none(Broker, id=int_or_none(request.POST.get('supplier_id'))) phone_status, msg = verify_profile_phone( username=supplier.name.username, phone=request.POST.get('contact_person_number'), alt_phone=request.POST.get('alternate_number')) if phone_status: return json_error_response(msg=msg, status=409) email_status, msg = verify_profile_email(username=supplier.name.username, email=request.POST.get('email'), alt_email=None) if email_status: return json_error_response(msg=msg, status=409) if request.POST.get('pan') and Broker.objects.exclude( name=supplier.name).filter(pan=request.POST.get('pan')).exists(): return json_error_response("PAN Already exists", status=409) profile = Profile.objects.get(user=supplier.name) profile.name = request.POST.get('supplier_name') profile.contact_person_name = request.POST.get('contact_person_name') profile.phone = request.POST.get('phone') profile.alternate_phone = request.POST.get('alt_phone') profile.email = request.POST.get('email') profile.comment = request.POST.get('remarks') profile.save() create_update_profile( user=supplier.name, name=request.POST.get('supplier_name'), contact_person=request.POST.get('contact_person_name'), contact_person_phone=request.POST.get('contact_person_number'), phone=request.POST.get('contact_person_number'), alternate_phone=request.POST.get('alternate_number'), email=request.POST.get('email'), remarks=request.POST.get('remarks')) supplier.pan = request.POST.get('pan') supplier.route = request.POST.get('route') supplier.city = get_or_none(City, id=int_or_none( request.POST.get('supplier_city'))) supplier.aaho_office = get_or_none(AahoOffice, id=request.POST.get('aaho_office')) supplier.destination_state.clear() dest_states = request.POST.getlist('destination_states[]') if dest_states: if 'select_all' in dest_states: dest_states = State.objects.values_list('id', flat=True) for dest_state in dest_states: supplier.destination_state.add(dest_state) supplier.save() return json_success_response("success")
def register_owner(request): username = "".join(re.split("[^a-zA-Z]*", request.POST.get('owner_name')))[:12] owner_name = request.POST.get('owner_name') pan = request.POST.get('pan') if User.objects.filter(username__iexact=username).exists(): username = random.randrange(999999999999, 99999999999999) # if owner_name in Owner.objects.values_list('name__profile__name', flat=True): # return json_error_response(msg='Owner {} already exists'.format(request.POST.get('owner_name')), status=409) # if request.POST.get('pan') in Owner.objects.values_list('pan', flat=True): # return json_error_response(msg='Pan {} already exists for {}'.format(owner_name, ''.join( # Owner.objects.filter(pan=pan).values_list('name__profile__name', flat=True))), status=409) # # if Vehicle.objects.filter(id__in=request.POST.getlist('vehicle_id[]')).exclude(owner=None): # print (Vehicle.objects.filter(id__in=request.POST.getlist('vehicle_id[]')).exclude(owner=None)) user = User.objects.create_user(username=str(username).lower(), password='******') Profile.objects.create( user=user, name=request.POST.get('owner_name'), phone=request.POST.get('owner_phone', None), contact_person_name=request.POST.get('contact_person_name'), contact_person_phone=request.POST.get('contact_person_phone'), alternate_phone=request.POST.get('alternate_number'), email=request.POST.get('email'), comment=request.POST.get('remarks')) owner = Owner.objects.create( name=user, address=Address.objects.create( line1=request.POST.get('owner_address'), city=get_or_none(City, id=int_or_none(request.POST.get('city'))), pin=request.POST.get('pin', None)), route_temp=request.POST.get('route'), pan=request.POST.get('pan')) Broker.objects.create(name=user, address=Address.objects.create( line1=request.POST.get('owner_address'), city=get_or_none(City, id=int_or_none( request.POST.get('city'))), pin=request.POST.get('pin', None)), route=request.POST.get('route'), pan=request.POST.get('pan')) try: for vehicle in Vehicle.objects.filter( id__in=request.POST.getlist('vehicle_id[]')): vehicle.owner = owner vehicle.save() except ValueError: pass return json_success_response(msg="success")
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 register_customer(request): if request.POST.get('email_id') and Profile.objects.filter( email__iexact=request.POST.get('email_id')).exists(): return json_error_response('Email ID Already Exists', status=409) elif Profile.objects.filter( name__iexact=request.POST.get('company_name')).exists(): return json_error_response('Company Already Registered', status=409) # elif Profile.objects.filter(phone__iexact=request.POST.get('contact_person_number')).exists(): # return json_error_response('Phone Already Exists', status=409) elif Sme.objects.filter( company_code__iexact=request.POST.get('company_code')).exists(): return json_error_response('Company Code Already Exists', status=409) else: username = "".join( re.split("[^a-zA-Z]*", request.POST.get('company_name')))[:12] if User.objects.filter(username__iexact=username).exists(): username = random.randrange(999999999999, 99999999999999) user = User.objects.create_user(username=str(username).lower(), password='******') create_update_profile( user=user, name=request.POST.get('company_name'), contact_person=request.POST.get('contact_person_name'), contact_person_phone=request.POST.get('contact_person_number'), phone=request.POST.get('contact_person_number'), alternate_phone=request.POST.get('alternate_number'), email=request.POST.get('email_id'), remarks=request.POST.get('remarks')) Sme.objects.create( name=user, company_code=request.POST.get('company_code'), aaho_office=get_or_none(AahoOffice, id=request.POST.get('aaho_office')), gstin=request.POST.get('gstin', None), aaho_poc=get_or_none(Employee, id=int_or_none(request.POST.get('aaho_poc'))), credit_period=request.POST.get('credit_period', None), address=create_update_address( line1=request.POST.get('company_address'), city=get_or_none(City, id=int_or_none(request.POST.get('city'))), pin=request.POST.get('pin')), is_gst_applicable='no' if request.POST.get('is_gst_applicable') == 'n' else 'yes', customer_address=request.POST.get('company_address'), city=get_or_none(City, id=int_or_none(request.POST.get('city'))), pin=request.POST.get('pin'), created_by=request.user) return json_success_response('SME Successfully Registered')
def verify_documents(request): accept_choice = request.GET.get('accept_choice') s3_upload = get_or_none(S3Upload, id=int_or_none(request.GET.get('s3_upload_id'))) if accept_choice == 'accept' and isinstance(s3_upload, S3Upload): S3Upload.objects.filter( id=int_or_none(request.GET.get('s3_upload_id'))).update( verified=True, is_valid=True) elif accept_choice == 'reject' and isinstance(s3_upload, S3Upload): S3Upload.objects.filter( id=int_or_none(request.GET.get('s3_upload_id'))).update( verified=True, is_valid=False) else: pass return HttpResponseRedirect('/team/unverified-documents/')
def get_type_of_vehicle(self, obj): type_of_vehicle = get_or_none(VehicleCategory, id=int_or_none(obj.type_of_vehicle_id)) if not type_of_vehicle: vehicle_name = '' else: vehicle_name = type_of_vehicle.name() return vehicle_name
def track_individual_veh(request): device_id = request.GET.get('gps_log_id') if not device_id: return HttpResponseRedirect('/team/track-vehicles/') dtype, did = device_id.split('-', 1) did = int_or_none(did) if dtype == 'tempogo': gps_data = TempoGoGPSDevice.objects.get(id=did) elif dtype == 'mahindra': gps_data = MahindraGPSDevice.objects.get(id=did) elif dtype == 'gpsdevice': gps_data = GPSDevice.objects.get(id=did) elif dtype == 'tracknovate': gps_data = TracknovateGPSDevice.objects.get(id=did) elif dtype == 'waytracker': gps_data = WaytrackerGPSDevice.objects.get(id=did) elif dtype == 'secugps': gps_data = SecuGPSDevice.objects.get(id=did) else: raise Http404 data = get_gps_data() df = pd.DataFrame(data, columns=[ 'latitude', 'longitude', 'vehicle_number', 'vehicle_type', 'driver_name', 'driver_number', 'datetime', 'vehicle_status', 'device_id', 'id' ]) data_json = df.reset_index().to_json(orient='records') data_json = json.loads(data_json) return render(request, 'team/track/track_individual_vehicle.html', { 'gps': gps_data, 'data_json': data_json })
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 track_vehicle_data(device_id): if not device_id: return HttpResponseRedirect('/team/track-vehicles/') dtype, did = device_id.split('-', 1) did = int_or_none(did) if dtype == 'tempogo': gps = TempoGoGPSDevice.objects.get(id=did) elif dtype == 'mahindra': gps = MahindraGPSDevice.objects.get(id=did) elif dtype == 'gpsdevice': gps = GPSDevice.objects.get(id=did) elif dtype == 'tracknovate': gps = TracknovateGPSDevice.objects.get(id=did) elif dtype == 'waytracker': gps = WaytrackerGPSDevice.objects.get(id=did) elif dtype == 'secugps': gps = SecuGPSDevice.objects.get(id=did) else: raise Http404 gps_data = { 'latitude': gps.latitude, 'longitude': gps.longitude, 'vehicle_number': gps.vehicle_number, 'vehicle_type': gps.vehicle_type, 'driver_name': gps.driver_name, 'driver_number': gps.driver_number, 'location_time': gps.location_time, 'vehicle_status': gps.vehicle_status, } return {'gps': gps_data, 'data_json': track_vehicles_data()['data_json']}
def update_vehicle_page(request): vehicle = Vehicle.objects.get( id=int_or_none(request.GET.get('vehicle_id', None))) owners = [{ 'id': owner.id, 'name': owner.get_name(), 'phone': owner.get_phone() } for owner in Owner.objects.all()] vehicle_categories = [{ 'id': vehicle_category.id, 'vehicle_type': vehicle_category.vehicle_type, 'capacity': vehicle_category.capacity } for vehicle_category in VehicleCategory.objects.all()] body_type_choices = ( ('open', 'Open'), ('closed', 'Closed'), ('semi', 'Semi'), ('half', 'Half'), ('containerized', 'Containerized'), ) gps_enable_choices = (('yes', 'Yes'), ('no', 'No')) return render(request=request, template_name='team/registrations/update-vehicle.html', context={ 'vehicle': vehicle, 'owners': owners, 'vehicle_categories': vehicle_categories, 'body_type_choices': body_type_choices, 'gps_enable_choices': gps_enable_choices })
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 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 update_customer_page(request): customer = get_or_none(Sme, id=int_or_none(request.GET.get('customer_id'))) employees = Employee.objects.exclude(status='inactive') return render(request=request, template_name='team/registrations/customer-update.html', context={ 'customer': customer, 'employees': employees })
def vehicle_trip_data(request): data = request.data vehicle_id = int_or_none(data.get('vehicleId', None)) if vehicle_id: vehicle = get_or_none(Vehicle, id=vehicle_id) if not vehicle: return json_error_response( 'Vehicle with id=%s does not exist' % vehicle_id, 404) else: broker_vehicle_ids = BrokerVehicle.objects.filter( vehicle=vehicle).values_list('vehicle_id', flat=True) allocated_vehicles_data = VehicleAllocated.objects.filter( vehicle_number_id__in=broker_vehicle_ids).values( 'transaction_id', 'total_out_ward_amount', 'total_amount_to_owner', 'transaction__shipment_datetime', 'source_city', 'destination_city', 'transaction_id', 'material', 'transaction__total_vehicle_requested', 'transaction__transaction_status', 'transaction__transaction_id', 'vehicle_number__vehicle_number', 'lr_number') transaction_data = [{ 'id': v['transaction_id'], 'transaction_id': v['transaction__transaction_id'], 'status': v['transaction__transaction_status'], 'source_city': v['source_city'], 'destination_city': v['destination_city'], 'paid': str(int(v['total_out_ward_amount'])), 'amount': str(int(v['total_amount_to_owner'])), 'balance': str( int(v['total_amount_to_owner'] - v['total_out_ward_amount'])), 'total_vehicle_requested': v['transaction__total_vehicle_requested'], 'vehicle_number': display_format(v['vehicle_number__vehicle_number']), 'lr_number': v['lr_number'], 'shipment_date': v['transaction__shipment_datetime'].strftime('%d-%b-%Y') } for v in allocated_vehicles_data] return json_response({ 'status': 'success', 'data': transaction_data }) else: vehicle = Vehicle()
def update_customer(request): sme = get_or_none(Sme, id=int_or_none(request.POST.get('customer_id'))) # phone_status, msg = verify_profile_phone(username=sme.name.username, # phone=request.POST.get('contact_person_number'), # alt_phone=request.POST.get('alternate_number')) # if phone_status: # return json_error_response(msg=msg, status=409) create_update_profile( user=sme.name, name=request.POST.get('company_name'), contact_person=request.POST.get('contact_person_name'), contact_person_phone=request.POST.get('contact_person_number'), phone=request.POST.get('contact_person_number'), alternate_phone=request.POST.get('alternate_number'), email=request.POST.get('email_id'), remarks=request.POST.get('remarks')) create_update_address(address_id=sme.address_id, line1=request.POST.get('company_address'), city=get_or_none(City, id=int_or_none( request.POST.get('city'))), pin=request.POST.get('pin')) sme.customer_address = request.POST.get('company_address') sme.aaho_office = get_or_none(AahoOffice, id=request.POST.get('aaho_office')) sme.city = get_or_none(City, id=int_or_none(request.POST.get('city'))) sme.pin = request.POST.get('pin') sme.gstin = sme.gstin if not request.POST.get( 'gstin') else request.POST.get('gstin') sme.is_gst_applicable = request.POST.get('is_gst_applicable') sme.aaho_poc = get_or_none(Employee, id=int_or_none(request.POST.get('aaho_poc'))) sme.credit_period = request.POST.get('credit_period', None) sme.save() return json_success_response(msg="success")
def register_supplier(request): if request.POST.get('email_id') and Profile.objects.filter( email__iexact=request.POST.get('email_id')).exists(): return json_error_response('Email ID Already Exists', status=409) elif Profile.objects.filter( name__iexact=request.POST.get('supplier_name')).exists(): return json_error_response('Supplier Already Registered', status=409) elif Profile.objects.filter( phone=request.POST.get('contact_person_number')).exists(): return json_error_response('Phone Already Exists', status=409) elif request.POST.get('pan') and TaxationID.objects.filter( pan__iexact=request.POST.get('pan')).exists(): return json_error_response('PAN Already Exists', status=409) else: username = "".join( re.split("[^a-zA-Z]*", request.POST.get('supplier_name')))[:12] if User.objects.filter(username__iexact=username).exists(): username = random.randrange(999999999999, 99999999999999) user = User.objects.create_user(username=str(username).lower(), password='******') create_update_profile( user=user, name=request.POST.get('supplier_name'), contact_person=request.POST.get('contact_person_name'), contact_person_phone=request.POST.get('contact_person_number'), phone=request.POST.get('contact_person_number'), alternate_phone=request.POST.get('alternate_number'), email=request.POST.get('email_id'), remarks=request.POST.get('remarks')) instance = Broker.objects.create( name=user, city=get_or_none(City, id=int_or_none( request.POST.get('supplier_city'))), route=request.POST.get('route'), taxation_details=None if not request.POST.get('pan') else TaxationID.objects.create(pan=request.POST.get('pan')), aaho_office=get_or_none(AahoOffice, id=request.POST.get('aaho_office'))) dest_states = request.POST.getlist('destination_states[]') if dest_states: if 'select_all' in dest_states: dest_states = State.objects.values_list('id', flat=True) for dest_state in dest_states: instance.destination_state.add(dest_state) return json_success_response('Supplier Successfully Registered')
def update_owner_page(request): owner = get_or_none(Owner, id=int_or_none(request.GET.get('owner_id'))) vehicles = [{ 'id': vehicle.id, 'vehicle_number': display_format(vehicle.vehicle_number) } for vehicle in Vehicle.objects.filter(owner=None)] owner_vehicles = [{ 'id': vehicle.id, 'vehicle_number': display_format(vehicle.vehicle_number) } for vehicle in Vehicle.objects.filter(owner=owner)] return render( request=request, template_name='team/registrations/owner-update.html', context={ 'owner': owner, 'vehicles': vehicles, 'owner_vehicles': owner_vehicles, }, )
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_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 update_booking_field(data): booking = get_or_none(ManualBooking, id=data['booking_id']) booking.customer_to_be_billed_to = get_or_none(Sme, id=int_or_none(data['to_be_billed_to'])) booking.save()
def get_aaho_office(self, obj): aaho_office = get_or_none(AahoOffice, id=int_or_none(obj.aaho_office_id)) if not aaho_office: raise serializers.ValidationError("AahoOffice Does Not Exist") return aaho_office.branch_name
def get_to_city(self, obj): city = get_or_none(City, id=int_or_none(obj.to_city_id)) if not city: raise serializers.ValidationError("To City Does Not Exist") return city.name
def get_to_state(self, obj): city = get_or_none(City, id=int_or_none(obj.to_city_id)) if not city: raise serializers.ValidationError("To City Does Not Exist") else: return city.state.name if city and city.state else ''
def parse_requirement_fields(load): user = load.user data = load.data form = RequirementForm(data) if not form.is_valid(): return {'status': 'failure', 'msg': 'Pls enter all * fields'} from_shipment_date = data.get('from_shipment_date', None) to_shipment_date = data.get('to_shipment_date', None) # print(to_shipment_date) try: present = datetime.datetime.now() from_dt = datetime.datetime.strptime(from_shipment_date, '%Y-%m-%d') if from_dt.date() < present.date(): return { 'status': 'failure', 'msg': 'From Date should be greater than or equal to Today' } if to_shipment_date: to_date = datetime.datetime.strptime(to_shipment_date, '%Y-%m-%d') if to_date < from_dt: return { 'status': 'failure', 'msg': 'To Date should be greater than From Date' } if to_date.date() < present.date(): return { 'status': 'failure', 'msg': 'To Date should be greater than or equal to Today' } else: to_shipment_date = None except ValueError: return { 'status': 'failure', 'msg': 'Incorrect date format, should be YYYY-MM-DD' } tonnage = data.get('tonnage', None) no_of_vehicles = data.get('no_of_vehicles', None) material = data.get('material', None) rate = data.get('rate', None) if not tonnage and not no_of_vehicles: return { 'status': 'failure', 'msg': 'Enter Either Tonnage or No of Vehicles' } if data.get('from_city_id', None) == data.get('to_city_id', None): return { 'status': 'failure', 'msg': 'From City and To City should be different' } client = get_or_none(Sme, id=int_or_none(data.get('client_id'))) if not isinstance(client, Sme): return {'status': 'failure', 'msg': 'Incorrect client '} from_city = get_or_none(City, id=data.get('from_city_id', None)) if not isinstance(from_city, City): return {'status': 'failure', 'msg': 'Incorrect from city '} to_city = get_or_none(City, id=data.get('to_city_id', None)) if not isinstance(to_city, City): return {'status': 'failure', 'msg': 'Incorrect to city '} type_of_vehicle = get_or_none(VehicleCategory, id=int_or_none(data.get('vehicle_type_id'))) aaho_office = get_or_none(AahoOffice, id=data.get('aaho_office_id', None)) if not isinstance(aaho_office, AahoOffice): return {'status': 'failure', 'msg': 'Incorrect Aaho Office'} created_by = User.objects.get(username=user.username) if tonnage and not no_of_vehicles: no_of_vehicles = None if no_of_vehicles and not tonnage: tonnage = None if not rate: rate = None if not type_of_vehicle: type_of_vehicle = None else: if not isinstance(type_of_vehicle, VehicleCategory): return {'status': 'failure', 'msg': 'Incorrect vehicle type'} req_status = data.get('req_status', None) if req_status not in [x[0] for x in REQ_STATUS]: return {'status': 'failure', 'msg': 'Requirement status is wrong'} remark = data.get('remark', None) if not remark: remark = None cancel_reason = data.get('cancel_reason', None) if not cancel_reason: cancel_reason = None objects = { 'status': 'success', 'client': client, 'from_shipment_date': from_shipment_date, 'to_shipment_date': to_shipment_date, 'from_city': from_city, 'to_city': to_city, 'aaho_office': aaho_office, 'tonnage': tonnage, 'no_of_vehicles': no_of_vehicles, 'material': material, 'type_of_vehicle': type_of_vehicle, 'rate': rate, 'created_by': created_by, 'req_status': req_status, 'remark': remark, 'cancel_reason': cancel_reason } return objects
def test_int_or_none_success(self): self.assertEqual(int_or_none("000"), 0) self.assertEqual(int_or_none("21"), 21)
def update_owner(request): if request.POST.get('owner_name') in Owner.objects.exclude( name__profile__name=request.POST.get('owner_name')).values_list( 'name__profile__name', flat=True): return json_error_response(msg='Owner {} already exists'.format( request.POST.get('owner_name')), status=409) owner = get_or_none(Owner, id=int_or_none(request.POST.get('owner_id'))) if owner: profile = Profile.objects.get(user=owner.name) profile.name = request.POST.get('owner_name') profile.phone = request.POST.get('owner_phone') profile.alternate_phone = request.POST.get('alternate_number') profile.contact_person_name = request.POST.get('contact_person_name') profile.contact_person_phone = request.POST.get('contact_person_phone') profile.comment = request.POST.get('remarks') profile.save() if not owner.address: owner.address = Address.objects.create( line1=request.POST.get('owner_address'), city=get_or_none(City, id=int_or_none(request.POST.get('city'))), pin=request.POST.get('pin')) else: address = Address.objects.get(id=owner.address.id) address.line1 = request.POST.get('owner_address') address.city = get_or_none(City, id=request.POST.get('city')) address.pin = request.POST.get('pin') address.save() owner.temp_address = request.POST.get('owner_address') owner.route_temp = request.POST.get('route') owner.pan = request.POST.get('pan') owner.save() broker = get_or_none(Broker, name=owner.name) if broker: if broker.address: broker.address = Address.objects.create( line1=request.POST.get('owner_address'), city=get_or_none(City, id=int_or_none(request.POST.get('city'))), pin=request.POST.get('pin')) else: address = get_or_none( Address, id=None if not broker.address else broker.address.id) if address: address.line1 = request.POST.get('owner_address') address.city = get_or_none(City, id=int_or_none( request.POST.get('city'))) address.pin = request.POST.get('pin') address.save() broker.pan = request.POST.get('pan') broker.route = request.POST.get('route') broker.city = get_or_none(City, id=int_or_none(request.POST.get( 'city', None))) broker.save() else: Broker.objects.create( name=None if not owner.name else owner.name, address=owner.address, pan=owner.pan, city=get_or_none(City, id=int_or_none(request.POST.get('city', None))), route=request.POST.get('route')) for vehicle in Vehicle.objects.filter( id__in=request.POST.getlist('vehicle_id[]')): vehicle.owner = owner vehicle.save() broker = Broker.objects.get(name=owner.name) try: BrokerVehicle.objects.create(broker=broker, vehicle=vehicle) except IntegrityError: pass return json_success_response(msg="success")
def update_driver_page(request): driver = get_or_none(Driver, id=int_or_none(request.GET.get('driver_id'))) return render(request=request, template_name='team/registrations/driver-update.html', context={'driver': driver})
def test_int_or_none_failure(self): self.assertFalse(int_or_none("0.00")) self.assertFalse(int_or_none("")) self.assertFalse(int_or_none("12.3a"))
def update_supplier_page(request): supplier = get_or_none(Broker, id=int_or_none(request.GET.get('supplier_id'))) return render(request=request, template_name='team/registrations/update-supplier.html', context={'supplier': supplier})