提交 9dc2e6f2 authored 作者: 李思鑫's avatar 李思鑫

add:包材管理可编辑

上级 85084238
...@@ -1223,14 +1223,15 @@ urlpatterns = [ ...@@ -1223,14 +1223,15 @@ urlpatterns = [
#lisin 2024-08-23 包材管理相关 #lisin 2024-08-23 包材管理相关
url(r'^packaging/supplier/manage/(?P<id>\d+)/$', list_views.packaging_supplier_manage), url(r'^packaging/supplier/manage/(?P<id>\d+)/$', list_views.packaging_supplier_manage),
url(r'^mes/query/packaging/purchase/$', mes_views.packaging_purchase_query), url(r'^mes/query/packaging/purchase/$', mes_views.packaging_purchase_query),
url(r'^mes/packaging/purchase/list/$', mes_views.packaging_purchase_list), url(r'^mes/packaging/purchase/list/$', mes_views.packaging_purchase_list),
url(r'^mes/packaging/purchase/edit/$', mes_views.packaging_purchase_edit),
url(r'^mes/packaging/purchase/edit/(?P<id>\d+)/$', mes_views.packaging_purchase_edit), url(r'^mes/packaging/purchase/edit/(?P<id>\d+)/$', mes_views.packaging_purchase_edit),
url(r'^mes/packaging/instore/list/$', mes_views.packaging_instore_list), url(r'^mes/packaging/instore/list/$', mes_views.packaging_instore_list),
url(r'^mes/packaging/instore/edit/$', mes_views.packaging_instore_edit), url(r'^mes/packaging/instore/edit/$', mes_views.packaging_instore_edit),
url(r'^mes/packaging/instore/edit/(?P<id>\d+)/$', mes_views.packaging_instore_edit), url(r'^mes/packaging/instore/edit/(?P<id>\d+)/$', mes_views.packaging_instore_edit),
url(r'^mes/packaging/inventory/(?P<what>\w+)/$', mes_views.packaging_inventory), url(r'^mes/packaging/inventory/(?P<what>\w+)/$', mes_views.packaging_inventory),
url(r'^mes/packaging/receive/list/$', mes_views.packaging_receive_list), url(r'^mes/packaging/receive/list/$', mes_views.packaging_receive_list),
# url(r'^mes/packaging/receive/$', mes_views.packaging_receive), url(r'^mes/packaging/receive/$', mes_views.packaging_receive),
url(r'^mes/packaging/receive/(?P<id>\d+)/$', mes_views.packaging_receive), url(r'^mes/packaging/receive/(?P<id>\d+)/$', mes_views.packaging_receive),
......
...@@ -231,6 +231,7 @@ class PackagingPurchaseRecordForm(ModelForm): ...@@ -231,6 +231,7 @@ class PackagingPurchaseRecordForm(ModelForm):
model = PackagingPurchasRecord model = PackagingPurchasRecord
fields='__all__' fields='__all__'
widgets={ widgets={
'code': forms.TextInput(attrs={'readonly': 'readonly'}),
'company':forms.HiddenInput(), 'company':forms.HiddenInput(),
} }
...@@ -247,7 +248,7 @@ class PackagingInstoreForm(ModelForm): ...@@ -247,7 +248,7 @@ class PackagingInstoreForm(ModelForm):
widgets={ widgets={
'code': forms.TextInput(attrs={'readonly': 'readonly'}), 'code': forms.TextInput(attrs={'readonly': 'readonly'}),
'company':forms.HiddenInput(), 'company':forms.HiddenInput(),
# 'Packaging':forms.HiddenInput() 'Packaging':forms.HiddenInput()
} }
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
...@@ -266,6 +267,7 @@ class PackagingReceiveForm(ModelForm): ...@@ -266,6 +267,7 @@ class PackagingReceiveForm(ModelForm):
model = PackagingReceive model = PackagingReceive
fields='__all__' fields='__all__'
widgets={ widgets={
'code': forms.TextInput(attrs={'readonly': 'readonly'}),
'company':forms.HiddenInput(), 'company':forms.HiddenInput(),
} }
......
...@@ -229,7 +229,7 @@ class PackagingPurchasRecord(models.Model): ...@@ -229,7 +229,7 @@ class PackagingPurchasRecord(models.Model):
class Meta: class Meta:
verbose_name = _('包材采购记录') verbose_name = _('包材采购记录')
verbose_name_plural = _('包材采购记录') verbose_name_plural = _('包材采购记录')
unique_together = ("company", "packaging", "vendor") unique_together = ("company", "packaging", "code")
def __str__(self): def __str__(self):
return self.name return self.name
......
差异被折叠。
...@@ -11,9 +11,6 @@ ...@@ -11,9 +11,6 @@
{% block js %} {% block js %}
{{ block.super }} {{ block.super }}
$('.btn-save').click(function(){
$.SubmitForm('#obj_form form','{{request.path}}');
});
{% endblock %} {% endblock %}
...@@ -31,51 +28,55 @@ ...@@ -31,51 +28,55 @@
{% block form_content %} {% block form_content %}
{{ block.super }} {{ block.super }}
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
//生成设置 日期编码 //编辑 回显查询采购记录
var now = new Date(); var purchase_id = $('#id_packaging_purchas').val()*1
var year = String(now.getFullYear()); var instore_id = $('#id_instore').val()
var month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1并补零 var before_instore_num = $('#id_instore_num').val()?$('#id_instore_num').val()*1:0 //编辑前入库数量
var day = String(now.getDate()).padStart(2, '0'); console.log('instore_id',instore_id)
var hours = String(now.getHours()).padStart(2, '0'); if(purchase_id){
var minutes = String(now.getMinutes()).padStart(2, '0'); queryPackagingPurchaseById({purchase_id,instore_id})
var seconds = String(now.getSeconds()).padStart(2, '0'); }
var defaultCodeValue = 'RK' + year + month + day + hours + minutes + seconds;
$('#id_code').val(defaultCodeValue);
//入库数量校验 function validateForm() {
$('#id_instore_num').on('input', function(){ var purchase_num = $('#qty').val()*1;
var purchase_num= $('#qty').val()*1; var instore_num = $('#id_instore_num').val()*1;
var instore_num = $(this).val()*1; var inventory_num = $('#packaging_inventory').val()*1;
var yet_instore_num = $('#yet_instore_num').val()*1; var yet_instore_num = $('#yet_instore_num').val()*1;
var can_instore_num = purchase_num - yet_instore_num;//可入库数量 var max_num = purchase_num - yet_instore_num; //可入库数量 最大
console.log(can_instore_num, yet_instore_num) var max_min = (before_instore_num - inventory_num)>0 ? (before_instore_num - inventory_num) : 0 ; //可入库数量 最小
if(purchase_num && instore_num){ if(purchase_num && instore_num){
if(instore_num > can_instore_num){ if(instore_num > max_num){
toastr.error('入库数量不能大于' + can_instore_num); toastr.error('入库数量不能大于' + max_num);
$('#id_instore_num').val(''); $('#id_instore_num').val("")
} return false;
}
}
if(purchase_id && instore_num < max_min){//编辑修改
toastr.error('入库数量不能小于'+ max_min);
$('#id_instore_num').val("")
return false;
} }
return true;
}) }
// 监听code字段的变化 // 监听code字段的变化
$('#id_packaging_purchas').on('change', function() { $('#id_packaging_purchas').on('change', function() {
var id = $(this).val(); var purchase_id = $(this).val()*1;
console.log('codeValue--',id) queryPackagingPurchaseById({purchase_id,instore_id})
// 发送AJAX请求获取相关数据 });
$.ajax({
function queryPackagingPurchaseById(data={}){
$.ajax({
url: '/mes/query/packaging/purchase/', url: '/mes/query/packaging/purchase/',
method: 'GET', method: 'GET',
data: { id: id }, data: data,
success: function(response) { success: function(response) {
// 在页面上显示相关数据 // 在页面上显示相关数据
console.log('packagingPurchasRecord',response)
const { const {
dt, dt,
qty, yet_instore_num, qty, yet_instore_num, packaging_inventory,
packaging_id,packaging_code, packaging_name, packaging_specification, packaging_id,packaging_code, packaging_name, packaging_specification,
vendor_name vendor_name
}=response }=response
...@@ -87,16 +88,25 @@ ...@@ -87,16 +88,25 @@
$('#vendor_name').val(vendor_name); $('#vendor_name').val(vendor_name);
$('#qty').val(qty); $('#qty').val(qty);
$('#yet_instore_num').val(yet_instore_num); $('#yet_instore_num').val(yet_instore_num);
$('#packaging_inventory').val(packaging_inventory);
}, },
error: function(xhr, status, error) { error: function(xhr, status, error) {
console.error('AJAX请求失败:', error); console.error('AJAX请求失败:', error);
} }
}); });
}); }
// 表单提交时的数据校验
$('.btn-save').on('click', function(event) {
if (!validateForm()) {
event.preventDefault(); // 阻止表单提交
}else{
$.SubmitForm('#obj_form form','{{request.path}}');
}
});
}); });
</script> </script>
<input type='hidden' type="number" value="{{instore_id}}" name="id_instore" id="id_instore" />
<input type='hidden' type="number" value="" name="packaging" id="id_packaging" /> <input type='hidden' type="number" value="" name="packaging" id="id_packaging" />
<div class="form-group "> <div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '入库编码:' %} </label> <label class="col-sm-2 control-label ">{% trans '入库编码:' %} </label>
...@@ -147,10 +157,14 @@ ...@@ -147,10 +157,14 @@
</div> </div>
</div> </div>
<div class="form-group "> <div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '已入库数量:' %} </label> <label class="col-sm-1 control-label ">{% trans '采购单已入数量:' %} </label>
<div class="col-sm-10"> <div class="col-sm-5">
<input type="text" disabled name='yet_instore_num' id='yet_instore_num' /> <input type="text" disabled name='yet_instore_num' id='yet_instore_num' />
</div> </div>
<label class="col-sm-1 control-label ">{% trans '库数量:' %} </label>
<div class="col-sm-5">
<input type="text" disabled name='packaging_inventory' id='packaging_inventory' />
</div>
</div> </div>
<div class="form-group "> <div class="form-group ">
...@@ -162,7 +176,7 @@ ...@@ -162,7 +176,7 @@
<div class="col-sm-10">{{ form.remark }}</div> <div class="col-sm-10">{{ form.remark }}</div>
</div> </div>
<div> <div>
<a class="btn btn-primary btn-save" type="submit" style="float:right;">{% trans '保存' %}</a> <a class="btn btn-primary btn-save" type="button" style="float:right;">{% trans '保存' %}</a>
</div> </div>
{% endblock %} {% endblock %}
...@@ -33,18 +33,6 @@ ...@@ -33,18 +33,6 @@
{{ block.super }} {{ block.super }}
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
//生成设置 日期编码
var now = new Date();
var year = String(now.getFullYear());
var month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1并补零
var day = String(now.getDate()).padStart(2, '0');
var hours = String(now.getHours()).padStart(2, '0');
var minutes = String(now.getMinutes()).padStart(2, '0');
var seconds = String(now.getSeconds()).padStart(2, '0');
var defaultCodeValue = 'CG' + year + month + day + hours + minutes + seconds;
$('#id_code').val(defaultCodeValue);
function calculateTotalPrice() { function calculateTotalPrice() {
var qty = parseFloat($('#id_qty').val()) || 0; var qty = parseFloat($('#id_qty').val()) || 0;
var unitPrice = parseFloat($('#id_unit_price').val()) || 0; var unitPrice = parseFloat($('#id_unit_price').val()) || 0;
......
...@@ -33,18 +33,13 @@ ...@@ -33,18 +33,13 @@
{{ block.super }} {{ block.super }}
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
//生成设置 日期编码
var now = new Date(); //初始化
var year = String(now.getFullYear()); var id = $('#id_packaging').val();
var month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1并补零 var edit_receive_num = $('#id_receive_num').val()*1;
var day = String(now.getDate()).padStart(2, '0'); if(id) {
var hours = String(now.getHours()).padStart(2, '0'); packagingInventoreByid(id)
var minutes = String(now.getMinutes()).padStart(2, '0'); }
var seconds = String(now.getSeconds()).padStart(2, '0');
var defaultCodeValue = 'LY' + year + month + day + hours + minutes + seconds;
$('#id_code').val(defaultCodeValue);
//库存数量校验 //库存数量校验
$('#id_receive_num').on('input', function(){ $('#id_receive_num').on('input', function(){
var inventory_num = $('#inventory_num').val()*1; var inventory_num = $('#inventory_num').val()*1;
...@@ -59,32 +54,38 @@ ...@@ -59,32 +54,38 @@
//根据包材id 查询库存、包材信息 //根据包材id 查询库存、包材信息
$('#id_packaging').on('change', function() { $('#id_packaging').on('change', function() {
var id = $(this).val(); var id = $(this).val();
console.log('codeValue--',id) packagingInventoreByid(id)
// 发送AJAX请求获取相关数据 });
//查询库存、包材信息
function packagingInventoreByid(id){
$.ajax({ $.ajax({
url: '/mes/packaging/inventory/query/', url: '/mes/packaging/inventory/query/',
method: 'GET', method: 'GET',
data: { id: id }, data: { id: id },
success: function(response) { success: function(response) {
// 在页面上显示相关数据 // 在页面上显示相关数据
console.log('packagingPurchasRecord',response) console.log('packagingPurchasRecord',response)
const { let {
dt, dt,
inventory_num, inventory_num,
packaging_code, packaging_name, packaging_specification, packaging_code, packaging_name, packaging_specification,
vendor_name vendor_name
}=response }=response
$('#dt').val(dt); //之前领取的数量要加回库存 才是真实的可编辑领取数量
$('#packaging_code').val(packaging_code); if(edit_receive_num) inventory_num += edit_receive_num
$('#packaging_name').val(packaging_name);
$('#packaging_specification').val(packaging_specification); $('#dt').val(dt);
$('#inventory_num').val(inventory_num); $('#packaging_code').val(packaging_code);
}, $('#packaging_name').val(packaging_name);
error: function(xhr, status, error) { $('#packaging_specification').val(packaging_specification);
console.error('AJAX请求失败:', error); $('#inventory_num').val(inventory_num);
} },
error: function(xhr, status, error) {
console.error('AJAX请求失败:', error);
}
}); });
}); }
}); });
</script> </script>
......
...@@ -1709,4 +1709,14 @@ def block_consumer(consumer_id, ancestor_id, reason, jmcpid = ''): ...@@ -1709,4 +1709,14 @@ def block_consumer(consumer_id, ancestor_id, reason, jmcpid = ''):
r = cur.fetchone() r = cur.fetchone()
if not r: if not r:
cur.execute(f"insert into z_consumer_blacklist (consumer_id, ancestor_id, reason) values ({str(consumer_id)},{str(ancestor_id)},'{reason}')") cur.execute(f"insert into z_consumer_blacklist (consumer_id, ancestor_id, reason) values ({str(consumer_id)},{str(ancestor_id)},'{reason}')")
cur.execute(f"insert into z_consumer_blacklist_record (consumer_id, ancestor_id, reason, jmcpid) values ({str(consumer_id)},{str(ancestor_id)},'{reason}','{jmcpid}')") cur.execute(f"insert into z_consumer_blacklist_record (consumer_id, ancestor_id, reason, jmcpid) values ({str(consumer_id)},{str(ancestor_id)},'{reason}','{jmcpid}')")
\ No newline at end of file
# 创建编码
def create_code(prefix):
now = datetime.datetime.now()
formatted_time = now.strftime("%Y%m%d%H%M%S")
if prefix:
return f"{prefix}{formatted_time}"
return formatted_time
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论