From d1cd5af5adb53e91efdd278328e1b6f8ad834fb5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 06 二月 2025 21:11:56 +0800
Subject: [PATCH] Merge branch 'positec' into dms

---
 src/templates/zshare/verifycard/index.jsx |  129 +++++++++++++++++++++++++++++++++----------
 1 files changed, 99 insertions(+), 30 deletions(-)

diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx
index 7d0eff2..e6c8b75 100644
--- a/src/templates/zshare/verifycard/index.jsx
+++ b/src/templates/zshare/verifycard/index.jsx
@@ -746,6 +746,10 @@
         _f.writein = _f.writein !== 'false'
         _f.fieldlen = _f.fieldlength || 50
 
+        if (_f.type === 'linkMain' && _f.verifyVal === 'true') {
+          _f.$verify = true
+        }
+
         if (_f.type === 'datemonth') {
           _f.type = 'text'
         } else if (_f.type === 'number' || _f.type === 'rate') {
@@ -848,13 +852,19 @@
       colfields: colfields.join(', '),
       uniqueColumns: this.state.uniqueColumns.map(col => {
         if (col.dataIndex === 'field') {
-          col.options = _fields
+          col.options = fromJS(unionFields).toJS().map(n => {
+            n.label = `${n.label}锛�${n.field}锛塦
+            return n
+          })
         }
         return col
       }),
       onceUniqueColumns: this.state.onceUniqueColumns.map(col => {
         if (col.dataIndex === 'field') {
-          col.options = _columns
+          col.options = fromJS(_columns).toJS().map(n => {
+            n.label = `${n.label}锛�${n.field}锛塦
+            return n
+          })
         }
         return col
       }),
@@ -1034,8 +1044,19 @@
 
     formdata = formdata.length ? formdata : null
 
+    let verifyValSql = ''
     // 鑾峰彇瀛楁閿�煎
     formdata && formdata.forEach(form => {
+      if (form.$verify) {
+        verifyValSql += `
+        if @${form.field}=${form.type === 'number' ? 0 : `''`}
+        begin
+          select @errorcode='E',@retmsg='${form.label}锛屽叧鑱斾富琛ㄥけ鏁�'
+          goto aaa
+        end
+        `
+      }
+
       let _key = form.field.toLowerCase()
       if (!_initvars.includes(_key)) {
         _initvars.push(_key)
@@ -1287,22 +1308,21 @@
   
       verify.billcodes.forEach(item => {
         let _key = item.field.toLowerCase()
-        let _linkKey = item.linkField ? item.linkField.toLowerCase() : ''
   
         if (!keys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈�
   
         let _lpline = ''
         if (item.TypeCharOne === 'Lp') {
-          if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
+          if (/^BID$/ig.test(item.linkField)) {
             _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@BID@,48)`
           } else {
-            _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${_linkKey},48)`
+            _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${item.linkField},48)`
           }
         } else if (item.TypeCharOne === 'BN') {
-          if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
+          if (/^BID$/ig.test(item.linkField)) {
             _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)`
           } else {
-            _lpline = `set @ModularDetailCode= 'BN'+ right(@${_linkKey},48)`
+            _lpline = `set @ModularDetailCode= 'BN'+ right(@${item.linkField},48)`
           }
         } else {
           _lpline = `set @ModularDetailCode= right('${item.ModularDetailCode}',50)`
@@ -1353,21 +1373,26 @@
         item.field.split(',').forEach((_field, index) => {
           let _key = _field.toLowerCase()
           let _val = ''
+          let _val2 = ''
   
           arr.push(_key)
-          if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺
-            _val = BID
-          } else if (numForms.includes(_key)) {
-            _val = '1'
-          } else if (dateForms.includes(_key)) {
-            _val = '1949-10-01'
+          if (_key === 'bid') {
+            _val = `'${BID}'`
+          } else {
+            _val = `@${_field}`
           }
 
-          _fieldValue.push(`${_key}='${_val}'`)
-          _value.push(`${_labels[index] || ''}锛�${_val || ''}`)
+          if (_key === 'bid') {
+            _val2 = BID
+          } else {
+            _val2 = `' + @${_field} + '`
+          }
+
+          _fieldValue.push(`${_key}=${_val}`)
+          _value.push(`${_labels[index] || ''}锛�${_val2}`)
         })
   
-        if (!arr.includes(primaryKey.toLowerCase())) {
+        if (!arr.includes(primaryKey.toLowerCase()) && btn.Ot !== 'notRequired') {
           _fieldValue.push(`${primaryKey} !='${primaryId}'`)
         }
   
@@ -1418,15 +1443,20 @@
     let hasvoucher = false
   
     // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎
-    if (verify.voucher && verify.voucher.enabled && btn.Ot !== 'requiredOnce') {
+    if (verify.voucher && verify.voucher.enabled) {
       let _voucher = verify.voucher
+      let linkField = `@${_voucher.linkField}`
+  
+      if (/^BID$/ig.test(_voucher.linkField)) {
+        linkField = `'${BID}'`
+      }
   
       hasvoucher = true
   
       _sql += `
         /* 鍒涘缓鍑瘉 */
         exec s_BVoucher_Create
-          @Bill ='0',
+          @Bill = ${linkField},
           @BVoucherType ='${_voucher.BVoucherType}',
           @VoucherTypeOne ='${_voucher.VoucherTypeOne}',
           @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}',
@@ -1689,6 +1719,10 @@
     } else if (_backCustomScript) {
       _sql += _backCustomScript
     }
+
+    if (verifyValSql) {
+      _sql += verifyValSql
+    }
   
     if (btn.procMode === 'system') {
       _sql += `
@@ -1733,9 +1767,12 @@
     if (!_prev) return _back
 
     let tbs = []
-    _prev.replace(/\/\*[^/*]+\*\//g, '').replace(/\n|\r/g, ' ').split(/\sdeclare\s/ig).forEach(line => {
-      if (!/^\s*(@|#)[a-zA-Z0-9_]+\s+table\s+\(/ig.test(line)) return
-      let tb = line.match(/(@|#)[a-zA-Z0-9_]+\s+table\s+\(.+(\)|date|datetime)\s*\)/ig)
+    _prev.replace(/\/\*[^/*]+\*\//g, '').replace(/\n|\r/g, ' ').split(/\sdeclare\s+|\screate\s+table\s+/ig).forEach(line => {
+      if (/^\s*(@|#)[a-zA-Z0-9_]+\s+table\s+\(/ig.test(line)) {
+        line = line.replace(/\s+table\s+\(/, '(')
+      }
+      if (!/^\s*(@|#)[a-zA-Z0-9_]+\s*\(/ig.test(line)) return
+      let tb = line.match(/(@|#)[a-zA-Z0-9_]+\s*\(.+(\)|date|datetime)\s*\)/ig)
 
       if (tb && tb.length === 1) {
         tbs.push(tb[0])
@@ -1747,7 +1784,7 @@
 
       if (!tbName) return
 
-      let content = tb.replace(/(@|#)[a-zA-Z0-9_]+\s+table\s+\(\s*/, '').replace(/\s*\)$/, '')
+      let content = tb.replace(/(@|#)[a-zA-Z0-9_]+\s*\(\s*/, '').replace(/\s*\)$/, '')
       content = content.replace(/decimal\(\s*\d+\s*,\s*\d+\s*\)/ig, 'decimal')
 
       let keys = []
@@ -1896,7 +1933,7 @@
       let hasvoucher = false
   
       // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎
-      if (verify.voucher && verify.voucher.enabled && btn.Ot !== 'requiredOnce') {
+      if (verify.voucher && verify.voucher.enabled) {
         hasvoucher = true
       }
       if (hasvoucher) {
@@ -1990,7 +2027,8 @@
       _lpline = `set @ModularDetailCode= right('${record.ModularDetailCode}',50)`
     }
 
-    let sql = `select @BillCode='', @${record.field}='', @ModularDetailCode=''
+    let sql = `Declare @BillCode nvarchar(50),@ModularDetailCode nvarchar(50)
+    select @BillCode='', @${record.field}='', @ModularDetailCode=''
     ${_lpline}
     exec s_get_BillCode
       @ModularDetailCode=@ModularDetailCode,
@@ -2075,6 +2113,10 @@
         }
       })
     } else {
+      let sql = this.getSysExecSql(verify, false)
+  
+      Api.sDebug(sql, true)
+
       this.setState({ verify })
     }
   }
@@ -2144,6 +2186,10 @@
         }
       })
     } else {
+      let sql = this.getSysExecSql(verify, false)
+  
+      Api.sDebug(sql, true)
+
       MKEmitter.emit('editLineId', values.uuid)
   
       this.setState({ verify })
@@ -2209,6 +2255,29 @@
         this.setState({ verify })
       }
     } else {
+      let sql = this.getSysBackSql(verify.cbScripts, card.cbTable)
+      
+      if (sql) {
+        let defSql = this.getSysExecSql(verify, true)
+
+        sql = `${defSql}
+          ${sql}
+        `
+
+        if (card.output) {
+          sql += `
+            aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${card.output} as mk_b_id`
+        } else {
+          sql += `
+            aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
+        }
+
+        sql = sql.replace(/@typename@/ig, `'typename'`)
+        sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`)
+
+        Api.sDebug(sql, true)
+      }
+
       MKEmitter.emit('editLineId', values.uuid)
 
       this.setState({ verify })
@@ -2408,12 +2477,12 @@
 
   changeUniques = (uniques) => {
     const { card } = this.props
-    const { verify, fields, columnsFields } = this.state
+    const { verify, unionFields, columnsFields } = this.state
 
     let _fields = []
     let change = {}
     if (card.Ot !== 'requiredOnce') {
-      _fields = fields
+      _fields = unionFields
     } else {
       _fields = columnsFields
     }
@@ -2611,7 +2680,7 @@
             />
             <EditTable actions={['move']} data={verify.customverifys} columns={customColumns} onChange={(customverifys) => {this.setState({verify: {...verify, customverifys}})}}/>
           </TabPane> : null}
-          {verifyInter === 'system' ? <TabPane tab={
+          {verifyInter === 'system' && (['form', 'pop'].includes(card.OpenType) || !card.OpenType) ? <TabPane tab={
             <span>
               鍗曞彿鐢熸垚
               {verify.billcodes.length ? <span className="count-tip">{verify.billcodes.length}</span> : null}
@@ -2629,7 +2698,7 @@
             />
             <EditTable actions={['move']} data={verify.billcodes} columns={orderColumns} onChange={(billcodes) => {this.setState({verify: {...verify, billcodes}})}}/>
           </TabPane> : null}
-          {verifyInter === 'system' ? <TabPane tab={
+          {verifyInter === 'system' && (card.Ot === 'requiredOnce' || (['form', 'pop'].includes(card.OpenType) || !card.OpenType)) ? <TabPane tab={
             <span>
               {card.Ot !== 'requiredOnce' ? '鍞竴鎬ч獙璇�' : '鍚岀被鏁版嵁楠岃瘉'}
               {verify.uniques.length ? <span className="count-tip">{verify.uniques.length}</span> : null}
@@ -2637,7 +2706,7 @@
           } key="uniques">
             <UniqueForm
               btn={card}
-              fields={card.Ot !== 'requiredOnce' ? fields : columnsFields}
+              fields={card.Ot !== 'requiredOnce' ? unionFields : columnsFields}
               uniqueChange={this.uniqueChange}
             />
             <EditTable actions={['edit', 'move', 'del', 'status', 'sql']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/>
@@ -2650,7 +2719,7 @@
           } key="voucher">
             <VoucherForm
               voucher={voucher}
-              columns={columns}
+              columns={unionFields}
               voucherobj={verify.voucher}
               voucherDetail={voucherDetail}
               voucherChange={this.voucherChange}

--
Gitblit v1.8.0