/// <summary> /// 更新或者新增供应商到供应商表 /// </summary> /// <param name="daSupplier">操作供应商表的数据适配器</param> /// <param name="supplierCode">供应商代码</param> /// <param name="supplierName">供应商名称</param> /// <param name="addPerson">当前用户名称</param> private void UpdateToSupplierName( t_material_supplierTableAdapter daSupplier, out string supplierCode, string supplierName, string addPerson ) { //检测供应商名称域供应商代码是否吻合 var tab = daSupplier.GetDataLikeSupplierName(supplierName); //检测是否有查询到数据 if (tab.Rows.Count > 0) { //首行数据 var row = (DataSetMaterialSupplier.t_material_supplierRow)tab.Rows[0]; //设置取得供应商代码 supplierCode = row.supplier_code; //直接返回 return; } //获取最大供应商代码 using (var da = new t_material_supplierTableAdapter()) { //获取已经使用的最大的代码 supplierCode = da.GetMaxCode().ToString(); } if (string.IsNullOrWhiteSpace(supplierCode)) { //设置默认供应商代码 supplierCode = "S0001"; } else { //设置默认供应商代码 supplierCode = string.Format( "{0}{1:0000}", supplierCode.Substring(0, 1), (Math.Round(ydPublicMethod.Val(supplierCode.Substring(1)), 0) + 1) ); } //新增到供应商清单表 if (daSupplier.InsertData( supplierCode, supplierName, addPerson ) <= 0) { throw new Exception("新增到供应商清单表失败!"); } }
public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //当前用户所在部门 string procName = context.Session["proc_name"].ToString(); //检测部门必须为指定部门 if (procName != mustProcName) { throw new Exception(string.Format("当前部门必须为{0}才能获取物料信息!", mustProcName)); } //当前角色id Int16 roleId = Convert.ToInt16(context.Session["role_id"]); //检测是否有权限 if (roleId >= 0 && roleId <= 5) { //允许显示单价 isShowPrice = true; } //当前使用的查询参数类型 var parField = ParameterType.None; //用户传入的参数 string bType = context.Request["btype"]; if (bType == null || bType.Length <= 0) { throw new Exception("未提供单据类型参数btype!"); } bType = bType.ToLower(); BillType billType; if (bType == "in") { billType = BillType.In; } else if (bType == "out") { billType = BillType.Out; } else if (bType == "lose") { billType = BillType.Lose; } else if (bType == "back") { billType = BillType.Back; } else if (bType == "other") { billType = BillType.Other; } else { throw new Exception("未提供正确的单据类型参数btype!"); } string supplierCode = context.Request["scode"]; string supplierName = context.Request["sname"]; string materialCode = context.Request["mcode"]; string materialName = context.Request["mname"]; string materialSize = context.Request["msize"]; string materialUnit = context.Request["munit"]; //检测物料参数 if (supplierCode != null && supplierCode.Length > 0) { //查询字段类型为供应商代码 parField = ParameterType.SupplierCode; //去掉空格 supplierCode = supplierCode.Trim().Replace("*", "%") + "%"; } else if (supplierName != null && supplierName.Length > 0) { //查询字段类型为供应商名称 parField = ParameterType.SupplierName; //设置参数值 supplierName = "%" + supplierName.Trim().Replace("*", "%") + "%"; } else if (materialCode != null && materialCode.Length > 0) { //查询字段类型为供应商名称物料代码 parField = ParameterType.MaterialCode; //设置参数值 materialCode = materialCode.Trim().Replace("*", "%") + "%"; } else if (materialName != null && materialName.Length > 0) { //查询字段类型为物料名称 parField = ParameterType.MaterialName; //设置参数值 materialName = "%" + materialName.Trim().Replace("*", "%") + "%"; } else if (materialSize != null && materialSize.Length > 0) { //查询字段类型为物料规格 parField = ParameterType.MaterialSize; //设置参数值 materialSize = "%" + materialSize.Trim().Replace("*", "%") + "%"; } else if (materialUnit != null && materialUnit.Length > 0) { //查询字段类型为物料单位 parField = ParameterType.MaterialUnit; //设置参数值 materialUnit = "%" + materialUnit.Trim().Replace("*", "%") + "%"; } //当前未使用特定的三种字段类型之一进行查询则不输出值直接退出 if (parField == ParameterType.None) { return; } //待输出到浏览器的数据 string strResult = string.Empty; //检测单据类型 //入仓单 if (billType == BillType.In || billType == BillType.Other) { //在供应商清单记录中查询 if (parField == ParameterType.SupplierCode || parField == ParameterType.SupplierName) { //将查询到的结果保存到泛型变量中 var lSupplier = new List<SupplierLiItem>(); //数据适配器 using (var da = new t_material_supplierTableAdapter()) { //获取数据使用的表 DataSetMaterialSupplier.t_material_supplierDataTable tab; //通过代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过名称查询 else { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //获取单据数据 AddSupplierListItem(tab, ref lSupplier); } //如果在清单中查询到数据 if (lSupplier.Count > 0) { //将泛型变量各项目放入数组 var itms = new SupplierLiItem[lSupplier.Count]; //复制泛型变量的内容到数组 lSupplier.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } else { //在物料清单中查询 //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //在物料结存清单中查询 if (billType == BillType.In) { //数据适配器 using (var da = new t_material_balanceTableAdapter()) { //获取数据使用的表 DataSetMaterialBalance.t_material_balanceDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } } //出仓单 //盘亏单 else if (billType == BillType.Out || billType == BillType.Lose) { //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //在物料结存清单中查询 //数据适配器 using (var da = new t_material_balanceTableAdapter()) { //获取数据使用的表 DataSetMaterialBalance.t_material_balanceDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } //盘盈单 else if (billType == BillType.Back) { //在物料盘亏清单中查询 //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //数据适配器 using (var da = new t_material_lose_contentTableAdapter()) { //获取数据使用的表 DataSetMaterialLose.t_material_lose_contentDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } else { throw new Exception("提供的单据类型错误!"); } //加入ul头尾 strResult = "<ul>\n" + strResult + "</ul>\n"; //写入数据 context.Response.Write(strResult); }