duhe
2023-11-17 853d39e1a33e53f5f080dc72bac1f6207f22bde4
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill.cs
@@ -44,43 +44,48 @@
        public const Int16 HMinQtyCol = 23;
        public const Int16 HBQtyCol = 24;
        public const Int16 HPackQtyCol = 25;
        public const Int16 HDeptIDCol = 26;
        public const Int16 HDeptNumberCol = 27;
        public const Int16 HDeptNameCol = 28;
        public const Int16 HSourceIDCol = 29;
        public const Int16 HSourceNumberCol = 30;
        public const Int16 HSourceNameCol = 31;
        public const Int16 HDateCol = 32;
        public const Int16 HEndDateCol = 33;
        public const Int16 HSupIDCol = 34;
        public const Int16 HSupNumberCol = 35;
        public const Int16 HSupNameCol = 36;
        public const Int16 HCusIDCol = 37;
        public const Int16 HCusNumberCol = 38;
        public const Int16 HCusNameCol = 39;
        public const Int16 HCusTypeCol = 40;
        public const Int16 HSourceInterIDCol = 41;
        public const Int16 HSourceEntryIDCol = 42;
        public const Int16 HSourceBillNoCol = 43;
        public const Int16 HSourceBillTypeCol = 44;
        public const Int16 HInstructIDCol = 45;
        public const Int16 HInstructNoCol = 46;
        public const Int16 HSeOrderBillIDCol = 47;
        public const Int16 HSeOrderBillNoCol = 48;
        public const Int16 HSeOrderSEQCol = 49;
        public const Int16 HWhIDCol = 50;
        public const Int16 HWhNumberCol = 51;
        public const Int16 HWhNameCol = 52;
        public const Int16 HSPIDCol = 53;
        public const Int16 HSPNumberCol = 54;
        public const Int16 HSPNameCol = 55;
        public const Int16 HinitQtyCol = 56;
        public const Int16 HRemarkCol = 57;
        public const Int16 HPinfanBarCodeCol = 58;
        public const Int16 HMTONoCol = 59;
        public const Int16 HShowDateCol = 60;
        public const Int16 HInnerBillNoCol = 61;
        public const Int16 HMakerCol = 62;
        public const Int16 HProduceDateCol = 26;
        public const Int16 HExpiryDateCol = 27;
        public const Int16 HDeptIDCol = 28;
        public const Int16 HDeptNumberCol = 29;
        public const Int16 HDeptNameCol = 30;
        public const Int16 HSourceIDCol = 31;
        public const Int16 HSourceNumberCol = 32;
        public const Int16 HSourceNameCol = 33;
        public const Int16 HDateCol = 34;
        public const Int16 HEndDateCol = 35;
        public const Int16 HSupIDCol = 36;
        public const Int16 HSupNumberCol = 37;
        public const Int16 HSupNameCol = 38;
        public const Int16 HCusIDCol = 39;
        public const Int16 HCusNumberCol = 40;
        public const Int16 HCusNameCol = 41;
        public const Int16 HCusTypeCol = 42;
        public const Int16 HSourceInterIDCol = 43;
        public const Int16 HSourceEntryIDCol = 44;
        public const Int16 HSourceBillNoCol = 45;
        public const Int16 HSourceBillTypeCol = 46;
        public const Int16 HInstructIDCol = 47;
        public const Int16 HInstructNoCol = 48;
        public const Int16 HSeOrderBillIDCol = 49;
        public const Int16 HSeOrderBillNoCol = 50;
        public const Int16 HSeOrderSEQCol = 51;
        public const Int16 HWhIDCol = 52;
        public const Int16 HWhNumberCol = 53;
        public const Int16 HWhNameCol = 54;
        public const Int16 HSPIDCol = 55;
        public const Int16 HSPNumberCol = 56;
        public const Int16 HSPNameCol = 57;
        public const Int16 HinitQtyCol = 58;
        public const Int16 HRemarkCol = 59;
        public const Int16 HPinfanBarCodeCol = 60;
        public const Int16 HMTONoCol = 61;
        public const Int16 HShowDateCol = 62;
        public const Int16 HInnerBillNoCol = 63;
        public const Int16 HMakerCol = 64;
        public const Int16 HISKFPERIODCol = 65;
        public const Int16 HEXPUNITCol = 66;
        public const Int16 HEXPPERIODCol = 67;
        public Int16 HSelectCol = 0;
        public Int16 HSno2Col = 1;
@@ -142,6 +147,11 @@
        public Int16 HInnerBillNo2Col = 57; 
        public Int16 HMaker2Col = 58;
        public Int16 HEntryID2Col = 59;
        public Int16 HProduceDate2Col = 60;
        public Int16 HExpiryDate2Col = 61;
        public Int16 HISKFPERIOD2Col = 62;
        public Int16 HEXPUNIT2Col = 63;
        public Int16 HEXPPERIOD2Col = 64;
        //
        public  string ModName = "85";
        public  string ModCaption = "条码生成";
@@ -626,6 +636,45 @@
                    {
                        sHRemark= sHRemark+DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HRemark"]);
                    }
                    else if(DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HExpiryDateCol].Value) == "")
                    {
                        if (DBUtility.ClsPub.isBool(oDsCheck.Tables[0].Rows[0]["HISKFPERIOD"]))
                        {
                            DateTime HProduceDate;  //生产日期
                            string HEXPUNIT;        //保质期单位
                            int HEXPPERIOD;         //保质期
                            HProduceDate = dtpHDate.Value;
                            HEXPUNIT = DBUtility.ClsPub.isStrNull(oDsCheck.Tables[0].Rows[0]["HEXPUNIT"]);
                            HEXPPERIOD = DBUtility.ClsPub.isInt(oDsCheck.Tables[0].Rows[0]["HEXPPERIOD"]);
                            grdMain.Rows[j].Cells[HISKFPERIODCol].Value = 1;
                            grdMain.Rows[j].Cells[HEXPUNITCol].Value = HEXPUNIT;
                            grdMain.Rows[j].Cells[HEXPPERIODCol].Value = HEXPPERIOD.ToString();
                            grdMain.Rows[j].Cells[HProduceDateCol].Value = HProduceDate.ToShortDateString();
                            if (HEXPUNIT == "Y")
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddYears(HEXPPERIOD).ToShortDateString();
                            }
                            else if (HEXPUNIT == "M")
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddMonths(HEXPPERIOD).ToShortDateString();
                            }
                            else
                            {
                                grdMain.Rows[j].Cells[HExpiryDateCol].Value = HProduceDate.AddDays(HEXPPERIOD).ToShortDateString();
                            }
                        }
                        else
                        {
                            grdMain.Rows[j].Cells[HISKFPERIODCol].Value = 0;
                            grdMain.Rows[j].Cells[HEXPUNITCol].Value = "";
                            grdMain.Rows[j].Cells[HEXPPERIODCol].Value = 0;
                            grdMain.Rows[j].Cells[HProduceDateCol].Value = "";
                            grdMain.Rows[j].Cells[HExpiryDateCol].Value = "";
                        }
                    }
                }
            }
            if(sHRemark!="")
@@ -993,12 +1042,24 @@
                        grdSub.Rows[i].Cells[HInnerBillNo2Col].Value = grdMain.Rows[j].Cells[HInnerBillNoCol].Value;
                        grdSub.Rows[i].Cells[HMaker2Col].Value = grdMain.Rows[j].Cells[HMakerCol].Value;
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value = grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value;
                        grdSub.Rows[i].Cells[HProduceDate2Col].Value = grdMain.Rows[j].Cells[HProduceDateCol].Value;
                        grdSub.Rows[i].Cells[HExpiryDate2Col].Value = grdMain.Rows[j].Cells[HExpiryDateCol].Value;
                        grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value = grdMain.Rows[j].Cells[HISKFPERIODCol].Value;
                        grdSub.Rows[i].Cells[HEXPUNIT2Col].Value = grdMain.Rows[j].Cells[HEXPUNITCol].Value;
                        grdSub.Rows[i].Cells[HEXPPERIOD2Col].Value = grdMain.Rows[j].Cells[HEXPPERIODCol].Value;
                        //网格打勾
                        //是否赠品
                        DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell();
                        oCell.ThreeState = false;
                        oCell.Value = grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value;
                        oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell;
                        //是否启用保质期
                        DataGridViewCheckBoxCell oCell2 = new DataGridViewCheckBoxCell();
                        oCell2.ThreeState = false;
                        oCell2.Value = grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value;
                        oCell2.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                        grdSub.Rows[i].Cells[HISKFPERIOD2Col] = oCell2;
                        k = k + 1;
                        n = n + 1;
                        //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
@@ -1042,6 +1103,11 @@
            string HInnerBillNo = "";
            bool HGiveAwayFlag = false;
            Int64 HEntryID = 0;
            string HProduceDate;
            string HExpiryDate;
            bool HISKFPERIOD = false;
            string HEXPUNIT = "";
            double HEXPPERIOD = 0;
            try
            {
                oCn.BeginTran();
@@ -1087,6 +1153,25 @@
                        HSeOrderSEQ = ClsPub.isLong(grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value);
                        HInnerBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HInnerBillNo2Col].Value);
                        HGiveAwayFlag = ClsPub.isBool(grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value);
                        if (ClsPub.isDate(grdSub.Rows[i].Cells[HProduceDate2Col].Value) < Convert.ToDateTime("1950-01-01"))
                        {
                            HProduceDate = "";
                        }
                        else
                        {
                            HProduceDate = ClsPub.isStrNull(grdSub.Rows[i].Cells[HProduceDate2Col].Value);
                        }
                        if (ClsPub.isDate(grdSub.Rows[i].Cells[HExpiryDate2Col].Value) < Convert.ToDateTime("1950-01-01"))
                        {
                            HExpiryDate = "";
                        }
                        else
                        {
                            HExpiryDate = ClsPub.isStrNull(grdSub.Rows[i].Cells[HExpiryDate2Col].Value);
                        }
                        HISKFPERIOD = ClsPub.isBool(grdSub.Rows[i].Cells[HISKFPERIOD2Col].Value);
                        HEXPUNIT = ClsPub.isStrNull(grdSub.Rows[i].Cells[HEXPUNIT2Col].Value);
                        HEXPPERIOD = ClsPub.isDoule(grdSub.Rows[i].Cells[HEXPPERIOD2Col].Value);
                        oCn.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" +
                                    ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" +
                                    ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " +
@@ -1094,6 +1179,8 @@
                                    ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " +
                                    ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " +
                                    ",HGiveAwayFlag,HSeOrderSEQ,HInitSourceEntryID " +
                                    ",HProduceDate,HExpiryDate " +
                                    ",HISKFPERIOD,HEXPUNIT,HEXPPERIOD " +
                                    ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " +
                                    ") values ("
                                    + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString()
@@ -1101,8 +1188,10 @@
                                    + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HWei + "'"
                                    + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'"
                                    + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'"
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + ""
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString()
                                    + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag) + "," + HSeOrderSEQ.ToString() + "," + HSourceEntryID.ToString()
                                    + ", " + (HProduceDate == "" ? "NULL" : "'" + HProduceDate + "'") + "," + (HExpiryDate == "" ? "NULL" : "'" + HExpiryDate + "'")
                                    + ", " + DBUtility.ClsPub.BoolToString(HISKFPERIOD) + ",'" + HEXPUNIT + "'," + HEXPPERIOD.ToString()
                                    + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')");
@@ -1509,7 +1598,7 @@
            //
            grdMain.RowCount = 0;
            grdSub.RowCount = 0;
            grdMain.ColumnCount = 63;                       //总列数
            grdMain.ColumnCount = 68;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name);
            grdMain.Columns[HSnoCol].HeaderText = "序号";
            grdMain.Columns[HMainIDCol].HeaderText = "源单主ID";
@@ -1566,6 +1655,11 @@
            grdMain.Columns[HShowDateCol].HeaderText = "日期";
            grdMain.Columns[HInnerBillNoCol].HeaderText = "内部采购订单号";
            grdMain.Columns[HMakerCol].HeaderText = "制单人";
            grdMain.Columns[HProduceDateCol].HeaderText = "生产日期";
            grdMain.Columns[HExpiryDateCol].HeaderText = "有效期至";
            grdMain.Columns[HISKFPERIODCol].HeaderText = "是否启用保质期";
            grdMain.Columns[HEXPUNITCol].HeaderText = "保质期单位";
            grdMain.Columns[HEXPPERIODCol].HeaderText = "保质期";
            ////
            //格式化 
            grdMain.Columns[HTagCol].Visible = false;                           //隐藏列
@@ -1613,7 +1707,12 @@
            grdMain.Columns[HSourceIDCol].Visible = false;
            grdMain.Columns[HSourceNumberCol].Visible = false;
            grdMain.Columns[HSourceNameCol].Visible = false;
            //grdMain.Columns[HProduceDateCol].Visible = false;
            //grdMain.Columns[HExpiryDateCol].Visible = false;
            grdMain.Columns[HISKFPERIODCol].Visible = false;
            grdMain.Columns[HEXPUNITCol].Visible = false;
            grdMain.Columns[HEXPPERIODCol].Visible = false;
            //设置可编辑列
            string sAllowCol =  HQtyCol.ToString()+
                                "," + HMinQtyCol.ToString() +
@@ -1643,7 +1742,7 @@
            DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol,oSumGrid);
            //----------------------------
            grdSub.ColumnCount = 60;                       //总列数
            grdSub.ColumnCount = 65;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdSub, this.Name);
            grdSub.Columns[HSelectCol].HeaderText = "选择";
            grdSub.Columns[HTMCol].HeaderText = "条码编号";
@@ -1703,6 +1802,11 @@
            grdSub.Columns[HInnerBillNo2Col].HeaderText = "内部采购订单号";
            grdSub.Columns[HMaker2Col].HeaderText = "制单人";
            grdSub.Columns[HEntryID2Col].HeaderText = "行号";
            grdSub.Columns[HProduceDate2Col].HeaderText = "生产日期";
            grdSub.Columns[HExpiryDate2Col].HeaderText = "有效期至";
            grdSub.Columns[HISKFPERIOD2Col].HeaderText = "是否启用保质期";
            grdSub.Columns[HEXPUNIT2Col].HeaderText = "保质期单位";
            grdSub.Columns[HEXPPERIOD2Col].HeaderText = "保质期";
            //格式化 
            grdSub.Columns[HMaterID2Col].Visible = false;
            grdSub.Columns[HModel2Col].Visible = false;
@@ -1751,11 +1855,18 @@
            for (int i = 0; i < grdSub.Rows.Count; i++)
            {
                //网格打勾
                //是否赠品
                DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell();
                oCell.ThreeState = false;
                oCell.Value = 0;
                oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell;
                //是否启用保质期
                DataGridViewCheckBoxCell oCell2 = new DataGridViewCheckBoxCell();
                oCell2.ThreeState = false;
                oCell2.Value = 0;
                oCell2.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grdSub.Rows[i].Cells[HISKFPERIOD2Col] = oCell2;
            }
            DBUtility.Xt_BaseBillFun.GetGrid(grdMain, this.Name);
@@ -2282,7 +2393,7 @@
                    grdMain.Rows.Add();
                    grdMain.Rows[i].Cells[HTagCol].Value = "*";
                    //得到信息
                    Ds = oCn.RunProcReturn("select * from h_v_IF_POStockInList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POStockInList");
                    Ds = oCn.RunProcReturn("select * from h_v_IF_POStockInBillList_Source where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_POStockInBillList_Source");
                    //写入信息
                    Sub_WriteInForm1(Ds.Tables[0], i);
                }
@@ -2366,7 +2477,7 @@
                    //写入信息
                    Sub_WriteInForm1(Ds.Tables[0], i);
                }
                //生产汇报单
                //工序汇报单
                if (oSelectRow.BillType == "3714")
                {
                    grdMain.Rows.Add();
@@ -2382,7 +2493,7 @@
                    grdMain.Rows.Add();
                    Application.DoEvents();
                    //得到信息
                    Ds = oCn.RunProcReturn("select * from h_v_KF_ICInventoryList_IF where hmaterid=" + oSelectRow.BillMainID + " and hwhid=" + oSelectRow.BillSubID + " and hspid=" + oSelectRow.SPID + " and HAuxPropID=" + oSelectRow.HAuxPropID + " and æ‰¹æ¬¡='" + oSelectRow.BatchNo + "' and è®¡åˆ’跟踪号='" + oSelectRow.BillNo + "'", "h_v_KF_ICInventoryList_IF");
                    Ds = oCn.RunProcReturn("select * from h_v_KF_ICInventoryList_IF where hmaterid=" + oSelectRow.BillMainID + " and hwhid=" + oSelectRow.BillSubID + " and hspid=" + oSelectRow.SPID + " and HAuxPropID=" + oSelectRow.HAuxPropID + " and æ‰¹æ¬¡='" + oSelectRow.BatchNo + "' and è®¡åˆ’跟踪号='" + oSelectRow.BillNo + "' and ç”Ÿäº§æ—¥æœŸ='" + oSelectRow.HProduceDate + "' and æœ‰æ•ˆæœŸè‡³='" + oSelectRow.HExpiryDate + "'", "h_v_KF_ICInventoryList_IF");
                    //写入信息
                    Sub_WriteInForm2(Ds.Tables[0], i);
                }
@@ -2450,6 +2561,11 @@
            {
                grdMain.Rows[i].Cells[HMinQtyCol].Value = oTable.Rows[0]["最小包装数"].ToString();
            }
            grdMain.Rows[i].Cells[HProduceDateCol].Value = oTable.Rows[0]["HProduceDate"].ToString();
            grdMain.Rows[i].Cells[HExpiryDateCol].Value = oTable.Rows[0]["HExpiryDate"].ToString();
            grdMain.Rows[i].Cells[HISKFPERIODCol].Value = oTable.Rows[0]["HISKFPERIOD"].ToString();
            grdMain.Rows[i].Cells[HEXPUNITCol].Value = oTable.Rows[0]["HEXPUNIT"].ToString();
            grdMain.Rows[i].Cells[HEXPPERIODCol].Value = oTable.Rows[0]["HEXPPERIOD"].ToString();
            //--
            //设置可编辑列
            string sAllowCol = HQtyCol.ToString() +
@@ -2500,6 +2616,11 @@
            grdMain.Rows[i].Cells[HUnitNameCol].Value = oTable.Rows[0]["计量单位"].ToString();
            grdMain.Rows[i].Cells[HRemarkCol].Value = oTable.Rows[0]["备注"].ToString();
            grdMain.Rows[i].Cells[HMTONoCol].Value = oTable.Rows[0]["计划跟踪号"].ToString();
            grdMain.Rows[i].Cells[HProduceDateCol].Value = oTable.Rows[0]["生产日期"].ToString();
            grdMain.Rows[i].Cells[HExpiryDateCol].Value = oTable.Rows[0]["有效期至"].ToString();
            grdMain.Rows[i].Cells[HISKFPERIODCol].Value = oTable.Rows[0]["HISKFPERIOD"].ToString();
            grdMain.Rows[i].Cells[HEXPUNITCol].Value = oTable.Rows[0]["HEXPUNIT"].ToString();
            grdMain.Rows[i].Cells[HEXPPERIODCol].Value = oTable.Rows[0]["HEXPPERIOD"].ToString();
            if (cmbHBarCodeType.Text == "仪器外购件条码容器规则")
            {
                grdMain.Rows[i].Cells[HMinQtyCol].Value = ClsPub.isDoule(oTable.Rows[0]["未生成条码数量"]);
@@ -2606,6 +2727,11 @@
            grdMain.Rows[i].Cells[HShowDateCol].Value = dtpHDate.Value.ToShortDateString();
            grdMain.Rows[i].Cells[HRemarkCol].Value = "按库存生成";
            grdMain.Rows[i].Cells[HMTONoCol].Value = oTable.Rows[0]["计划跟踪号"].ToString();
            grdMain.Rows[i].Cells[HProduceDateCol].Value = oTable.Rows[0]["生产日期"].ToString();
            grdMain.Rows[i].Cells[HExpiryDateCol].Value = oTable.Rows[0]["有效期至"].ToString();
            grdMain.Rows[i].Cells[HISKFPERIODCol].Value = oTable.Rows[0]["HISKFPERIOD"].ToString();
            grdMain.Rows[i].Cells[HEXPUNITCol].Value = oTable.Rows[0]["HEXPUNIT"].ToString();
            grdMain.Rows[i].Cells[HEXPPERIODCol].Value = oTable.Rows[0]["HEXPPERIOD"].ToString();
            //--
            //设置可编辑列
            string sAllowCol = HQtyCol.ToString() +