def update_document(request, company): try: c = Company.objects.get(url_name=company) except Company.DoesNotExist: return JsonError(_("Company does not exist.")) # permissions if not has_permission(request.user, c, 'document', 'edit'): return JsonError(_("You have no permission to add contacts")) data = JsonParse(request.POST.get('data')) supplier = data['supplier'] supplier = supplier.split(',') contact = None if len(supplier) > 0: vat = supplier[-1].strip() if not vat.isdigit(): return JsonError("invalid_supplier") try: contact = Contact.objects.get(vat=vat) except Contact.DoesNotExist: Contact.copy_from_contact_registry(request, c, vat) try: contact = Contact.objects.get(vat=vat) except Contact.DoesNotExist: return JsonError("contact_does_not_exists") # TODO: validate with forms try: document = Document.objects.get(id=data['document_id'], company=c) document.number = data['document_number'] document.entry_date = data['entry_date'] document.document_date = data['document_date'] if contact is not None: document.supplier = contact document.updated_by = request.user document.save() except Exception as e: print "Error updating document" print e return JsonError('could_not_save_document') return JsonOk()
def save_document(request, company): try: c = Company.objects.get(url_name=company) except Company.DoesNotExist: return JsonError(_("Company does not exist.")) # permissions if not has_permission(request.user, c, 'document', 'edit'): return JsonError(_("You have no permission to add contacts")) data = JsonParse(request.POST.get('data')) supplier = data['supplier'] supplier = supplier.split(',') if len(supplier) == 0: return JsonError("invalid_supplier") vat = supplier[-1].strip() if not vat.isdigit(): return JsonError("invalid_supplier") try: contact = Contact.objects.get(vat=vat) except Contact.DoesNotExist: Contact.copy_from_contact_registry(request, c, vat) try: contact = Contact.objects.get(vat=vat) except Contact.DoesNotExist: return JsonError("contact_does_not_exists") # TODO: validate with forms try: document = Document( company=c, number=data['document_number'], entry_date=data['entry_date'], document_date=data['document_date'], supplier=contact, created_by=request.user ) document.save() except Exception as e: print "Error saving document" print e return JsonError('could_not_save_document') documents = Document.objects.filter(company=c).order_by('-number') page = 1 i = 0 for d in documents: if i > 0 and i%g.MISC['documents_per_page'] == 0: page += 1 if d == document: break i += 1 redirect_url = reverse('pos:manage_documents', kwargs={'company': c.url_name, 'page': page}) + "#" + str(document.id) return JsonOk(extra={'redirect_url': redirect_url})