lyh пре 3 година
родитељ
комит
03fcbeafd7

+ 14 - 3
apps/finance/models.py

@@ -110,10 +110,10 @@ class dbFinanceIncome(models.Model):
         (SALE_ENTRY_FARE, 'SF'),
     )
 
-    no = models.CharField(max_length=50, verbose_name=u"收银单号")
+    no = models.CharField(max_length=50, verbose_name=u"收银单号", editable=False)
     referer_no = models.CharField(max_length=50, verbose_name=u"引用单据编号")
     department = models.ForeignKey(Department, related_name='finance_income_ref_department', verbose_name=u'部门',null=True,on_delete=models.PROTECT)
-    create_user = models.ForeignKey(User, related_name='finance_income_ref_create_user', verbose_name=u"创建人", on_delete=models.PROTECT)
+    create_user = models.ForeignKey(User, related_name='finance_income_ref_create_user', verbose_name=u"创建人", on_delete=models.PROTECT, editable=False)
     create_time = models.DateTimeField(verbose_name=u"创建时间", default=timezone.now)
     type = models.IntegerField(choices=TYPE_CHOICES, verbose_name=u"类型")
     amount = models.BigIntegerField(verbose_name=u"金额")
@@ -135,11 +135,22 @@ class dbFinanceIncome(models.Model):
             if count == 0:
                 self.no = '%s%s%04d' % (prefix, now.strftime('%Y%m%d'), count + 1)
             else:
-                suffix = (rows[0].no.split('-'))[1]
+                suffix = (rows[0].no[2:])
                 self.no = prefix+str(int(suffix) + 1)
 
         super(dbFinanceIncome, self).save(*args, **kwargs)
 
+    @staticmethod
+    def getById(id):
+        try:
+            id = int(id)
+        except:
+            raise CustomError(u'无效的财务收支单ID')
+        instance = dbFinanceIncome.objects.filter(pk=id).first()
+        if not instance:
+            raise CustomError(u'未找到相应的收支单')
+        return instance
+
     class Meta:
         db_table = "finance_income"
         verbose_name = u"收支管理"

+ 55 - 0
apps/finance/serializers.py

@@ -113,3 +113,58 @@ class FinancePurposeSerializer(serializers.ModelSerializer):
             return self.save()
         else:
             raise CustomError(dump_serializer_errors(self))
+
+
+class FinanceIncomeSerializer(serializers.ModelSerializer):
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
+    type_text = serializers.CharField(source='get_type_display', read_only=True)
+    check_status_text = serializers.CharField(source='get_check_status_display', read_only=True)
+    account_text = serializers.CharField(source='account.name', read_only=True)
+    purpose_text = serializers.CharField(source='purpose.name', read_only=True)
+    check_user_text = serializers.CharField(source='check_user.name', read_only=True)
+
+
+    class Meta:
+        model = dbFinanceIncome
+        fields = '__all__'
+
+    @staticmethod
+    def factory(user, data, id=None):
+        if id:
+            instance = dbFinanceIncome.getById(id)
+        else:
+            instance = None
+        serializer = FinanceIncomeSerializer(instance, data=data)
+        serializer.user = user
+        return serializer
+
+    def create(self, validated_data):
+        validated_data['create_user'] = self.user
+        instance = dbFinanceIncome.objects.create(**validated_data)
+        BizLog.objects.addnew(
+            self.user,
+            BizLog.INSERT,
+            u"添加收支单[%s],id=%d" % (instance.no, instance.id),
+            validated_data
+        )
+        return instance
+
+    def update(self, instance, validated_data):
+        instance = super(FinanceIncomeSerializer, self).update(instance, validated_data)
+        BizLog.objects.addnew(
+            self.user,
+            BizLog.UPDATE,
+            u"修改收支单[%s],id=%d" % (instance.no, instance.id),
+            validated_data
+        )
+        return instance
+
+    def validate(self, data):
+        data['amount'] = Formater.formatAmount(data['amount'])
+        return data
+
+    def validSave(self):
+        if self.is_valid():
+            return self.save()
+        else:
+            raise CustomError(dump_serializer_errors(self))

+ 2 - 1
apps/order/filters.py

@@ -7,6 +7,7 @@ from models import SaleOrder, GoodsDeliver
 class SaleOrderFilter(django_filters.FilterSet):
     create_time = django_filters.DateTimeFromToRangeFilter(field_name='create_time')
     no = django_filters.CharFilter(name='no', lookup_expr='icontains')
+    cleared = django_filters.CharFilter(name='cleared')
     create_user = django_filters.CharFilter(name='create_user__name', lookup_expr='icontains')
     customer_name = django_filters.CharFilter(name='customer__name', lookup_expr='icontains')
     customer_tel = django_filters.CharFilter(name='customer__mobile', lookup_expr='icontains')
@@ -15,7 +16,7 @@ class SaleOrderFilter(django_filters.FilterSet):
         model = SaleOrder
         fields = (
             'create_time', 'no', 'customer_name', 'customer_tel',
-            'status', 'create_user'
+            'status', 'create_user', 'cleared'
         )
 
     def __init__(self, data=None, *args, **kwargs):

+ 18 - 4
apps/order/resources.py

@@ -19,12 +19,25 @@ class SaleOrderResource(resources.Resource):
         self.fields['notes'] = Field(attribute='notes')
         self.fields['count'] = Field(attribute='count')
         self.fields['amount'] = Field(attribute='amount')
+        self.fields['receive_count'] = Field(attribute='receive_count')
+        self.fields['receive_amount'] = Field(attribute='receive_amount')
+        self.fields['pay_amount'] = Field(attribute='pay_amount')
+        self.fields['loss_amount'] = Field(attribute='loss_amount')
+        self.fields['put_amount'] = Field(attribute='put_amount')
+        self.fields['fare_amount'] = Field(attribute='fare_amount')
+        self.fields['total_amount'] = Field(attribute='total_amount')
+        self.fields['clear_text'] = Field(attribute='clear_text')
 
     def get_export_headers(self):
-        return [u'单号', u'客户', u'客户电话', u'产品', u'合计数量', u'合计金额', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
+        return [u'单号', u'客户', u'客户电话', u'产品', u'合计数量', u'合计金额',
+                u'收货数量', u'收货金额', u'扣减金额', u'应付金额', u'结算金额', u'装车费用', u'运输费用', u'结清',
+                u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
 
     class Meta:
-        fields = ('no', 'customer_name', 'customer_tel', 'products', 'count', 'amount', 'create_time', 'create_user_text', 'check_status_text',
+        fields = ('no', 'customer_name', 'customer_tel', 'products',
+                  'count', 'amount', 'receive_count', 'receive_amount', 'loss_amount',
+                  'total_amount', 'pay_amount', 'put_amount', 'fare_amount', 'clear_text',
+                  'create_time', 'create_user_text', 'check_status_text',
                   'check_time', 'check_user_text', 'notes',)
         export_order = fields
 
@@ -36,14 +49,15 @@ class SaleOrderDetailResource(resources.Resource):
         self.fields['model'] = Field(attribute='model')
         self.fields['quality_request_text'] = Field(attribute='quality_request_text')
         self.fields['count'] = Field(attribute='count')
+        self.fields['receive_count'] = Field(attribute='receive_count')
         self.fields['price'] = Field(attribute='price')
         self.fields['amount'] = Field(attribute='amount')
 
     def get_export_headers(self):
-        return [u'产品名称', u'产品代码', u'质量标准',u'数量', u'单价', u'金额',]
+        return [u'产品名称', u'产品代码', u'质量标准',u'数量', u'收货数量', u'单价', u'金额',]
 
     class Meta:
-        fields = ('name', 'model', 'quality_request_text', 'count', 'price', 'amount',)
+        fields = ('name', 'model', 'quality_request_text', 'count', 'receive_count', 'price', 'amount',)
         export_order = fields
 
 

+ 7 - 0
apps/order/serializers.py

@@ -28,6 +28,7 @@ class SaleOrderSerializer(serializers.ModelSerializer):
     customer_tel = serializers.CharField(source='customer.mobile', read_only=True)
     products = serializers.SerializerMethodField()
     total_amount = serializers.SerializerMethodField()
+    clear_text = serializers.SerializerMethodField()
     count = CountShowCharField(read_only=True)
     amount = AmountShowCharField(read_only=True)
     receive_count = CountShowCharField(read_only=True)
@@ -51,6 +52,11 @@ class SaleOrderSerializer(serializers.ModelSerializer):
         amount = Formater.formatAmountShow((obj.receive_amount or 0) - (obj.loss_amount or 0))
         return amount
 
+    def get_clear_text(self, obj):
+        if obj.cleared:
+            return u'是'
+        return u'否'
+
     @staticmethod
     def factory(user, data,id=None):
         if id:
@@ -95,6 +101,7 @@ class SaleOrderDetailSerializer(serializers.ModelSerializer):
     quality_request_text = serializers.CharField(source='quality_request.name', read_only=True)
     quality_request_id = serializers.CharField(source='quality_request.id', read_only=True)
     count = CountShowCharField()
+    receive_count = CountShowCharField()
     price = PriceShowCharField()
     amount = AmountShowCharField(read_only=True)
 

+ 1 - 0
apps/order/urls.py

@@ -14,6 +14,7 @@ urlpatterns = (
     url(r'^sale_order/loss_save/$', sale_order_loss_save),
     url(r'^sale_order/pay/$', sale_order_pay),
     url(r'^sale_order/fare_save/$', sale_order_fare_save),
+    url(r'^sale_order/clear/$', sale_order_clear),
     url(r'^sale_order/export_detail/$', sale_order_export_detail),
 
     url(r'^sale_order/select/$', sale_order_select),

+ 72 - 46
apps/order/views.py

@@ -30,6 +30,7 @@ from apps.foundation.models import BizLog, Option
 from resources import SaleOrderResource, SaleOrderDetailResource, GoodsDeliverDetailResource, GoodsDeliverResource, \
     GoodsDeliverQueryResource, GoodsDeliverReturnQueryResource
 from apps.finance.models import dbFinanceIncome
+from apps.finance.serializers import FinanceIncomeSerializer
 
 
 @csrf_exempt
@@ -309,24 +310,20 @@ def sale_order_pay(request):
                 order.cleared = True
                 order.save()
 
-            dbFinanceIncome.objects.create(
-                referer_no=order.no,
-                create_user=request.user,
-                department=request.user.department,
-                type=dbFinanceIncome.SALE_ENTRY_PAY,
-                amount=Formater.formatAmount(data['actual_amount']),
-                account_id=data['account'],
-                check_status=settings.PASS,
-                check_user=request.user,
-                check_time=timezone.now(),
-                notes=data['notes']
-            )
+            income_data = {
+                'referer_no': order.no,
+                'type': dbFinanceIncome.SALE_ENTRY_PAY,
+                'amount': data['actual_amount'],
+                'account': data['account'],
+                'check_status': settings.PASS,
+                'check_user':request.user.id,
+                'department':request.user.department_id,
+                'check_time': timezone.now(),
+                'notes': data['notes']
+            }
 
-            BizLog.objects.addnew(
-                request.user,
-                BizLog.UPDATE,
-                u"销售订单[%s]结算,id=%d" % (order.no, order.id),
-            )
+            income = FinanceIncomeSerializer.factory(request.user, income_data)
+            income.validSave()
 
     except CustomError, e:
         return JSONError(e.get_error_msg())
@@ -340,14 +337,15 @@ def sale_order_pay(request):
 @permission_required('order.pay_sale_order')
 def sale_order_fare_save(request):
     id = request.GET.get('id')
-    fare_amount = request.GET.get('fare_amount')
-    fare_account = request.GET.get('fare_account')
-    put_amount = request.GET.get('put_amount')
-    put_account = request.GET.get('put_account')
+    data = json.loads(request.body)
 
     try:
         with transaction.atomic():
             order = SaleOrder.getById(id)
+            fare_amount = data['fare_amount']
+            fare_account = data['fare_account']
+            put_amount = data['put_amount']
+            put_account = data['put_account']
 
             if fare_amount != 0:
                 if not fare_account:
@@ -355,17 +353,19 @@ def sale_order_fare_save(request):
                 fare_amount = Formater.formatAmount(fare_amount)
                 order.fare_amount += fare_amount
 
-                dbFinanceIncome.objects.create(
-                    referer_no=order.referer_no,
-                    create_user=request.user,
-                    department=request.user.department,
-                    type=dbFinanceIncome.SALE_ENTRY_FARE,
-                    amount=(-fare_amount),
-                    account_id=fare_account,
-                    check_status=settings.PASS,
-                    check_user=request.user,
-                    check_time=timezone.now()
-                )
+                income_data = {
+                    'referer_no': order.no,
+                    'type': dbFinanceIncome.SALE_ENTRY_FARE,
+                    'amount': -data['fare_amount'],
+                    'account': fare_account,
+                    'check_status': settings.PASS,
+                    'check_user': request.user.id,
+                    'department': request.user.department_id,
+                    'check_time': timezone.now()
+                }
+
+                pb = FinanceIncomeSerializer.factory(request.user, income_data)
+                pb.validSave()
 
             if put_amount != 0:
                 if not put_account:
@@ -373,31 +373,57 @@ def sale_order_fare_save(request):
                 put_amount = Formater.formatAmount(put_amount)
                 order.put_amount += put_amount
 
-                dbFinanceIncome.objects.create(
-                    referer_no=order.referer_no,
-                    create_user=request.user,
-                    department=request.user.department,
-                    type=dbFinanceIncome.SALE_ENTRY_UNLOAD,
-                    amount=(-fare_amount),
-                    account_id=put_account,
-                    check_status=settings.PASS,
-                    check_user=request.user,
-                    check_time=timezone.now()
-                )
+                income_data = {
+                    'referer_no': order.no,
+                    'type': dbFinanceIncome.SALE_ENTRY_UNLOAD,
+                    'amount': -data['put_amount'],
+                    'account': put_account,
+                    'check_status': settings.PASS,
+                    'check_user': request.user.id,
+                    'department': request.user.department_id,
+                    'check_time': timezone.now()
+                }
+
+                pb = FinanceIncomeSerializer.factory(request.user, income_data)
+                pb.validSave()
 
             order.save()
 
+    except CustomError, e:
+        return JSONError(e.get_error_msg())
+    except Exception, e:
+        traceback.print_exc()
+        return JSONError(u'保存失败')
+    return JSONResponse({})
+
+
+@csrf_exempt
+@permission_required('order.pay_sale_order')
+def sale_order_clear(request):
+    id = request.GET.get('id')
+
+    try:
+        with transaction.atomic():
+            order = SaleOrder.getById(id)
+            if order.status == settings.DEFAULT:
+                raise CustomError(u'该订单未审核')
+
+            if order.cleared:
+                raise CustomError(u'该订单已结清')
+
+            order.cleared = True
+            order.save()
             BizLog.objects.addnew(
                 request.user,
-                BizLog.UPDATE,
-                u"销售订单[%s]添加装运费,id=%d" % (order.no, order.id),
+                BizLog.CHECK,
+                u"销售订单[%s]结清,id=%d" % (order.no, order.id),
             )
 
     except CustomError, e:
         return JSONError(e.get_error_msg())
     except Exception, e:
         traceback.print_exc()
-        return JSONError(u'保存失败')
+        return JSONError(u'结清失败')
     return JSONResponse({})
 
 @csrf_exempt

+ 69 - 1
uis/views/order/sale_order.html

@@ -31,6 +31,7 @@
               <button class="layui-btn layui-btn-sm" id="btn_receive"><i class="layui-icon layui-icon-ok-circle" ></i>完善发货</button>
               <button class="layui-btn layui-btn-sm" id="btn_ship" data-permission="order.pay_sale_order"><i class="layui-icon layui-icon-dollar" ></i>装运</button>
               <button class="layui-btn layui-btn-sm" id="btn_pay" data-permission="order.pay_sale_order"><i class="layui-icon layui-icon-dollar" ></i>结算</button>
+              <button class="layui-btn layui-btn-sm" id="btn_clear" data-permission="order.pay_sale_order"><i class="layui-icon layui-icon-dollar" ></i>结清</button>
 
                 <button class="layui-nav" data-permission="order.export_sale_order">
                 <div class="layui-nav-item">
@@ -112,6 +113,16 @@
                         <input type="text" autocomplete="off" name="customer_tel" class="layui-input">
                     </div>
                 </div>
+                 <div class="layui-col-xs12 layui-col-sm12">
+                    <label class="layui-form-label">结清:</label>
+                    <div class="layui-input-block">
+                        <select name="cleared">
+                            <option value="" selected>全部</option>
+                            <option value="0">未结清</option>
+                            <option value="1">已结清</option>
+                        </select>
+                    </div>
+                </div>
             </div>
             <div class="layui-form-item" style="display: none">
                 <button id="query_search" class="layui-btn" lay-submit lay-filter="query-form-element">查询</button>
@@ -153,6 +164,7 @@
         ,{field:'pay_amount', title:'结算金额', width:100, align:'right'}
         ,{field:'put_amount', title:'装车费用', width:100, align:'right'}
         ,{field:'fare_amount', title:'运输费用', width:100, align:'right'}
+        ,{field:'clear_text', title:'结清', width:60}
         ,{field:'loss_notes', title:'扣减备注', width:100, align:'right'}
         ,{field:'create_time', title:'创建时间', width:150}
         ,{field:'create_user_text', title:'创建人', width:150}
@@ -404,13 +416,14 @@
 
          layer.open({
           type: 2,
-          title: '扣减',
+          title: '扣减[' + data.no + ']',
           shadeClose: false,
           area: ['90%', '90%'],
           btn: ['保存', '取消'],
           yes: function(index, dom){
               layui.onSubmitChild = function (data) {
                   layer.close(index);
+                  table.reload('datagrid',{});
               };
               layui.submitChild();
           },
@@ -443,6 +456,7 @@
           yes: function(index, dom){
               layui.onSubmitChild = function (data) {
                   layer.close(index);
+                  table.reload('datagrid',{});
               };
               layui.submitChild();
           },
@@ -453,6 +467,60 @@
         });
     });
 
+    $('#btn_ship').on('click', function(){
+        var data = utils.getSelectedRow('datagrid');
+         if(data == false){
+             return;
+         }
+
+         table.editdata = data;
+
+         layer.open({
+          type: 2,
+          title: '添加装运费[' + data.no + ']',
+          shadeClose: false,
+          area: ['80%', '70%'],
+          btn: ['保存', '取消'],
+          yes: function(index, dom){
+              layui.onSubmitChild = function (data) {
+                  layer.close(index);
+                  table.reload('datagrid',{});
+              };
+              layui.submitChild();
+          },
+          btn2: function(index, layero){
+            layer.close(index);//关闭当前按钮
+          },
+          content: 'sale_order_fare.html?order_id='+data.id
+        });
+    });
+
+    $('#btn_clear').on('click', function(){
+        var data = utils.getSelectedRow('datagrid');
+         if(data == false){
+             return;
+         }
+
+         if (data.status === 0){
+            layer.msg('该订单未审核');
+            return;
+          }
+          if (data.cleared){
+            layer.msg('该订单已结清');
+            return;
+          }
+          layer.confirm('确定要结清吗?', function(index){
+              layer.close(index);
+              layui.admin.req({
+                url: '/order/sale_order/clear/?id='+data.id
+                ,done: function(res){
+                  table.reload('datagrid',{});
+                }
+              });
+        });
+
+    });
+
    $('#btn_query').on('click', function(){
         layer.open({
           type: 1,

+ 2 - 0
uis/views/order/sale_order_detail.html

@@ -42,6 +42,7 @@
                         <td>产品代码</td>
                         <td>质量要求</td>
                         <td align="right">数量</td>
+                        <td align="right">收货数量</td>
                         <td align="right">单价</td>
                         <td align="right">金额</td>
                     </tr>
@@ -82,6 +83,7 @@
                     "                        <td>"+items[n].model+"</td>\n" +
                     "                        <td>"+items[n].quality_request_text+"</td>\n" +
                     "                        <td align=\"right\">"+items[n].count+"</td>\n" +
+                    "                        <td align=\"right\">"+items[n].receive_count+"</td>\n" +
                     "                        <td align=\"right\">"+items[n].price+"</td>\n" +
                     "                        <td align=\"right\">"+items[n].amount+"</td>\n" +
                     "                    </tr>");

+ 135 - 0
uis/views/order/sale_order_fare.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+    <link rel="stylesheet" href="../../jquery-easyui-1.5.2/themes/icon.css" type="text/css">
+    <style type="text/css">
+        .table-overlay .layui-table-view,
+        .table-overlay .layui-table-header,
+        .table-overlay .layui-table-box,
+        .table-overlay .layui-table-body {
+            overflow: visible;
+        }
+
+        .table-overlay .layui-table-cell {
+            height: auto;
+            overflow: visible;
+        }
+    </style>
+</head>
+<body>
+
+<div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body" pad15>
+            <form class="layui-form" action="" lay-filter="component-form-element">
+
+                <div class="layui-row layui-col-space10">
+                    <div class="layui-col-xs6 layui-col-sm4">
+                        <label class="layui-form-label">运输费用:</label>
+                        <div class="layui-input-block">
+                            <input type="text" name="fare_amount" lay-verify="number" value="0"
+                                   class="layui-input">
+                        </div>
+                    </div>
+                    <div class="layui-col-xs6 layui-col-sm4">
+                        <label class="layui-form-label">付款账户:</label>
+                        <div class="layui-input-block">
+                            <select id="id_fare_account" name="fare_account" lay-search>
+                                <option value=""></option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="layui-row layui-col-space10">
+                    <div class="layui-col-xs6 layui-col-sm4">
+                        <label class="layui-form-label">装卸费用:</label>
+                        <div class="layui-input-block">
+                            <input type="text" name="put_amount" lay-verify="number" value="0" class="layui-input">
+                        </div>
+                    </div>
+                    <div class="layui-col-xs6 layui-col-sm4">
+                        <label class="layui-form-label">付款账户:</label>
+                        <div class="layui-input-block">
+                            <select id="id_put_account" name="put_account" lay-search>
+                                <option value=""></option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+
+                <button class="layui-btn" id="material-pay-submit" lay-submit
+                        lay-filter="component-form-element" style="display: none">确定
+                </button>
+            </form>
+        </div>
+    </div>
+</div>
+
+<script src="../../jquery-easyui-1.5.2/jquery.min.js"></script>
+<script src="../../layuiadmin/layui/layui.js"></script>
+<script>
+    layui.config({
+        base: '../../../layuiadmin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use(['index', 'form', 'utils',], function () {
+        var $ = layui.$;
+        var admin = layui.admin;
+        var form = layui.form;
+        var id = layui.view.getParameterByName('order_id');
+
+        admin.req({
+            url: '/foundation/search_options/?type=5',
+            done: function (res) {
+                var data = res.data;
+                var transport_account = $('#id_fare_account');
+                var handing_account = $('#id_put_account');
+                for (var i in data) {
+                    var pid = data[i].id;
+                    var value = data[i].name;
+                    transport_account.append("<option value='" + pid + "'>" + value + "</option>");
+                    handing_account.append("<option value='" + pid + "'>" + value + "</option>");
+                }
+                form.render();
+            }
+        });
+
+        form.on('submit(component-form-element)', function (data) {
+
+            if (parseFloat(data.field.put_amount) > 0 && !data.field.put_account) {
+                layer.msg('请选择装卸费用付款账户!', {icon: 5});
+                return false;
+            }
+
+            if (parseFloat(data.field.fare_amount) > 0 && !data.field.fare_account) {
+                layer.msg('请选择运输费用付款账户!', {icon: 5});
+                return false;
+            }
+            admin.req({
+                url: '/order/sale_order/fare_save/?id=' + id
+                , data: JSON.stringify(data.field)
+                , type: 'post'
+                , done: function (res) {
+                    parent.layui.onSubmitChild();
+                }
+            });
+            return false;
+        });
+
+        parent.layui.submitChild = function () {
+            $("#material-pay-submit").click();
+        };
+
+    })
+</script>
+</body>
+</html>