llj
15 小时以前 f90bc93b0b72f02b7931784ac0f05d92c428cd73
小卫条码规则变更
1个文件已修改
64 ■■■■■ 已修改文件
WebAPI/Controllers/仓存管理/条码生成/Sc_BarCodeController.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -3389,6 +3389,7 @@
                string HSelectBarCodeType = "托盘条码";
                string CampanyName = "小卫";
                string UserName = sArray[2].ToString();//用户
                string barCode_middle = sArray[3].ToString();//中箱码
                ClsPub.CurUserName = UserName;
                //获取内码
@@ -3418,7 +3419,7 @@
                else
                {
                    //生成条码
                    SaveBarCode_xiaowei(msg2, HSelectBarCodeType, CampanyName, HSourceBillTypeName);
                    SaveBarCode_xiaowei(msg2, HSelectBarCodeType, CampanyName, HSourceBillTypeName, barCode_middle);
                }
            }
            catch (Exception e)
@@ -3433,7 +3434,7 @@
        #endregion        
        #region[条码生成方法_xiaowei]
        private object SaveBarCode_xiaowei(string msg2, string HSelectBarCodeType, string CampanyName, string HSourceBillTypeName)
        private object SaveBarCode_xiaowei(string msg2, string HSelectBarCodeType, string CampanyName, string HSourceBillTypeName,string barCode_middle)
        {
            DateTime sDate = DateTime.Now;                      //日期
            string HSourceBillType_Temp = "";                   //源单类型
@@ -3474,50 +3475,27 @@
                            //条码拼接所需字段
                            string HMaterialName = DBUtility.ClsPub.isStrNull(ordrlist.HMaterName);
                            string HSupNumber = DBUtility.ClsPub.isStrNull(ordrlist.HSupNumber).Replace(".", "");             //供应商代码(去掉分隔符)
                            int lastDigit = int.Parse(DateTime.Today.Year.ToString().Last().ToString());
                            int currentMonth = DateTime.Now.Month;
                            char[] monthToLetter = {
                            'N', 'P', 'Q', 'R', 'S', 'T',
                            'U', 'V', 'W', 'X', 'Y', 'Z'
                                                };
                            char productionMonth = monthToLetter[currentMonth - 1];
                            char productionDay = DateTime.Today.Month <= 9
                            ? (char)(DateTime.Today.Month + '0')
                            : (char)('A' + DateTime.Today.Month - 10);
                            if (HMaterialName.Trim() == "")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "物料不能为空,不能生成条码!";
                                return objJsonResult;
                            }
                            Ds2 = oCN.RunProcReturn("select top 1 HCusRelationNumber from Gy_Material m with(nolock) left join Gy_MateNumRelation_Sec b with(nolock) on m.HMASTERID = b.HMaterID where m.HItemID = " + ordrlist.HMaterID, "Gy_MateNumRelation_Sec");
                            string HSKU = "";//商品SKU
                            if (Ds2.Tables[0].Rows.Count > 0)
                            {
                                HSKU = Ds2.Tables[0].Rows[0]["HCusRelationNumber"].ToString();
                            }
                            else
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "没有匹配到对应的商品SKU!";
                                return objJsonResult;
                            }
                            DataSet dds= oCN.RunProcReturn("exec h_p_rule_BarCodePack_xiaowei "+ ordrlist.HMaterID+",'"+ barCode_middle+"'", "h_p_rule_BarCodePack_xiaowei");
                            //todo
                            if (dds.Tables[0].Rows[0]["HBack"]=="1")
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "生成条码失败!" + dds.Tables[0].Rows[0]["HRemark"].ToString();
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            else if(dds == null || dds.Tables[0].Rows.Count <= 0)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "生成条码失败,未找到条码!" ;
                                objJsonResult.data = null;
                                return objJsonResult;
                            }
                            //条码前缀 = p+商品SKU+生产年份+生产月份+6位流水号+生产工厂代码
                            sTMNumber = "P" + HSKU + lastDigit+ productionMonth;
                            //根据条码前缀获取最大流水号
                            Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");
                            LSH = String.Format("{0:D" + HLen + "}", ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1);
                            //拼接条码
                            HBarCode_Temp = sTMNumber + "A" + LSH + "AHW";
                            HBarCode_Temp = dds.Tables[0].Rows[0]["HRemark"].ToString();
                            if (HSumQty - HMinQty > 0)
                            {