@ -15,6 +15,11 @@ def get_pair(request, model, param1, val1, param2):
if not request . is_ajax ( ) :
if not request . is_ajax ( ) :
return HttpResponseBadRequest ( )
return HttpResponseBadRequest ( )
if model not in ( ' Country ' , ' Measure ' , ) :
return HttpResponseBadRequest ( )
raise_if_no_profile ( request )
kwargs = { param1 : val1 }
kwargs = { param1 : val1 }
try :
try :
@ -34,10 +39,11 @@ def get_invoices(request, client_id=None):
raise_if_no_profile ( request )
raise_if_no_profile ( request )
invoices = Invoice . objects . get_all ( request . user . profile )
if client_id :
if client_id :
invoices = Invoice . objects . filter ( client__id = client_id )
invoices = invoices . filter ( client_id = client_id )
else :
invoices = Invoice . objects . filter ( company = request . user . profile )
invoices = { invoice . id : ' № %s от %s ' % ( invoice . doc_num , invoice . doc_date ) for invoice in invoices }
invoices = { invoice . id : ' № %s от %s ' % ( invoice . doc_num , invoice . doc_date ) for invoice in invoices }
return HttpResponse ( json . dumps ( invoices ) , mimetype = ' application/json ' )
return HttpResponse ( json . dumps ( invoices ) , mimetype = ' application/json ' )
@ -47,7 +53,9 @@ def get_tbl_items(request, invoice_id):
if not request . is_ajax ( ) :
if not request . is_ajax ( ) :
return HttpResponseBadRequest ( )
return HttpResponseBadRequest ( )
invoice = Invoice . objects . get ( pk = invoice_id )
raise_if_no_profile ( request )
invoice = Invoice . objects . get ( company = request . user . profile , pk = invoice_id )
data = serializers . serialize ( ' json ' , invoice . invoice_items . all ( ) )
data = serializers . serialize ( ' json ' , invoice . invoice_items . all ( ) )
return HttpResponse ( json . dumps ( data ) , mimetype = ' application/json ' )
return HttpResponse ( json . dumps ( data ) , mimetype = ' application/json ' )
@ -57,7 +65,9 @@ def get_client_by_invoice(request, invoice_id):
if not request . is_ajax ( ) :
if not request . is_ajax ( ) :
return HttpResponseBadRequest ( )
return HttpResponseBadRequest ( )
invoice = Invoice . objects . get ( pk = invoice_id )
raise_if_no_profile ( request )
invoice = Invoice . objects . get ( company = request . user . profile , pk = invoice_id )
return HttpResponse ( json . dumps ( [ invoice . client . id , invoice . client . name ] ) , mimetype = ' application/json ' )
return HttpResponse ( json . dumps ( [ invoice . client . id , invoice . client . name ] ) , mimetype = ' application/json ' )
@ -66,18 +76,24 @@ def toggle_doc_status(request, doc_type, doc_id, doc_attr):
if not request . is_ajax ( ) or request . method != ' POST ' :
if not request . is_ajax ( ) or request . method != ' POST ' :
return HttpResponseBadRequest ( )
return HttpResponseBadRequest ( )
raise_if_no_profile ( request )
model_ = get_model ( ' docs ' , doc_type )
model_ = get_model ( ' docs ' , doc_type )
doc = model_ . objects . get ( pk = doc_id )
doc = model_ . objects . get ( company = request . user . profile , pk = doc_id )
choices_ = doc . _meta . get_field_by_name ( doc_attr ) [ 0 ] . get_choices ( )
choices_ = doc . _meta . get_field_by_name ( doc_attr ) [ 0 ] . get_choices ( )
choices = [ i [ 0 ] for i in choices_ [ 1 : ] ]
choices = [ i [ 0 ] for i in choices_ [ 1 : ] ]
prev_val = getattr ( doc , doc_attr )
prev_val = getattr ( doc , doc_attr )
try :
try :
next_index = choices . index ( prev_val ) + 1
next_index = choices . index ( prev_val ) + 1
next_val = choices [ next_index ]
next_val = choices [ next_index ]
except :
except :
next_val = choices [ 0 ]
next_val = choices [ 0 ]
setattr ( doc , doc_attr , next_val )
setattr ( doc , doc_attr , next_val )
doc . save ( )
doc . save ( )
next_text = dict ( choices_ ) [ next_val ]
next_text = dict ( choices_ ) [ next_val ]
return HttpResponse ( json . dumps ( [ next_text , next_val ] ) , mimetype = ' application/json ' )
return HttpResponse ( json . dumps ( [ next_text , next_val ] ) , mimetype = ' application/json ' )