Răsfoiți Sursa

fix:5446【销售订单】打印增加以下打印样式

mlchen 3 săptămâni în urmă
părinte
comite
dfe7407c5d

+ 54 - 13
src/views/saleManage/saleOrder/components/printTemplateHt.vue

@@ -108,10 +108,10 @@
               <td style="padding: 2px">{{ getTotalValue(wrapperItem, 'saleCount', 2) }} </td>
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
-              <td style="padding: 2px">{{ getTotalValue(wrapperItem, 'totalPrice', 2) }}</td>
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
+              <td style="padding: 2px">{{ getTotalValue(wrapperItem, 'totalPrice', 2) }}</td>
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
               <!-- <td style="padding: 2px"> </td> -->
@@ -179,6 +179,7 @@
 
 <script>
   import { getSaleOrderDetails } from '@/api/saleManage/saleorder';
+  import { getInfoBySourceBizNoAll } from '@/api/wms';
   import { mapGetters } from 'vuex';
   import { saveAs } from 'file-saver';
   export default {
@@ -208,7 +209,38 @@
 
     methods: {
       async open(id) {
-        this.formData = await getSaleOrderDetails(id);
+        const list = await getSaleOrderDetails(id);
+        this.formData = await Promise.all(
+          list.map(async (wrapperItem) => {
+            let outInDetailList = [];
+            try {
+              const outboundList = await getInfoBySourceBizNoAll(wrapperItem.orderNo);
+              outInDetailList = outboundList?.[0]?.outInDetailList || [];
+            } catch (e) {
+              outInDetailList = [];
+            }
+            const productList = (wrapperItem.productList || []).map((item) => {
+              const candidates = outInDetailList.filter(
+                (detail) =>
+                  detail.categoryCode === item.productCode ||
+                  String(detail.categoryId) === String(item.productId)
+              );
+              const outDetail =
+                candidates.find(
+                  (detail) =>
+                    (item.batchNo && detail.batchNo === item.batchNo) ||
+                    (item.systemBatchNo && detail.systemBatchNo === item.systemBatchNo)
+                ) || (candidates.length === 1 ? candidates[0] : {});
+              return {
+                ...item,
+                batchNo: item.batchNo || outDetail.batchNo || '',
+                cuttingLength: item.cuttingLength || outDetail.cuttingLength || '',
+                reelSpecification: item.reelSpecification || outDetail.reelSpecification || ''
+              };
+            });
+            return { ...wrapperItem, productList };
+          })
+        );
         console.log('formData~~~', this.formData);
         this.QRvisible = true;
 
@@ -296,7 +328,7 @@
         const td = `${cellBase}font-family:'宋体';font-size:11pt;`;
         const labelLeft = `${border}padding:4px;mso-number-format:"\\@";vertical-align:middle;text-align:left;mso-horizontal-align:left;font-family:'宋体';font-size:11pt;`;
 
-        const colWidths = [55, 170, 55, 70, 75, 65, 90, 70, 110];
+        const colWidths = [45, 135, 45, 55, 95, 75, 65, 65, 55, 75, 55, 75];
         const colGroup = colWidths
           .map((w) => `<col width="${w}" style="width:${w}pt;" />`)
           .join('');
@@ -319,6 +351,9 @@
                 <td align="center" valign="middle" style="${td}">${item.modelType || ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.saleUnit || ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.saleCount ?? ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.batchNo || ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.cuttingLength ?? ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.reelSpecification ?? ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.singlePrice ?? ''}</td>
                 <td align="center" valign="middle" style="${td}">${
               item.taxRate ? item.taxRate + '%' : '0%'
@@ -335,26 +370,29 @@
             style="border-collapse:collapse;border:1px solid #000;mso-border-alt:solid #000 0.5pt;font-family:'宋体';font-size:11pt;text-align:center;">
             <colgroup>${colGroup}</colgroup>
             <tr height="40" style="height:40pt;">
-              <td colspan="9" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
+              <td colspan="12" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}"></td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">门店:${wrapperItem.salesDeptName || ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}"></td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">门店:${wrapperItem.salesDeptName || ''}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}">客户:${wrapperItem.partaName || ''}</td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">单据日期:${wrapperItem.createTime ? wrapperItem.createTime.split(' ')[0] : ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}">客户:${wrapperItem.partaName || ''}</td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">单据日期:${wrapperItem.createTime ? wrapperItem.createTime.split(' ')[0] : ''}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}">项目名称:${wrapperItem.projectName || ''}</td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">单据编号:${wrapperItem.orderNo || ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}">项目名称:${wrapperItem.projectName || ''}</td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">单据编号:${wrapperItem.orderNo || ''}</td>
             </tr>
-            
+
             <tr height="28" style="height:28pt;">
               <td align="center" valign="middle" style="${th}">序号</td>
               <td align="center" valign="middle" style="${th}">规格型号</td>
               <td align="center" valign="middle" style="${th}">单位</td>
               <td align="center" valign="middle" style="${th}">数量</td>
+              <td align="center" valign="middle" style="${th}">批次号</td>
+              <td align="center" valign="middle" style="${th}">裁剪米段</td>
+              <td align="center" valign="middle" style="${th}">盘具</td>
               <td align="center" valign="middle" style="${th}">单价</td>
               <td align="center" valign="middle" style="${th}">税率</td>
               <td align="center" valign="middle" style="${th}">金额</td>
@@ -368,6 +406,9 @@
               <td align="center" valign="middle" style="${td};font-weight:bold;">${totalCount}</td>
               <td align="center" valign="middle" style="${td}"></td>
               <td align="center" valign="middle" style="${td}"></td>
+              <td align="center" valign="middle" style="${td}"></td>
+              <td align="center" valign="middle" style="${td}"></td>
+              <td align="center" valign="middle" style="${td}"></td>
               <td align="center" valign="middle" style="${td};font-weight:bold;">${totalPrice}</td>
               <td align="center" valign="middle" style="${td}"></td>
               <td align="center" valign="middle" style="${td}"></td>
@@ -379,11 +420,11 @@
               <td colspan="2" align="left" valign="middle" style="${labelLeft}">发货人:</td>
             </tr>
             <tr height="28" style="height:28pt;">
-              <td colspan="5" align="left" valign="middle" style="${labelLeft}">地址:${wrapperItem.partbAddress || ''}</td>  
+              <td colspan="5" align="left" valign="middle" style="${labelLeft}">地址:${wrapperItem.partbAddress || ''}</td>
               <td colspan="4" align="left" valign="middle" style="${labelLeft}">客户签字:</td>
             </tr>
             <tr height="28" style="height:28pt;">
-              <td colspan="9" align="left" valign="middle" style="${labelLeft}">备注:${wrapperItem.remark || ''}</td>
+              <td colspan="12" align="left" valign="middle" style="${labelLeft}">备注:${wrapperItem.remark || ''}</td>
             </tr>
           </table>
           <br style="mso-special-character:line-break;page-break-before:always" />`;

+ 38 - 17
src/views/saleManage/saleOrder/components/printTemplateHtBatch.vue

@@ -75,8 +75,11 @@
               <td style="padding: 2px; width: 14%"> 批次号</td>
               <td style="padding: 2px; width: 12%"> 裁剪米段</td>
               <td style="padding: 2px; width: 10%"> 盘具</td>
+              <td style="padding: 2px; width: 8%"> 单价</td>
+              <td style="padding: 2px; width: 7%"> 税率</td>
+              <td style="padding: 2px; width: 9%"> 金额</td>
               <td style="padding: 2px; width: 9%"> 颜色 </td>
-              <td style="padding: 2px; width: 21%"> 备注</td>
+              <td style="padding: 2px; width: 13%"> 备注</td>
             </tr>
 
             <tr align="center" v-for="(item, index) in wrapperItem.productList">
@@ -89,6 +92,9 @@
               <td style="padding: 2px"> {{ item.batchNo }}</td>
               <td style="padding: 2px"> {{ item.cuttingLength }}</td>
               <td style="padding: 2px"> {{ item.reelSpecification }}</td>
+              <td style="padding: 2px"> {{ item.singlePrice }}</td>
+              <td style="padding: 2px"> {{ item.taxRate }}{{ item.taxRate !== undefined && item.taxRate !== null ? '%' : '' }}</td>
+              <td style="padding: 2px"> {{ item.totalPrice }}</td>
               <td style="padding: 2px"> {{ item.colorKey }}</td>
               <td style="padding: 2px"> {{ item.remark }}</td>
             </tr>
@@ -101,6 +107,9 @@
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
               <td style="padding: 2px"> </td>
+              <td style="padding: 2px">{{ getTotalValue(wrapperItem, 'totalPrice', 2) }}</td>
+              <td style="padding: 2px"> </td>
+              <td style="padding: 2px"> </td>
             </tr>
           </tbody>
         </table>
@@ -207,14 +216,17 @@
               outInDetailList = [];
             }
             const productList = (wrapperItem.productList || []).map((item) => {
+              const candidates = outInDetailList.filter(
+                (detail) =>
+                  detail.categoryCode === item.productCode ||
+                  String(detail.categoryId) === String(item.productId)
+              );
               const outDetail =
-                outInDetailList.find(
-                  (d) =>
-                    d.batchNo &&
-                    d.batchNo === item.batchNo &&
-                    (d.categoryCode === item.productCode ||
-                      d.categoryId === item.productId)
-                ) || {};
+                candidates.find(
+                  (detail) =>
+                    (item.batchNo && detail.batchNo === item.batchNo) ||
+                    (item.systemBatchNo && detail.systemBatchNo === item.systemBatchNo)
+                ) || (candidates.length === 1 ? candidates[0] : {});
               return {
                 ...item,
                 batchNo: item.batchNo || outDetail.batchNo || '',
@@ -309,7 +321,7 @@
         const td = `${cellBase}font-family:'宋体';font-size:11pt;`;
         const labelLeft = `${border}padding:4px;mso-number-format:"\\@";vertical-align:middle;text-align:left;mso-horizontal-align:left;font-family:'宋体';font-size:11pt;`;
 
-        const colWidths = [55, 150, 55, 65, 100, 90, 75, 70, 160];
+        const colWidths = [45, 135, 45, 55, 95, 75, 65, 65, 55, 75, 55, 95];
         const colGroup = colWidths
           .map((w) => `<col width="${w}" style="width:${w}pt;" />`)
           .join('');
@@ -335,6 +347,9 @@
                 <td align="center" valign="middle" style="${td}">${item.batchNo || ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.cuttingLength ?? ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.reelSpecification ?? ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.singlePrice ?? ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.taxRate !== undefined && item.taxRate !== null ? item.taxRate + '%' : ''}</td>
+                <td align="center" valign="middle" style="${td}">${item.totalPrice ?? ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.colorKey || ''}</td>
                 <td align="center" valign="middle" style="${td}">${item.remark || ''}</td>
               </tr>`
@@ -346,19 +361,19 @@
             style="border-collapse:collapse;border:1px solid #000;mso-border-alt:solid #000 0.5pt;font-family:'宋体';font-size:11pt;text-align:center;">
             <colgroup>${colGroup}</colgroup>
             <tr height="40" style="height:40pt;">
-              <td colspan="9" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
+              <td colspan="12" align="center" valign="middle" style="${border}padding:6px;text-align:center;font-family:'宋体';font-size:22pt;font-weight:bold;">${title}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}"></td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">门店:${wrapperItem.salesDeptName || ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}"></td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">门店:${wrapperItem.salesDeptName || ''}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}">客户:${wrapperItem.partaName || ''}</td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">单据日期:${wrapperItem.createTime ? wrapperItem.createTime.split(' ')[0] : ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}">客户:${wrapperItem.partaName || ''}</td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">单据日期:${wrapperItem.createTime ? wrapperItem.createTime.split(' ')[0] : ''}</td>
             </tr>
             <tr height="26" style="height:26pt;">
-              <td colspan="6" align="left" valign="middle" style="${labelLeft}">项目名称:${wrapperItem.projectName || ''}</td>
-              <td colspan="3" align="left" valign="middle" style="${labelLeft}">单据编号:${wrapperItem.orderNo || ''}</td>
+              <td colspan="8" align="left" valign="middle" style="${labelLeft}">项目名称:${wrapperItem.projectName || ''}</td>
+              <td colspan="4" align="left" valign="middle" style="${labelLeft}">单据编号:${wrapperItem.orderNo || ''}</td>
             </tr>
 
             <tr height="28" style="height:28pt;">
@@ -369,6 +384,9 @@
               <td align="center" valign="middle" style="${th}">批次号</td>
               <td align="center" valign="middle" style="${th}">裁剪米段</td>
               <td align="center" valign="middle" style="${th}">盘具</td>
+              <td align="center" valign="middle" style="${th}">单价</td>
+              <td align="center" valign="middle" style="${th}">税率</td>
+              <td align="center" valign="middle" style="${th}">金额</td>
               <td align="center" valign="middle" style="${th}">颜色</td>
               <td align="center" valign="middle" style="${th}">备注</td>
             </tr>
@@ -382,6 +400,9 @@
               <td align="center" valign="middle" style="${td}"></td>
               <td align="center" valign="middle" style="${td}"></td>
               <td align="center" valign="middle" style="${td}"></td>
+              <td align="center" valign="middle" style="${td};font-weight:bold;">${totalPrice}</td>
+              <td align="center" valign="middle" style="${td}"></td>
+              <td align="center" valign="middle" style="${td}"></td>
             </tr>
             <tr height="28" style="height:28pt;">
               <td colspan="3" align="left" valign="middle" style="${labelLeft}">业务员:${wrapperItem.salesmanName || ''}</td>
@@ -394,7 +415,7 @@
               <td colspan="4" align="left" valign="middle" style="${labelLeft}">客户签字:</td>
             </tr>
             <tr height="28" style="height:28pt;">
-              <td colspan="9" align="left" valign="middle" style="${labelLeft}">备注:${wrapperItem.remark || ''}</td>
+              <td colspan="12" align="left" valign="middle" style="${labelLeft}">备注:${wrapperItem.remark || ''}</td>
             </tr>
           </table>
           <br style="mso-special-character:line-break;page-break-before:always" />`;