ソースを参照

修改审批流生成问题

阿伏兔 4 年 前
コミット
0a08fdeb81

+ 5 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseGoodsTransferController.java

@@ -184,19 +184,18 @@ public class TWarehouseGoodsTransferController extends BaseController {
         return itWarehouseBillsService.queryRemove(fId);
     }
 
-
     /**
-     *  撤销货转信息
+     * 撤销入库信息
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:revoke')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
-    @GetMapping("/get/{fId}")
+    @GetMapping("/withdrawById/{fId}")
     @RepeatSubmit
-    public AjaxResult revoke(@PathVariable("fId") Long fId) {
-        String  billsType="HQZYRevoke";
+    public AjaxResult withdrawById(@PathVariable("fId") Long fId) {
+        String billsType = "HQZYRevoke";
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId, loginUser, billsType);
     }
 
     /**

+ 2 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java

@@ -160,9 +160,9 @@ public class TWarehouseInStockController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:revoke')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
-    @GetMapping("/get/{fId}")
+    @GetMapping("/withdrawById/{fId}")
     @RepeatSubmit
-    public AjaxResult revoke(@PathVariable("fId") Long fId) {
+    public AjaxResult withdrawById(@PathVariable("fId") Long fId) {
         String billsType = "SJRKRevoke";
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());

+ 15 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseOutStockController.java

@@ -176,6 +176,21 @@ public class TWarehouseOutStockController extends BaseController {
         return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
     }
 
+
+    /**
+     * 撤销入库信息
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:outStock:revoke')")
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/withdrawById/{fId}")
+    @RepeatSubmit
+    public AjaxResult withdrawById(@PathVariable("fId") Long fId) {
+        String billsType = "SJCKRevoke";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId, loginUser, billsType);
+    }
+
     /**
      * 撤销出库库
      */

+ 14 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseStockTransferController.java

@@ -170,6 +170,20 @@ public class TWarehouseStockTransferController extends BaseController {
     }
 
     /**
+     * 撤销入库信息
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:stockTransfer:revoke')")
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/withdrawById/{fId}")
+    @RepeatSubmit
+    public AjaxResult withdrawById(@PathVariable("fId") Long fId) {
+        String billsType = "CKDBRevoke";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId, loginUser, billsType);
+    }
+
+    /**
      * 撤销入库
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:stockTransfer:add')")

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditItemsServiceImpl.java

@@ -106,7 +106,7 @@ public class AuditItemsServiceImpl implements IAuditItemsService {
             } else {
                 auditItem.setAuditStatus("N");
             }
-            if ("T".equals(levels.getIffixAuditUser())) {
+            if ("F".equals(levels.getIffixAuditUser())) {
                 long userId = 0L;
                 boolean reviewer = false;
                 for (Long usId : userIdList) {

+ 32 - 14
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -21,6 +21,8 @@ import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseAgreementMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
+import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsfeesMapper;
+import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsMapper;
 import com.ruoyi.warehouseBusiness.service.impl.TWarehouseAgreementServiceImpl;
 import com.ruoyi.warehouseBusiness.service.impl.TWarehouseBillsServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +63,12 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     private TWarehouseBillsServiceImpl tWarehouseBillsService;
 
     @Autowired
+    private TWarehousebillsfeesMapper tWarehousebillsfeesMapper;
+
+    @Autowired
+    private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
+
+    @Autowired
     private TFeeServiceImpl tFeeServiceImpl;
 
     @Autowired
@@ -230,13 +238,14 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     }
 
     /**
-     *  单据点击查看审批流
+     * 单据点击查看审批流
+     *
      * @param auditItems 条件
      * @return 结果
      */
     @Override
     public AjaxResult projectEndQueryPendingVal(AuditItems auditItems) {
-        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
+        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
             List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
             return AjaxResult.success(mapList);
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
@@ -252,8 +261,9 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     }
 
     /**
-     *  首页点击查看审批流 获取对应数据
-     * @param auditItems  查询条件
+     * 首页点击查看审批流 获取对应数据
+     *
+     * @param auditItems 查询条件
      * @return 结果
      */
     @Override
@@ -262,7 +272,8 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     }
 
     /**
-     *  审批通过
+     * 审批通过
+     *
      * @param auditItems 审核人、单据信息
      * @return 结果
      */
@@ -368,7 +379,8 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     }
 
     /**
-     *  审批驳回
+     * 审批驳回
+     *
      * @param auditItems 审核人、单据信息
      * @return 结果
      */
@@ -455,7 +467,8 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     }
 
     /**
-     *   审批撤销
+     * 审批撤销(我提交的 没人审核)
+     *
      * @param auditItems 审核人、单据信息
      * @return
      */
@@ -463,11 +476,11 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     @Transactional
     public AjaxResult revoke(AuditItems auditItems) {
         long fettle = 0L;
-        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
+        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
             fettle = 2L;
             // 查询仓库状态
-            TWarehouseBills tWarehouseBills= tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
-            if(tWarehouseBills.getfBillstatus().equals("5") || tWarehouseBills.getfBillstatus().equals("6")){
+            TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
+            if (!tWarehouseBills.getfBillstatus().equals(4L)) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 已经过审批");
             }
@@ -478,11 +491,16 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 更新审批状态失败");
             }
+            tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle);
+            if (auditItems.getActId() <= 120) {
+                fettle = 10L;
+            }
+            tWarehousebillsitemsMapper.warehouseItemFollowUpdate(auditItems.getBillId(), fettle);
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
             fettle = 2L;
             // 查询财务状态
-            TFee tFee= tFeeMapper.selectTFeeById(auditItems.getBillId());
-            if(tFee.getfBillstatus().equals("5") || tFee.getfBillstatus().equals("6")){
+            TFee tFee = tFeeMapper.selectTFeeById(auditItems.getBillId());
+            if (!"4".equals(tFee.getfBillstatus())) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 已经过审批");
             }
@@ -496,8 +514,8 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
             fettle = 2L;
             // 查询协议状态
-            TWarehouseAgreement tWarehouseAgreement=tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
-            if(tWarehouseAgreement.getfBillstatus().equals("5") || tWarehouseAgreement.getfBillstatus().equals("6")){
+            TWarehouseAgreement tWarehouseAgreement = tWarehouseAgreementMapper.selectTWarehouseAgreementById(auditItems.getBillId());
+            if (!"4".equals(tWarehouseAgreement.getfBillstatus())) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 已经过审批");
             }

+ 7 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseAgreementServiceImpl.java

@@ -457,15 +457,17 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
         Long dayLength = 0L;
         Long feeId = 0L;
 
-        String remark = null;
+        String remark = "";
         for (TWarehouseAgreementitems tWarehouseAgreementitems : itemList) {
             if (days  < 1) break;
             if (earlySumDays >= tWarehouseAgreementitems.getfEndays()) continue; //将已算账的天数 与 计费规则的 最后一天作比较如果 已算10天 > 规则结束  不算帐
 
             dayLength = tWarehouseAgreementitems.getfEndays() - tWarehouseAgreementitems.getfFromdays() + 1L; //阶梯中的结束-开始日期
-            String information = dayLength + "天X" + tWarehouseAgreementitems.getfPrice() + "元";
+            String information = "";
 
             if (days >= dayLength) {
+                information = (tWarehouseAgreementitems.getfEndays() - tWarehouseAgreementitems.getfFromdays())
+                        + "天X" + tWarehouseAgreementitems.getfPrice() + "元";
                 if (StringUtils.isEmpty(remark)) {
                     remark = information;
                 } else {
@@ -475,6 +477,8 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
                 money = money.add(this.getCalculate(itemNums,tWarehouseAgreementitems.getfPrice(),dayLength));
                 days = days - dayLength;
             } else {
+                long day = days - tWarehouseAgreementitems.getfFromdays();
+                information =  day + "天X" + tWarehouseAgreementitems.getfPrice() + "元";
                 if (StringUtils.isEmpty(remark)) {
                     remark = information;
                 } else {
@@ -482,6 +486,7 @@ public class TWarehouseAgreementServiceImpl implements ITWarehouseAgreementServi
                 }
                 feeId = tWarehouseAgreementitems.getfFeeid();
                 money = money.add(this.getCalculate(itemNums,tWarehouseAgreementitems.getfPrice(),days));
+                break;
             }
         }
         map.put("amt", money);

+ 54 - 15
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -314,13 +314,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     @Transactional
     public int instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, SysUser user) {
         TWhgenleg tWhgenleg = new TWhgenleg();
-        if ("SJRK".equals(warehouseBills.getfBilltype()) || "HQZY".equals(warehouseBills.getfBilltype())) {
+        if ("SJRK".equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
         }
         if ("HQZY".equals(warehouseBills.getfBilltype()) || "CKDB".equals(warehouseBills.getfBilltype())) {
+            tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
             if ("CKDB".equals(warehouseBills.getfBilltype())) {
                 tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
-                tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
             } else {
                 // 客户
                 tWhgenleg.setfCorpid(warehouseBills.getfTocorpid());
@@ -449,7 +449,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     // 添加主表 业务单号
                     wbItem.setfBillno(warehouseBills.getfBillno());
                     if (!warehouseStatus) {
-                        wbItem.setfMblno(warehouseBills.getfMblno());
+//                        wbItem.setfMblno(warehouseBills.getfMblno());
                         wbItem.setfBillstatus(1L);
                     } else {
                         wbItem.setfBillstatus(10L);
@@ -1215,10 +1215,19 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
                 return map;
             }
-            long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
+            long fInventoryDays = 0L;
             long fCorpid = warehouseBills.getfCorpid();
+            String fBilltype = (String) item.get("fBilltype");
+            long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
+            long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
+            // 要计费天数
             long dateDay = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
-            long fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
+            // 累计计费天数
+            if ("KCZZ".equals(fBilltype)) {
+                fInventoryDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
+            } else {
+                fInventoryDays = Long.valueOf(String.valueOf(item.get("fBillingDays")));
+            }
             Long dictLabel = Long.valueOf(String.valueOf(item.get("fBillingway")));
             BigDecimal fQty = acquiredQuantity(item, dictLabel);
             if (fQty.equals(BigDecimal.ZERO)) {
@@ -1231,9 +1240,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到仓储费协议,请确认");
                 return map;
             }
-            String fBilltype = (String) item.get("fBilltype");
+
             String remark = objectMap.get("remark").toString();
-            long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
             feeId = Long.valueOf(String.valueOf(objectMap.get("feeId"))).longValue();
             BigDecimal amt = (BigDecimal) objectMap.get("amt");
             map.put("feeId", feeId);
@@ -1661,6 +1669,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
 
+    /**
+     *  撤销入库
+     * @param fId
+     * @param loginUser
+     * @param billsType
+     * @return
+     */
     @Override
     public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
         // 查询 仓库主表信息、库存明细信息
@@ -1668,7 +1683,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         // 修改主表信息
         tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
         tWarehousebills.setUpdateTime(new Date());
-        tWarehousebills.setfBillstatus(3L); //撤销状态
+        tWarehousebills.setfBillstatus(2L); //撤销状态
+        tWarehousebills.setfItemsStatus(1L); //撤销状态
         tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
         // 查询库存明细从表数据
         TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
@@ -1687,6 +1703,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
                     }
+                    wb.setfBillstatus(10L);
                 } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
                     if (StringUtils.isNotNull(tWhgenle)) { // 非空
                         updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
@@ -1694,25 +1711,27 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("第" + i + "行未查询到库存信息");
                     }
+                    wb.setfBillstatus(10L);
                 } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
-                    Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
-                    Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
+                    Long warehouselocid = wb.getfWarehouselocid();// 原货仓库
+                    Long transferWarehouselocid = wb.getfTransferWarehouselocid(); // 新仓库
                     //  1、新货权方撤销入库
                     // 查询库存总账
-                    tWarehousebills.setfCorpid(fTocorpid);
+                    wb.setfWarehouselocid(transferWarehouselocid);
                     TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
                     if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
                         updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
                     } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
+                        return AjaxResult.error("第" + i + "行撤销数大于库存结余数") ;
                     }
                     //  2、原货权方撤销出库
                     // 查询库存总账
-                    tWarehousebills.setfCorpid(fCorpid);
+                    wb.setfWarehouselocid(warehouselocid);
                     TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
                     updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
-                } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销 HQZYRevoke
+                    wb.setfBillstatus(1L);
+                } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销
                     Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
                     Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
                     //  1、新货权方撤销入库
@@ -1730,8 +1749,27 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     tWarehousebills.setfCorpid(fCorpid);
                     TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
                     updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
+                    wb.setfBillstatus(1L);
                 }
                 i++;
+                wb.setUpdateBy(loginUser.getUser().getUserName());
+                wb.setUpdateTime(new Date());
+                if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("新增库存明细失败");
+                }
+            }
+        }
+        TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
+        warehousebillsfees.setfPid(fId);
+        List<TWarehousebillsfees> billsFees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
+        // 收款明细添加
+        if (billsFees.size() != 0) {
+            for (TWarehousebillsfees wbDr : billsFees) {
+                wbDr.setfBillstatus(1L);
+                wbDr.setUpdateBy(loginUser.getUser().getUserName());
+                wbDr.setUpdateTime(new Date());
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
             }
         }
         return AjaxResult.success();
@@ -1757,7 +1795,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             return AjaxResult.error("未找到入账信息");
         }
         TWarehouseBills tWarehousebills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
-        tWarehousebills.setfItemsStatus(1L);
+        tWarehousebills.setfItemsStatus(2L);
+        tWarehousebills.setfItemsStatus(1L); //撤销状态
         tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
         tEnclosureMapper.deleteByFPid(tWarehousebills.getfId());
         tWarehousebillsfeesMapper.deleteByFPid(tWarehousebills.getfId());

+ 1 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehouseAgreementitemsMapper.xml

@@ -106,7 +106,7 @@
             LEFT JOIN t_warehouse_agreementitems AS items ON agreement.f_id = items.f_pid
         WHERE
             agreement.f_corpid = #{fCorpid}
-            AND agreement.f_goodsid = #{fGoodsid}
+            AND agreement.t_packages = #{fGoodsid}
             AND items.f_feeUnitid = #{feeUnitid}
             AND agreement.f_status = 1
             AND agreement.del_flag = '0'

+ 1 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -349,6 +349,7 @@
             item.f_originalbilldate AS fOriginalbilldate,
             item.f_volumn AS fVolumn,
             item.f_marks AS fMarks,
+            item.f_billing_days AS fBillingDays,
             item.f_qty AS fQty,
             item.f_grossweight AS fGrossweight,
             item.f_netweight AS fNetweight,