提交 808d2a7f authored 作者: 李思鑫's avatar 李思鑫

包材管理 add

上级 5efa619c
...@@ -107,6 +107,10 @@ urlpatterns = [ ...@@ -107,6 +107,10 @@ urlpatterns = [
url(r'^obj/list/(?P<obj>\w+)/$', list_views.list_obj), url(r'^obj/list/(?P<obj>\w+)/$', list_views.list_obj),
url(r'^obj/edit/(?P<obj_name>\w+)/$', list_views.edit_obj), url(r'^obj/edit/(?P<obj_name>\w+)/$', list_views.edit_obj),
url(r'^obj/edit/(?P<obj_name>\w+)/(?P<id>\d+)/$', list_views.edit_obj), url(r'^obj/edit/(?P<obj_name>\w+)/(?P<id>\d+)/$', list_views.edit_obj),
#lisin 2024-08-19 包装物料供应商 管理
url(r'^packaging/supplier/manage/(?P<id>\d+)/$', list_views.packaging_supplier_manage),
#2020-05-20 #2020-05-20
url(r'^obj/agent/label/$', list_views.agent_lbl_info), url(r'^obj/agent/label/$', list_views.agent_lbl_info),
url(r'^obj/agent/label/(?P<user_id>\d+)/$', list_views.agent_lbl_info), url(r'^obj/agent/label/(?P<user_id>\d+)/$', list_views.agent_lbl_info),
......
...@@ -3981,7 +3981,7 @@ def list_obj(request, obj): ...@@ -3981,7 +3981,7 @@ def list_obj(request, obj):
a=r[1] a=r[1]
data['data'].append([ a,r[2],r[4],r[3] ]) data['data'].append([ a,r[2],r[4],r[3] ])
elif obj=='packaging': elif obj=='packaging':
data['clmns']=["包装物料名称","编码","计量类别","备注说明"] data['clmns']=["包装物料名称","编码","计量类别","规格","基础单位","备注说明",'添加供应商']
s="select id,name,coalesce(code,''),coalesce(remark,''),"+\ s="select id,name,coalesce(code,''),coalesce(remark,''),"+\
"coalesce((select name from mes_measure where id=measure_id),'') "+\ "coalesce((select name from mes_measure where id=measure_id),'') "+\
"from mes_packaging where company_id="+str(u.ancestor_id)+" and is_delete=false" "from mes_packaging where company_id="+str(u.ancestor_id)+" and is_delete=false"
...@@ -3990,9 +3990,11 @@ def list_obj(request, obj): ...@@ -3990,9 +3990,11 @@ def list_obj(request, obj):
for r in cur.fetchall(): for r in cur.fetchall():
if show_add: if show_add:
a='<a href="/obj/edit/packaging/'+str(r[0])+'/">'+r[1]+'</a>' a='<a href="/obj/edit/packaging/'+str(r[0])+'/">'+r[1]+'</a>'
end = '<a href="/packaging/supplier/manage/'+str(r[0])+'/">'+str('添加供应商')+'</a>'
else: else:
a=r[1] a=r[1]
data['data'].append([ a,r[2],r[4],r[3] ]) end=str('无权限')
data['data'].append([ a,r[2],r[4],'/','/',r[3],end ])
elif obj=='bom': elif obj=='bom':
data['clmns']=["物料单编码","产成品名称","原材料配比","半成品配比","包装物料耗用"] data['clmns']=["物料单编码","产成品名称","原材料配比","半成品配比","包装物料耗用"]
s="select id,name,coalesce(code,''), "+\ s="select id,name,coalesce(code,''), "+\
...@@ -4691,6 +4693,49 @@ def list_obj(request, obj): ...@@ -4691,6 +4693,49 @@ def list_obj(request, obj):
data['can_edit']=can_edit data['can_edit']=can_edit
return render(request, 'obj/list_obj.html',data) return render(request, 'obj/list_obj.html',data)
# lisin 2024-08-19 包装物料供应商管理
def packaging_supplier_manage(request,id=None):
is_saved=False
u=request.user
c=u.company
if id:
obj = Packaging.objects.get(id=int(id))
else:
obj = Packaging(company_id=c.id)
obj.company=request.user.company
obj.company_id=request.user.company.id
units_pkg=[]
#3;"PKG";"包装材料"
# for uu in CompanyUnit.objects.filter(company_id=cid,invtype=3):
# units_pkg.append(uu.unit)
if request.method == 'GET':
form = PackagingForm(instance=obj)
formset_v=PackagingVendorFormset(instance=obj)
print('id---11',id,obj.company_id,obj.company )
elif request.method == "POST":
form = PackagingForm(request.POST, instance=obj)
print('id---',request.POST,obj )
formset_v = PackagingVendorFormset(request.POST, instance=obj)
# if form.is_valid():
# form.save()
# print('formset_v',formset_v.is_valid(),formset_v)
is_saved = True
if formset_v.is_valid():
formset_v.save()
else:
for form in formset_v.forms:
if not form.is_valid():
print('form---',form.errors)
return render(request,'obj/packaging_supplier_manage.html',
{'form':form,'is_saved':is_saved,
'company':c.id,
'formset_v':formset_v
}
)
def get_product_props(company_id, product_id): def get_product_props(company_id, product_id):
props = [] props = []
......
...@@ -182,3 +182,36 @@ class CustomerForm(ModelForm): ...@@ -182,3 +182,36 @@ class CustomerForm(ModelForm):
'company':forms.HiddenInput(), 'company':forms.HiddenInput(),
} }
# lisin
class PackagingForm(ModelForm):
class Meta:
model=Packaging
fields='__all__'
widgets={
'code': forms.TextInput(attrs={'readonly': 'readonly'}),
}
class CompanyForm(ModelForm):
class Meta:
model=Company
fields='__all__'
widgets={
'company': forms.HiddenInput(),
}
# lisin
class PackagingVendorForm(ModelForm):
class Meta:
model=PackagingVendor
fields='__all__'
widgets = {
'company': forms.HiddenInput(),
'packaging': forms.HiddenInput(),
'vendor': forms.HiddenInput(),
}
def __init__(self, *args, **kwargs):
super(PackagingVendorForm, self).__init__(*args, **kwargs)
self.fields['vendor'].widget.attrs['class'] = "vid"
PackagingVendorFormset=forms.inlineformset_factory(Packaging, PackagingVendor,
form=PackagingVendorForm, extra=0, can_delete=True)
\ No newline at end of file
...@@ -15,8 +15,9 @@ class Vendor(models.Model): ...@@ -15,8 +15,9 @@ class Vendor(models.Model):
name=models.CharField(_('供应商名称'),max_length=100) name=models.CharField(_('供应商名称'),max_length=100)
address=models.CharField(_('详细地址'),max_length=100,blank=True,null=True) address=models.CharField(_('详细地址'),max_length=100,blank=True,null=True)
cellphone=models.CharField(_('联系电话'),max_length=20,blank=True,null=True) cellphone=models.CharField(_('联系电话'),max_length=20,blank=True,null=True)
# contacts=models.CharField(_('联系人'),max_length=50,blank=True,null=True)
remark=models.CharField(_('备注说明'),max_length=100,blank=True,null=True) remark=models.CharField(_('备注说明'),max_length=100,blank=True,null=True)
external_code=models.CharField(_('外部编码'),max_length=50,blank=True,null=True) external_code=models.CharField(_('外部编码'),max_length=50,blank=True,null=True,unique=True)
contents = models.TextField(_('介绍'), blank=True, null=True) contents = models.TextField(_('介绍'), blank=True, null=True)
is_delete=models.BooleanField(_('是否已删除'),default=False) is_delete=models.BooleanField(_('是否已删除'),default=False)
...@@ -130,6 +131,8 @@ class Materials(models.Model): ...@@ -130,6 +131,8 @@ class Materials(models.Model):
code=models.CharField(_('材料编码'),unique=True,max_length=20,blank=True,null=True) code=models.CharField(_('材料编码'),unique=True,max_length=20,blank=True,null=True)
units=models.JSONField(_('计量单位'),default=list,blank=True,null=True) units=models.JSONField(_('计量单位'),default=list,blank=True,null=True)
safety_qty=models.IntegerField(_('基准单位安全库存量'),blank=True,null=True) safety_qty=models.IntegerField(_('基准单位安全库存量'),blank=True,null=True)
# specification=models.CharField(_('规格'),max_length=50,blank=True,null=True)
# base_unit=models.CharField(_('基础单位'),max_length=50,blank=True,null=True)
remark=models.CharField(_('备注说明'),max_length=50,blank=True,null=True) remark=models.CharField(_('备注说明'),max_length=50,blank=True,null=True)
dt = models.DateField(_('日期'), default=now, db_index=True,blank=True,null=True) dt = models.DateField(_('日期'), default=now, db_index=True,blank=True,null=True)
tm = models.DateTimeField(_('时间'), default=now,blank=True,null=True) tm = models.DateTimeField(_('时间'), default=now,blank=True,null=True)
...@@ -188,6 +191,24 @@ class Packaging(models.Model): ...@@ -188,6 +191,24 @@ class Packaging(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
#包材供应商 lisin 2024-08-20
class PackagingVendor(models.Model):
company=models.ForeignKey('company.Company',verbose_name=_('所属企业'),on_delete=models.CASCADE)
packaging=models.ForeignKey(Packaging,verbose_name=_('包装材料'),on_delete=models.CASCADE)
vendor=models.ForeignKey(Vendor,verbose_name=_('供应商'),on_delete=models.CASCADE)
unit_price=models.DecimalField(_('单价'), max_digits=8, decimal_places=2)
dt = models.DateField(_('日期'), default=now, db_index=True,blank=True,null=True)
tm = models.DateTimeField(_('时间'), default=now,blank=True,null=True)
remark=models.CharField(_('备注说明'),max_length=50,blank=True,null=True)
class Meta:
verbose_name = _('包装供应商')
verbose_name_plural = _('包装供应商')
unique_together = ("company", "packaging", "vendor")
def __str__(self):
return self.name
#物料单 #物料单
class BOM(models.Model): class BOM(models.Model):
......
...@@ -312,9 +312,9 @@ def list_obj(request,what): ...@@ -312,9 +312,9 @@ def list_obj(request,what):
return render(request,'mes/list_order.html',data) return render(request,'mes/list_order.html',data)
elif what=='vendor': elif what=='vendor':
data['subtt']=[_('供应商与客户'),_('供应商')] data['subtt']=[_('供应商与客户'),_('供应商')]
data['clmns']=[_('供应商名称'),_('详细地址'),_('联系电话'),_('备注说明'),_('操作')] data['clmns']=[_('供应商名称'),_('供应商外部编码'),_('详细地址'),_('联系人'),_('联系电话'),_('备注说明'),_('操作')]
d=[] d=[]
s="SELECT id,name,coalesce(address,''),coalesce(cellphone,''),coalesce(remark,'') "+\ s="SELECT id,name,coalesce(external_code,'/'),coalesce(address,''),coalesce(contents,'/'),coalesce(cellphone,''),coalesce(remark,'') "+\
"FROM mes_vendor where company_id="+str(c.id)+" and is_delete is false" "FROM mes_vendor where company_id="+str(c.id)+" and is_delete is false"
cur.execute(s) cur.execute(s)
for r in cur.fetchall(): for r in cur.fetchall():
...@@ -322,7 +322,7 @@ def list_obj(request,what): ...@@ -322,7 +322,7 @@ def list_obj(request,what):
if data['show_add']: if data['show_add']:
a='<a class="edt" href="/mes/edit/vendor/'+str(r[0])+'/">'+r[1]+'</a>' a='<a class="edt" href="/mes/edit/vendor/'+str(r[0])+'/">'+r[1]+'</a>'
btn = '<a class="btn btn-sm btn-default" href="/mes/edit/vendorPhotos/'+str(r[0])+'">资质图片管理</a>' btn = '<a class="btn btn-sm btn-default" href="/mes/edit/vendorPhotos/'+str(r[0])+'">资质图片管理</a>'
d.append([ a,r[2],r[3],r[4],btn ]) d.append([ a,r[2],r[3],r[4],r[5],r[6],btn ])
data['data']=d data['data']=d
elif what=='customer': elif what=='customer':
data['subtt']=[_('供应商与客户'),_('代工客户')] data['subtt']=[_('供应商与客户'),_('代工客户')]
......
...@@ -53,10 +53,18 @@ ...@@ -53,10 +53,18 @@
<label class="col-sm-2 control-label ">{% trans '供应商名称:' %} </label> <label class="col-sm-2 control-label ">{% trans '供应商名称:' %} </label>
<div class="col-sm-10">{{ form.name }}</div> <div class="col-sm-10">{{ form.name }}</div>
</div> </div>
<div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '供应商外部编码:' %} </label>
<div class="col-sm-10">{{ form.external_code }}</div>
</div>
<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>
<div class="col-sm-10">{{ form.address }}</div> <div class="col-sm-10">{{ form.address }}</div>
</div> </div>
<div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '联系人:' %} </label>
<div class="col-sm-10">{{ form.contacts }}</div>
</div>
<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>
<div class="col-sm-10">{{ form.cellphone }}</div> <div class="col-sm-10">{{ form.cellphone }}</div>
......
...@@ -43,6 +43,14 @@ ...@@ -43,6 +43,14 @@
<label class="col-sm-2 control-label ">{% trans '计量类别:' %} </label> <label class="col-sm-2 control-label ">{% trans '计量类别:' %} </label>
<div class="col-sm-10">{{ form.measure }}</div> <div class="col-sm-10">{{ form.measure }}</div>
</div> </div>
<div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '规格(例如:1*4*6):' %} </label>
<div class="col-sm-10">{{ form.specification }}</div>
</div>
<div class="form-group ">
<label class="col-sm-2 control-label ">{% trans '基础单位:' %} </label>
<div class="col-sm-10">{{ form.base_unit }}</div>
</div>
<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>
<div class="col-sm-10">{{ form.remark }}</div> <div class="col-sm-10">{{ form.remark }}</div>
......
{% extends 'obj_form.html' %}
{% load i18n %}
{% load tj_filters %}
{% block js %}
{{ block.super }}
{% if not perms.company.sys_admin %}
$('#data-content input,#data-content .btn,#data-content select').attr("disabled",true);
{% endif %}
{% ifnotequal request.user.company.level_id 1 %}
$('#data-content input,#data-content .btn,#data-content select').attr("disabled",true);
{% endifnotequal %}
$.datetimepicker.setLocale('zh');
$('#vendor_label').autocomplete({
source: function(request, response) {
$.ajax({
url: '/obj/ajax/autocomplete/mes_vendor/',
dataType: "json",
data: {
term: $("#vendor_label").val() ,//搜索栏里的内容
company_id: $('#id_company').val() ,//额外参数
},
success: function(data) {
response(data);
}
});
},
select: function (event, ui) {
$("#vendor_id").val(ui.item.value);
$("#vendor_label").val(ui.item.label);
return false;
}
});
$('.add-vendor').click(function(){
var b=false;
var id=$('#vendor_id').val();
var name=$('#vendor_label').val();
<!-- var unit=$('#product_unit').val(); -->
var unit_price=$('#vendor_base_unit').val();
$('#packaging-vendor tbody tr').each(function(idx,val){
if($(this).find('.pid').val()==$('#vendor_id').val()){
b=true;
return;
}
});
if($.isEmpty(id) || $.isEmpty(name) || $.isEmpty(unit_price)){
toastr.error("供应商/单价不能为空!", "操作错误:",
{timeOut: 800, positionClass: "toast-center-center"}
);
}else{
if (b){
toastr.error("已在列表中!", "操作错误:",
{timeOut: 800, positionClass: "toast-center-center"}
);
}else{
var prefix='#id_packagingvendor_set-';
$(prefix+'__prefix__').find('.vendor').text(name);
var count = $('#packaging-vendor tbody tr').length;
var tmplMarkup = '<tr class="p">'+$(prefix+'__prefix__').html()+'</tr>';
var compiledTmpl = tmplMarkup.replace(/__prefix__/g, count);
$('#packaging-vendor tbody').append(compiledTmpl);
$(prefix+count+'-vendor').val(id);
$(prefix+count+'-unit_price').val(unit_price);
$(prefix+'TOTAL_FORMS').attr('value', (count+1));
console.log('www---',id,prefix+count);
}
}
});
$('#id_means').change(function(){
if($(this).val()==1){
$('#id_tm_app_latest').val('').attr("disabled",true);
}else{
$('#id_tm_app_latest').attr("disabled",false);
}
});
$('.btn-save').click(function(){
a=[];
$("#sel-div option").each(function (){
a.push($(this).val());
});
if(a.length>0){
$('#id_div_ids').val(a.join(','));
};
a=[];
$("#sel-subdiv option").each(function (){
a.push($(this).val());
});
if(a.length>0){
$('#id_subdiv_ids').val(a.join(','));
};
$.SubmitForm('#obj_form form','{{request.path}}');
});
$('#obj_form .select2_multiple').on('dblclick','option',function(){
$(this).remove();
});
{% endblock %}
{% block subtitle-1 %}
{% trans "物料信息" %}
{% endblock %}
{% block subtitle-2 %}
{% trans "包装物料" %}
{% endblock %}
<span style="margin-left:10px; color:green; ">
{% block subtitle-3 %}
{% if form.instance.id %}
{% trans "修改" %}
{% else %}
{% trans "新建" %}
{% endif %}
{% endblock %}
</span>
{% block form_content %}
{{ block.super }}
<input type="hidden" name="company" value="{{company}}" id="id_company" class="form-control">
<div class="form-group ">
<label class="col-sm-1 control-label ">{% trans '物料编号' %} </label>
<div class="col-sm-5">{{ form.code }}</div>
<label class="col-sm-1 control-label ">{% trans '物料名称' %} </label>
<div class="col-sm-5">{{ form.name }}</div>
</div>
<div class="form-group ">
<label class="col-sm-1 control-label ">{% trans '计量类别' %} </label>
<div class="col-sm-2">{{ form.measure }}</div>
<label class="col-sm-1 control-label ">{% trans '所属企业' %} </label>
<div class="col-sm-2">{{ company }}</div>
</div>
<!-- <div class="form-group " style="margin-bottom:0px;padding-bottom:0px;">
<label class="col-sm-1 control-label ">{% trans '指定战区' %} </label>
<div class="col-sm-5">
<div class="input-group">
<select id='div_id'>
<option value=''>所有战区</option>
{% for o in saldivs %}
<option value='{{o.0}}'>{{o.1}}</option>
{% endfor %}
</select>
<span class="input-group-btn"><button type="button" class="btn btn-success add-div">
<span class='glyphicon glyphicon-arrow-down'></span></button></span>
</div>
</div>
<label class="col-sm-1 control-label ">{% trans '指定分区' %} </label>
<div class="col-sm-5">
<div class="input-group">
<select id="subdiv_id"><option>所有分区</option></select>
<span class="input-group-btn"><button type="button" class="btn btn-success add-subdiv">
<span class='glyphicon glyphicon-arrow-down'></span></button></span>
</div>
</div>
</div>
<div class="form-group" style='padding-top:0px;margin-top:0px;'>
<div class='col-sm-5 col-md-offset-1'>
<select class="select2_multiple form-control" id="sel-div" multiple="multiple">
{% for o in div_ids %}
<option value='{{o.0}}'>{{o.1}}</option>
{% endfor %}
</select>
</div>
<div class='col-sm-5 col-md-offset-1'>
<select class="select2_multiple form-control" id="sel-subdiv" multiple="multiple">
{% for o in subdiv_ids %}
<option value='{{o.0}}'>{{o.1}}</option>
{% endfor %}
</select>
</div>
</div> -->
{% endblock %}
{% block fmset %}
<table style="display:none;">
<tr id="id_packagingvendor_set-__prefix__" >
<td>{{formset_v.empty_form.DELETE}}{{formset_v.empty_form.id}}{{formset_v.empty_form.status}}</td>
<td>{{formset_v.empty_form.vendor}}<span class='vendor'></span></td>
<td>{{formset_v.empty_form.unit_price}}</td>
<!-- <td>{{formset_v.empty_form.package_id}}</td> -->
<td>{{formset_v.empty_form.remark}}</td>
</tr>
</table>
{{ formset_v.management_form }}
<!-- <table style="display:none;">
<tr id="id_schemematerials_set-__prefix__" >
<td>{{mset.empty_form.DELETE }}{{mset.empty_form.id}}{{mset.empty_form.status}}</td>
<td>{{mset.empty_form.material}}<span class='material'></span></td>
<td>{{mset.empty_form.unit_price}}</td>
<td>{{mset.empty_form.remark}}</td>
</tr>
</table>
{{ mset.management_form }} -->
<div class="x_panel" id='packaging-vendor'>
<div class="x_title">
<h2 style='font-size:15px;'><i class="fa fa-gift"></i> 供应商 </h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Settings 1</a>
</li>
<li><a href="#">Settings 2</a>
</li>
</ul>
</li>
<li><a class="close-link"><i class="fa fa-close"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="form-group ">
<div class='col-sm-6'><input id='vendor_label' placeholder='供应商名称'><input type='hidden' id='vendor_id'></div>
<div class='col-sm-1'><input id='vendor_base_unit' placeholder='单价'></div>
<!-- <div class='col-sm-1'><select id='product_unit'>
<option value='3'>箱</option>
<option value='1'>瓶</option>
</select></div> -->
<span class="input-group-btn"><button type="button" class="btn btn-success add-vendor">
<span class='glyphicon glyphicon-arrow-down'></span></button></span>
</div>
<div class='table-responsive' style='padding:10px;'>
<table class="table table-condensed table-bordered table-hover">
<thead>
<th style='width:5%;'>删除</th>
<th style='width:35%;'>供应商名称</th>
<th style='width:10%;'>单价</th>
<!-- <th style='width:10%;'>单位</th> -->
<th style='width:45%;'>备注</th>
</thead>
<tbody>
{% for f in formset_v %}
<tr>
<td>{{f.DELETE}}{{f.id}}{{f.status}}</td>
<td>{{f.vendor}}<span class='vendor'>{{f.instance.vendor.name}}</span></td>
<td>{{f.unit_price}}</td>
<!-- <td>{{f.package_id}}</td> -->
<td>{{f.remark}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
<!-- <div class="x_panel" id='scheme-material'>
<div class="x_title">
<h2 style='font-size:15px;'><i class="fa fa-gift"></i> 促销物料 </h2>
<ul class="nav navbar-right panel_toolbox">
<li><a class="collapse-link"><i class="fa fa-chevron-up"></i></a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-wrench"></i></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Settings 1</a>
</li>
<li><a href="#">Settings 2</a>
</li>
</ul>
</li>
<li><a class="close-link"><i class="fa fa-close"></i></a>
</li>
</ul>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div class="form-group ">
<div class='col-sm-6'><input id='material_label' placeholder='物料名称'><input type='hidden' id='material_id'></div>
<div class='col-sm-2'><input id='material_unit_price' placeholder='数量'></div>
<span class="input-group-btn"><button type="button" class="btn btn-success add-material">
<span class='glyphicon glyphicon-arrow-down'></span></button></span>
</div>
<div class='table-responsive' style='padding:10px;'>
<table class="table table-condensed table-bordered table-hover">
<thead>
<th style='width:5%;'>删除</th>
<th style='width:45%;'>物料名称</th>
<th style='width:10%;'>数量</th>
<th style='width:45%;'>备注</th>
</thead>
<tbody>
{% for f in mset %}
<tr>
<td>{{f.DELETE}}{{f.id}}{{f.status}}</td>
<td>{{f.material}}<span class='material'>{{f.instance.material.name}}</span></td>
<td>{{f.unit_price}}</td>
<td>{{f.remark}}</td>
</tr>
{% endfor %}
</tbody>
</table></div>
</div>
</div> -->
<div> <a class="btn btn-primary btn-save" type="submit" style="float:right;">{% trans '保存' %}</a></div>
{% endblock %}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论