/// <summary> /// 明细参数设置 /// </summary> /// <param name="comm"></param> /// <param name="model"></param> private static void EditInPurchaseDetailInfo(SqlCommand comm, StorageInPurchaseDetailModel model) { //@InNo,@SortNo,@FromLineNo,@ProductID,@ProductCount,@UnitPrice,@StorageID,@Remark,@ModifiedDate,@ModifiedUserID,@CompanyCD comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD ", model.CompanyCD));//公司代码 comm.Parameters.Add(SqlHelper.GetParameterFromString("@InNo ", model.InNo));//入库单编号 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ProductID ", model.ProductID));//物品ID comm.Parameters.Add(SqlHelper.GetParameterFromString("@StorageID ", model.StorageID));//仓库ID comm.Parameters.Add(SqlHelper.GetParameterFromString("@UnitPrice ", model.UnitPrice));//入库单价 comm.Parameters.Add(SqlHelper.GetParameterFromString("@TotalPrice ", model.TotalPrice));//入库单价 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ProductCount ", model.ProductCount));//入库数量 comm.Parameters.Add(SqlHelper.GetParameterFromString("@Remark ", model.Remark));//备注 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedDate ", model.ModifiedDate));//最后更新日期 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedUserID ", model.ModifiedUserID));//最后更新用户ID(对应操作用户表中的UserID) comm.Parameters.Add(SqlHelper.GetParameterFromString("@FromLineNo ", model.FromLineNo));// comm.Parameters.Add(SqlHelper.GetParameterFromString("@SortNo ", model.SortNo));// comm.Parameters.Add(SqlHelper.GetParameterFromString("@UsedUnitID ", model.UsedUnitID)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@UsedUnitCount ", model.UsedUnitCount)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@UsedPrice ", model.UsedPrice)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ExRate ", model.ExRate)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@BatchNo ", model.BatchNo)); }
public static bool ConfirmBill(StorageInPurchaseModel model, out string Msg) { //判断源单是无来源还是有来源,无来源则不需要更新在途量 string sqlFromType = "select a.FromType,a.ProviderID from officedba.PurchaseArrive a" + " inner join officedba.StorageInPurchase b on b.FromBillID=a.ID and b.ID=" + model.ID; DataTable dtF = SqlHelper.ExecuteSql(sqlFromType); //string FromBillFromType = SqlHelper.ExecuteScalar(sqlFromType, null).ToString();//得到的是“0”或“1” string FromBillFromType = dtF.Rows[0]["FromType"].ToString(); ArrayList lstConfirm = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.AppendLine(" UPDATE officedba.StorageInPurchase SET"); sql.AppendLine(" Confirmor = @Confirmor,"); sql.AppendLine(" confirmDate = getdate(),"); sql.AppendLine(" BillStatus = 2,"); sql.AppendLine(" ModifiedUserID = @ModifiedUserID,"); sql.AppendLine(" ModifiedDate = getdate()"); sql.AppendLine(" Where CompanyCD=@CompanyCD and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.CommandText = sql.ToString(); comm.Parameters.Add(SqlHelper.GetParameterFromString("@Confirmor", model.Confirmor)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedUserID", model.ModifiedUserID)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID)); lstConfirm.Add(comm); List<StorageInPurchaseDetailModel> modelList = new List<StorageInPurchaseDetailModel>(); string sqlSele = "select a.CompanyCD,a.ProductID,a.StorageID,a.BatchNo,a.InNo BillNo,a.UnitPrice,c.EnterDate HappenDate," + "a.ProductCount,a.Remark,a.FromLineNo,b.StorageID as DefaultStorageID,a.UsedUnitCount " + " from officedba.StorageInPurchaseDetail a" + " left join officedba.ProductInfo b on b.ID=a.ProductID" + " left join officedba.StorageInPurchase c on c.InNo = a.InNo and a.CompanyCD = c.CompanyCD " + " where a.CompanyCD='" + model.CompanyCD + "' and a.InNo=(select InNo from officedba.StorageInPurchase where ID=" + model.ID + ")"; //string sqlSele = "select ProductID,StorageID,ProductCount,FromLineNo from officedba.StorageInPurchaseDetail where CompanyCD='" + model.CompanyCD + "' and InNo=(select InNo from officedba.StorageInPurchase where ID=" + model.ID + ")"; DataTable dt = SqlHelper.ExecuteSql(sqlSele); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { StorageInPurchaseDetailModel modelDetail = new StorageInPurchaseDetailModel(); StorageAccountModel StorageAccountM = new StorageAccountModel(); if (dt.Rows[i]["ProductID"].ToString() != "") { modelDetail.ProductID = dt.Rows[i]["ProductID"].ToString(); StorageAccountM.ProductID = Convert.ToInt32(dt.Rows[i]["ProductID"].ToString()); } if (dt.Rows[i]["StorageID"].ToString() != "") { modelDetail.StorageID = dt.Rows[i]["StorageID"].ToString(); StorageAccountM.StorageID = Convert.ToInt32(dt.Rows[i]["StorageID"].ToString()); } if (dt.Rows[i]["ProductCount"].ToString() != "") { modelDetail.ProductCount = dt.Rows[i]["ProductCount"].ToString(); StorageAccountM.ProductCount = Convert.ToDecimal(dt.Rows[i]["ProductCount"].ToString()); StorageAccountM.HappenCount = Convert.ToDecimal(dt.Rows[i]["ProductCount"].ToString()); } if (dt.Rows[i]["UsedUnitCount"].ToString() != "") { modelDetail.UsedUnitCount = dt.Rows[i]["UsedUnitCount"].ToString(); } if (dt.Rows[i]["FromLineNo"].ToString() != "") { modelDetail.FromLineNo = dt.Rows[i]["FromLineNo"].ToString(); } if (dt.Rows[i]["DefaultStorageID"].ToString() != "") { modelDetail.DefaultStorageID = dt.Rows[i]["DefaultStorageID"].ToString(); } StorageAccountM.CompanyCD = dt.Rows[i]["CompanyCD"].ToString(); StorageAccountM.BillType = 3; if (dt.Rows[i]["BatchNo"].ToString() != "") { modelDetail.BatchNo = dt.Rows[i]["BatchNo"].ToString(); StorageAccountM.BatchNo = dt.Rows[i]["BatchNo"].ToString(); } modelList.Add(modelDetail); StorageAccountM.BillNo = dt.Rows[i]["BillNo"].ToString(); StorageAccountM.Price = Convert.ToDecimal(dt.Rows[i]["UnitPrice"].ToString()); StorageAccountM.HappenDate = Convert.ToDateTime(dt.Rows[i]["HappenDate"].ToString()); StorageAccountM.Creator = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID; StorageAccountM.PageUrl = "../Office/StorageManager/StorageInPurchaseAdd.aspx"; StorageAccountM.ReMark = dt.Rows[i]["Remark"].ToString(); SqlCommand commSA = new SqlCommand(); commSA = StorageAccountDBHelper.InsertStorageAccountCommand(StorageAccountM, "0"); lstConfirm.Add(commSA); } } if (modelList != null && modelList.Count > 0)//明细不为空的时候 { StringBuilder strAddSBDetail = new StringBuilder(); strAddSBDetail.AppendLine("update officedba.PurchaseArriveDetail set "); strAddSBDetail.AppendLine(" InCount =ISNULL(InCount,0)+@ReBackNum where "); strAddSBDetail.AppendLine(" ArriveNo=(select ArriveNo from officedba.PurchaseArrive where ID=(select FromBillID from officedba.StorageInPurchase where ID=" + model.ID + "))"); strAddSBDetail.AppendLine(" and SortNo=@SortNo"); for (int i = 0; i < modelList.Count; i++) { SqlCommand commReSB = new SqlCommand(); commReSB.CommandText = strAddSBDetail.ToString(); if (modelList[i].UsedUnitCount != null) { commReSB.Parameters.Add(SqlHelper.GetParameterFromString("@ReBackNum", modelList[i].UsedUnitCount));//回写增加的数量 } else { commReSB.Parameters.Add(SqlHelper.GetParameterFromString("@ReBackNum", modelList[i].ProductCount));//回写增加的数量 } commReSB.Parameters.Add(SqlHelper.GetParameterFromString("@SortNo", modelList[i].FromLineNo)); lstConfirm.Add(commReSB);//循环加入数组("已入库数量"增加) SqlCommand commPD = new SqlCommand(); if (Exists(modelList[i].BatchNo, modelList[i].StorageID, modelList[i].ProductID, model.CompanyCD)) { commPD = updateStorageProduct(modelList[i].BatchNo, modelList[i].ProductID, modelList[i].StorageID, modelList[i].ProductCount, model, true); } else { commPD = InsertStorageProduct(modelList[i].BatchNo, modelList[i].ProductID, modelList[i].StorageID, modelList[i].ProductCount, model.CompanyCD); } lstConfirm.Add(commPD); if (FromBillFromType == "1") { SqlCommand commRoad = new SqlCommand(); commRoad = updateRoadCount(modelList[i].ProductID, modelList[i].DefaultStorageID, modelList[i].ProductCount, model); lstConfirm.Add(commRoad); } } } bool IsOK = true; IsOK = SqlHelper.ExecuteTransWithArrayList(lstConfirm); string retstrval = ""; if (IsOK) { string IsVoucher = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsVoucher ? "1" : "0"; string IsApply = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsApply ? "1" : "0"; decimal TotalPri = Convert.ToDecimal(model.TotalPrice);//价格合计 DataTable dtCurrtype = XBase.Data.Office.FinanceManager.CurrTypeSettingDBHelper.GetMasterCurrency(((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD); string CurrencyInfo = dtCurrtype.Rows[0]["ID"].ToString(); string ExchangeRate = dtCurrtype.Rows[0]["ExchangeRate"].ToString(); int ProviderID = 0; if (dtF.Rows[0]["ProviderID"].ToString() != "") { ProviderID = Convert.ToInt32(dtF.Rows[0]["ProviderID"].ToString()); } bool IsTure = XBase.Data.Office.FinanceManager.AutoVoucherDBHelper.AutoVoucherInsert(5, ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD, IsVoucher, IsApply, TotalPri, "officedba.StorageInPurchase," + model.ID, CurrencyInfo + "," + ExchangeRate, ProviderID, out retstrval); if (IsTure) retstrval = "确认成功!"; else retstrval = "确认成功!" + retstrval; Msg = retstrval; } else { Msg = "确认失败!"; } return IsOK; }