<input type="hidden" id="itemdata" name="itemdata">
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header no-border">
<div class="row">
<div class="col-md-12">
<h4 class="modal-title text-center" id="addtitle">Add Items for Purchase Order</h4>
<h4 class="modal-title text-center"id="edittitle">Edit
Items for Purchase Order</h4>
</div>
</div>
</div>
<div class="modal-body">
<input type="hidden" id="itemidentifier">
<div class="row">
<div class="form-group col-md-8">
<label class="col-form-label-sm">Item</label>
<select id="invitem_name" name="invitem_name" class="form-control form-control-sm select2" style="width: 100%">
<option value="">--- Select Item Here---</option>
{% for invitem in invitem %}
<option value="{{ invitem.id }}" data-unit="{{ invitem.unitofmeasure_id }}" data-cost="{{ invitem.unitcost }}" data-code="{{ invitem.code }}" data-desc="{{ invitem.description }}">{{ invitem.code }} - {{ invitem.description }}</option>
{% endfor %}
</select></select>
</div>
<div class="form-group col-md-4">
<label class="col-form-label-sm">Charging Types</label>
<select id="charging_type" name="charging_type"
class="form-control form-control-sm" required>
<option value="R">Regular</option>
<option value="P">Personal</option>
<option value="C">Company</option>
<option value="A">Advances</option>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-md-3">
<label class="col-form-label-sm">Unit</label>
<select id="unitofmeasure_id" name="unitofmeasure" class="form-control form-control-sm" required>
<option value="">---Select Unit---</option>
{% for unitofmeasure in unitofmeasure %}
<option value="{{ unitofmeasure.id }}" data-code="{{ unitofmeasure.code }}" {% if form.unitofmeasure.value|add:0 == unitofmeasure.id %} selected="selected" {% endif %}>{{ unitofmeasure.description }} </option>
{% endfor %}
</select>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">Quantity</label>
<input type="number" step="any" id="quantity" name="quantity" onkeyup="computeValue()" class="form-control text-right form-control-sm" required>
</input>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">Discount</label>
<input type="number" step="any" name="discountamount" id="discountamount" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">Discount Rate</label>
<select id="discountrate" name="discountrate" class="form-control form-control-sm" required>
<option value="">Select Discount</option>
<option value="1">%</option>
<option value="2">amt</option>
</select>
</div>
</div>
<div class ="row">
<div class="form-group col-md-4">
<label class="col-form-label-sm">Unit Cost</label>
<input type="number" step="any" id="unitcost" name="unitcost" onkeyup="computeValue()" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-4">
<label class="col-form-label-sm">Gross Amount</label>
<input type="number" step="any" id="grossamount" name="grossamount" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-4">
<label class="col-form-label-sm">Net Amount</label>
<input type="number" step="any" id="netamount" name="netamount" class="form-control text-right form-control-sm" required>
</div>
</div>
<div class = "row">
<div class="form-group col-md-3">
<label class="col-form-label-sm">VATable</label>
<input type="number" step="any" name="vatable" id="vatable" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">VAT Exempt</label>
<input type="number" step="any" name="vatexempt" id="vatexempt" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">VAT Zero Rated</label>
<input type="number" step="any" name="vatzerorated" id="vatzerorated" class="form-control text-right form-control-sm" required>
</div>
<div class="form-group col-md-3">
<label class="col-form-label-sm">VAT Amount</label>
<input type="number" step="any" name="vatamount" id="vatamount" class="form-control text-right form-control-sm" required>
</div>
</div>
<div class="row">
<div class="form-group col-md-3">
<label class="col-form-label-sm">Branch</label>
<select id="branch_id" name="branch" class="form-control form-control-sm">
<option value="">--- Select Branch ---</option>
{% for branch in branch %}
<option value="{{ branch.id }}" data-code="{{ branch.code }}" {% if branch.code == 'HO' %} selected="selected" {% endif %}>{{ branch.description }}</option>
{% endfor %}
</select>
</div>
<div class="form-group col-md-4">
<label class="col-form-label-sm">Department</label>
<select id="department_id" name="department" class="form-control form-control-sm" style="width:100%">
<option value ="" selected="selected">--- Select Department ---</option>
{% for department in department %}
<option value="{{ department.id }}" data-code="{{ department.code }}">{{ department.code }} - {{ department.departmentname }}</option>
{% endfor %}
</select>
</div>
<div class="form-group col-md-5">
<label class="col-form-label-sm">Employee</label>
<select id="employee_id" name="employee" class="form-control form-control-sm select2" style="width: 100%">
<option value="" selected="selected">------- Employee Name -------</option>
{% for employee in employee %}
<option value="{{ employee.id }}" data-code="{{ employee.code }}" data-name="{{ employee.firstname }} {{ employee.lastname }}"> {{ employee.code }} - {{ employee.lastname }}, {{ employee.firstname }}</option>
{% endfor %}
</select>
</div>
</div>
<div class="row">
<div class= "form-group col-md-12">
<label class="col-form-label-sm">Remarks</label>
<textarea class="form-control form-control-sm" id="remarks" style="height: 80px;" name="remarks" required></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<div class= "form-group col-md-6">
</div>
<div class="form-group col-md-4">
<button type="button" id="save_item" class="btn btn-primary">Save Item </button>
<button type="button" id="update_item" class="btn btn-success">Update Item</button>
</div>
<div class="form-group col-md-2">
<button type="button" id="close_item" class="btn btn-danger" data-dismiss="modal"> Close </button>
</div>
</div>
</div>
</div>
用于获取模态值的 JQuery 代码。并存储到本地存储。
$('#save_item').click(function () {
var validate = validateItems();
if (validate == false) {
return false;
}
var oldItems = JSON.parse(localStorage.getItem("dataObject")) || [];
var newItem =
{
'invitem_id': $('#invitem_name').val(),
'invitem_code': $('#invitem_name').find(':selected').attr('data-code'),
'invitem_desc': $('#invitem_name').find(':selected').attr('data-desc'),
'charging_type' : $('#charging_type').val(),
'unitofmeasure_id': $('#unitofmeasure_id').val(),
'unitofmeasure_code': $('#unitofmeasure_id').find(':selected').attr('data-code'),
'quantity' : $('#quantity').val(),
'discountamount' : $('#discountamount').val(),
'discountrate': $('#discountrate').val(),
'unitcost' : $('#unitcost').val(),
'grossamount' : $('#grossamount').val(),
'netamount' : $('#netamount').val(),
'vatable' : $('#vatable').val(),
'vatexempt' : $('#vatexempt').val(),
'vatzerorated' : $('#vatzerorated').val(),
'vatamount' : $('#vatamount').val(),
'branch_id': $('#branch_id').val(),
'branch_code': $('#branch_id').find(':selected').attr('data-code'),
'department': $('#department_id').val(),
'department_code': $('#department_id').find(':selected').attr('data-code'),
'employee_id': $('#employee_id').val(),
'employee_code': $('#employee_id').find(':selected').attr('data-code'),
'employee_name': $('#employee_id').find(':selected').attr('data-name'),
'remarks': $('#remarks').val()
};
oldItems.push(newItem);
localStorage.setItem('dataObject', JSON.stringify(oldItems));
$('#myModal').modal('hide');
}
}
用于获取 itemdata 的 Python 代码(本地存储值,可以是列表或字典),我需要为每个条目使用 self.request.POST。
def form_valid(self, form):
self.object = form.save(commit=False)
itemdata = self.request.POST['itemdata']
print itemdata
self.object.enterby = self.request.user
self.object.modifyby = self.request.user
self.object.save()