def get_quote_request(request):
    """
    This returns a list of quotes
    """
    propList=[]
    requested=[]
    data = {}
    try:
         request.session['vendor_name']
    except:
         sign_out_vendor(request)
         return redirect('/vendor/')
    try:
        properties=Property.objects.filter(property_owner_id=Customer.objects.get(user_ptr_id=request.GET.get('vendor_id')))
        for prop in properties:
            propList.append(prop.property_id)

        requestedProperty= RequestedProperty.objects.filter(property_id__in=propList)
        #print requestedProperty
        for obj in requestedProperty:
            requested.append(obj.quote_request_id.get_vendor_quote_info())

        #quotes = QuoteRequest.objects.filter(customer_id=Customer.objects.get(id=request.session['apt_vendor_id']))
        data = { 'data' : requested }
    except Exception as err:
        print 'err', err
        data = {'data' : []}
    return HttpResponse(json.dumps(data), content_type='application/json')
def get_request_list(request):
    data = {}
    try:
         request.session['vendor_name']
    except:
         sign_out_vendor(request)
         return redirect('/vendor/')
    try:
        quotes = QuoteRequest.objects.all()
        data = { 'data' :  [ q.get_quote_info() for q in quotes ]}
    except Exception as err:
        print 'err', err
        data = {'data' : 'none'}
    return HttpResponse(json.dumps(data), content_type='application/json')
def request_list_page(request):
    print 'Quote Request List Page'
    data="";
    try:
        request.session['vendor_name']
    except:
        sign_out_vendor(request)
        return redirect('/vendor/')

    if not request.user.is_authenticated():
        return redirect('/vendor/')
    try:
        # store user activities
        store_user_track(request,'Vendor Opening Request List Page' )
        
        vendor = Customer.objects.get(id=request.session['apt_vendor_id'])
        data = { 'vendor' : vendor }
    except Customer.DoesNotExist,e:
        print 'FAILED TO retrieve Customer information'
def request_quote_details(request):
    #pdb.set_trace()
    try:
         request.session['vendor_name']
    except:
         sign_out_vendor(request)
         return redirect('/vendor/')
    data = {}
    try:
        # store user activities
        store_user_track(request,'Vendor Views Request Details '+request.GET.get('request_uid') )
        # Request Objects
        quote_req = QuoteRequest.objects.get(quote_request_uid=request.GET.get('request_uid'))
        locations = quote_req.quote_location.split('$')
        
        quote_requote = REQUOTE # By Default Requote
        days = quote_req.quote_end_date - quote_req.quote_start_date
        
        owner = Customer.objects.get(id=request.session['apt_vendor_id'])
        
        if days.days == 0:
            no_of_days = 1
        else:
            no_of_days = days.days
        
        my_status = 0
        
        # GET APARTMENT LIST OF OWENR
        apartment_list = Property.objects.filter(property_owner_id=owner)
        property_list = []
        try:
            requestProperty = RequestedProperty.objects.filter(quote_request_id=quote_req, property_owner_id=owner, property_id__in= apartment_list, quoted_status=False )
            if requestProperty: 
                for req_prop in requestProperty:
                    if req_prop.property_id.property_type == 0:
                        prop_type='Service Apartment'
                    if req_prop.property_id.property_type == 1:
                        prop_type='Hotel'
                    if req_prop.property_id.property_status ==1:
                        status='NOT AVAILABLE'
                    if req_prop.property_id.property_status ==0:
                        status='AVAILABLE'
                    
                    quote_requote = QUOTE #if not req_prop.quoted_status else REQUOTE
                    
                    rate = get_property_rate(req_prop.property_id)
                    amount = rate * no_of_days * quote_req.quote_no_of_guest
                    tax_amount = amount * (SERVICE_TAX + LUXURY_TAX) / 100
                    total = amount + tax_amount
                
                    property_list.append({ 'property_id': req_prop.property_id.property_id,
                    'property_location':req_prop.property_id.property_location,
                    'property_name': req_prop.property_id.property_actual_name, 'tax' : '{:.2f}'.format(tax_amount),
                    'property_rack_rate' : req_prop.property_id.rack_rate, 'quote_status' : req_prop.quoted_status, 
                    'property_rate' : '{:.2f}'.format(rate), 'amount' : '{:.2f}'.format(amount), 
                    'total_amt': '{:.2f}'.format(total),'property_type' : prop_type, 'status' :status })
            else:
                property_list = get_quoted_property(quote_req,owner)
        except Exception as err:
            print 'vendor_request.py | request_quote_details | Exception ', err
            mystatus = 0

        data = { 'quote' : quote_req,   'error_message': 'success',
           'no_of_days':no_of_days,     'success': 'true', 'quote_requote': quote_requote,
           'my_status' : my_status,     'property_list': property_list,
           'location_list': locations,  'city_list': pcf.get_all_city_name(),
           #'quoted_property_list':get_quoted_property(quote_req,owner) 
        }
    except Exception as err:
        print 'vendor_request.py | request_quote_details | Exception ', err
        data = {}
    return render(request,'property-vendor/quote-request/request-details.html',data)