/// <summary>根据采购负责人ID获取其绑定的供应商ID集合 /// </summary> /// <param name="personnelId">采购人负责人ID</param> /// <returns></returns> public IList <CompanyCussentInfo> GetCompanyIds(Guid personnelId) { const string SQL = @" SELECT CC.CompanyId,CompanyName FROM lmShop_CompanyCussent AS CC INNER JOIN ( SELECT DISTINCT CompanyId FROM [dbo].[lmshop_PurchaseSet] WHERE PersonResponsible=@PersonnelId ) AS PS ON CC.CompanyId=PS.CompanyId WHERE CC.CompanyType=1--供应商 AND CC.[State]=1--启用"; IList <CompanyCussentInfo> list = new List <CompanyCussentInfo>(); using (var dr = SqlHelper.ExecuteReader(GlobalConfig.ERP_DB_NAME, true, SQL, new SqlParameter("@PersonnelId", personnelId))) { while (dr.Read()) { var info = new CompanyCussentInfo { CompanyId = SqlRead.GetGuid(dr, "CompanyId"), CompanyName = SqlRead.GetString(dr, "CompanyName") }; list.Add(info); } } return(list); }
protected void Page_Load(object sender, EventArgs e) { CompanyList = GetCompanyList(); //收付款统计增加门店(公司) ADD 2015-03-16 陈重文 var filialeList = CacheCollection.Filiale.GetList(); foreach (var filialeInfo in filialeList) { var info = new CompanyCussentInfo { CompanyId = filialeInfo.ID, CompanyName = filialeInfo.Name }; CompanyList.Add(info); } if (!IsPostBack) { BindCompany(string.Empty); if (StartTime != DateTime.MinValue && StartTime != DateTime.MaxValue) { RDP_StartTime.SelectedDate = StartTime; } else { RDP_StartTime.SelectedDate = DateTime.Now.Date.AddDays(-30); StartTime = DateTime.Now.Date.AddDays(-30); } if (EndTime != DateTime.MinValue && EndTime != DateTime.MinValue.AddDays(1).AddSeconds(-1)) { RDP_EndTime.SelectedDate = EndTime; } else { RDP_EndTime.SelectedDate = DateTime.Now.Date; EndTime = DateTime.Now.Date; } DdlBankAccount.DataSource = BindBankDataBound(); DdlBankAccount.DataBind(); #region 公司绑定 var dics = new Dictionary <Guid, string> { { Guid.Empty, string.Empty } }; var headList = CacheCollection.Filiale.GetHeadList(); foreach (var filialeInfo in headList) { dics.Add(filialeInfo.ID, filialeInfo.Name); } dics.Add(_reckoningElseFilialeid, "ERP"); DdlFiliale.DataSource = dics; DdlFiliale.DataBind(); #endregion } }
/// <summary>获取供应商名称 /// </summary> /// <param name="companyId"></param> /// <returns></returns> protected string GetCompanyName(Guid companyId) { string companyName = "-"; CompanyCussentInfo info = CompanyCussentList.FirstOrDefault(w => w.CompanyId == companyId); if (info != null) { companyName = info.CompanyName; } return(companyName); }
/// <summary> /// 获取供应商名称 /// </summary> /// <param name="companyId"></param> /// <returns></returns> protected string GetCompanyName(Guid companyId) { string companyName = "-"; CompanyCussentInfo info = _companyCussent.GetCompanyCussent(companyId); if (info != null) { companyName = info.CompanyName; } return(companyName); }
// 采购中 protected void IbnPurchasing_Click(object sender, EventArgs eventArgs) { bool isHave = false; var codeManager = new CodeManager(); foreach (GridDataItem dataItem in RG_DebitNote.Items) { var purchasingId = new Guid(dataItem.GetDataKeyValue("PurchasingId").ToString()); var personResponsible = new Guid(dataItem.GetDataKeyValue("PersonResponsible").ToString()); var cbCheck = (CheckBox)dataItem.FindControl("CB_Check"); if (cbCheck.Checked) { using (var ts = new TransactionScope(TransactionScopeOption.Required)) { isHave = true; _debitNoteDao.UpdateDebitNoteStateByPurchasingId(purchasingId, (int)DebitNoteState.Purchasing); //生成采购单 DebitNoteInfo debitNoteInfo = _debitNoteDao.GetDebitNoteInfo(purchasingId) ?? new DebitNoteInfo(); IList <DebitNoteDetailInfo> debitNoteDetailList = _debitNoteDao.GetDebitNoteDetailList(purchasingId); CompanyCussentInfo companyCussentInfo = CompanyCussentList.FirstOrDefault(w => w.CompanyId == debitNoteInfo.CompanyId); //var warehouseInfo = WarehouseManager.Get(debitNoteInfo.WarehouseId); PersonnelInfo personnelInfo = PersonnelList.FirstOrDefault(w => w.PersonnelId == debitNoteInfo.PersonResponsible) ?? new PersonnelInfo(null); PurchasingInfo oldPurchasingInfo = _purchasing.GetPurchasingById(purchasingId); var realName = CurrentSession.Personnel.Get().RealName; var filialeId = string.IsNullOrWhiteSpace(debitNoteInfo.PurchasingNo) || debitNoteInfo.PurchasingNo == "-"?FilialeManager.GetHeadList().First(ent => ent.Name.Contains("可得")).ID : _purchasing.GetPurchasingList(debitNoteInfo.PurchasingNo).FilialeID; var pInfo = new PurchasingInfo { PurchasingID = Guid.NewGuid(), PurchasingNo = codeManager.GetCode(CodeType.PH), CompanyID = debitNoteInfo.CompanyId, CompanyName = companyCussentInfo == null ? "" : companyCussentInfo.CompanyName, FilialeID = filialeId, WarehouseID = debitNoteInfo.WarehouseId, PurchasingState = (int)PurchasingState.Purchasing, PurchasingType = (int)PurchasingType.Custom, StartTime = DateTime.Now, EndTime = DateTime.MaxValue, //Description = "[采购类别:{0}赠品借记单][对应采购单号" + debitNoteInfo.PurchasingNo + "]" + CurrentSession.Personnel.Get().RealName, Description = string.Format("[采购类别:{0},赠品借记单对应采购单号{1};采购人:{2}]", EnumAttribute.GetKeyName(PurchasingType.Custom), debitNoteInfo.PurchasingNo, realName), PmId = personnelInfo.PersonnelId, PmName = personnelInfo.RealName, ArrivalTime = oldPurchasingInfo.ArrivalTime, PersonResponsible = personResponsible, PurchasingFilialeId = filialeId }; IList <PurchasingDetailInfo> purchasingDetailList = new List <PurchasingDetailInfo>(); if (debitNoteDetailList.Count > 0) { List <Guid> goodsIdOrRealGoodsIdList = debitNoteDetailList.Select(w => w.GoodsId).Distinct().ToList(); Dictionary <Guid, GoodsInfo> dicGoods = _goodsCenterSao.GetGoodsBaseListByGoodsIdOrRealGoodsIdList(goodsIdOrRealGoodsIdList); if (dicGoods != null && dicGoods.Count > 0) { foreach (var debitNoteDetailInfo in debitNoteDetailList) { bool hasKey = dicGoods.ContainsKey(debitNoteDetailInfo.GoodsId); if (hasKey) { GoodsInfo goodsBaseInfo = dicGoods.FirstOrDefault(w => w.Key == debitNoteDetailInfo.GoodsId).Value; // 获取商品的60、30、11天销量 var purchasingDetailInfo = _purchasingDetail.GetChildGoodsSale(debitNoteDetailInfo.GoodsId, debitNoteInfo.WarehouseId, DateTime.Now, pInfo.PurchasingFilialeId) ?? new PurchasingDetailInfo(); var durchasingDetailInfo = new PurchasingDetailInfo { PurchasingID = pInfo.PurchasingID, PurchasingGoodsID = Guid.NewGuid(), GoodsID = debitNoteDetailInfo.GoodsId, GoodsName = debitNoteDetailInfo.GoodsName, GoodsCode = goodsBaseInfo.GoodsCode, Specification = debitNoteDetailInfo.Specification, CompanyID = pInfo.CompanyID, Price = debitNoteDetailInfo.Price, PlanQuantity = debitNoteDetailInfo.GivingCount, RealityQuantity = 0, State = 0, Description = "", Units = goodsBaseInfo.Units, PurchasingGoodsType = (int)PurchasingGoodsType.Gift, SixtyDaySales = purchasingDetailInfo.SixtyDaySales, ThirtyDaySales = purchasingDetailInfo.ThirtyDaySales, ElevenDaySales = purchasingDetailInfo.ElevenDaySales == 0 ? 0 : purchasingDetailInfo.ElevenDaySales, // 11 //日均销量(11天) CPrice = debitNoteDetailInfo.Price }; purchasingDetailList.Add(durchasingDetailInfo); } } } } if (purchasingDetailList.Count > 0) { _debitNoteDao.UpdateDebitNoteNewPurchasingIdByPurchasingId(purchasingId, pInfo.PurchasingID); _purchasing.PurchasingInsert(pInfo); _purchasing.PurchasingUpdateIsOut(pInfo.PurchasingID); //报备管理生成采购单操作记录添加 WebControl.AddOperationLog(personnelInfo.PersonnelId, personnelInfo.RealName, pInfo.PurchasingID, pInfo.PurchasingNo, OperationPoint.ReportManage.DebitToAddPurchasingList.GetBusinessInfo(), string.Empty); var purchasingDetailManager = new PurchasingDetailManager(_purchasingDetail, _purchasing); purchasingDetailManager.Save(purchasingDetailList); } ts.Complete(); } } } if (isHave == false) { RAM.Alert("未勾选借记单!"); } else { RAM.ResponseScripts.Add("setTimeout(function(){ refreshGrid(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");"); } }
/// <summary>新架构完成订单创建所需往来账 2015-01-19 陈重文 /// </summary> /// <param name="goodsOrderInfo">订单信息</param> /// <param name="goodsOrderDetailInfoList">订单明细</param> /// <param name="goodsOrderDeliverInfo">订单运费信息</param> /// <param name="errorMsg">错误信息</param> /// <returns></returns> public IEnumerable <ReckoningInfo> NewCreateReckoningInfoList(GoodsOrderInfo goodsOrderInfo, IList <GoodsOrderDetailInfo> goodsOrderDetailInfoList, out GoodsOrderDeliverInfo goodsOrderDeliverInfo, out string errorMsg) { if (goodsOrderInfo.HostingFilialeId == Guid.Empty) { goodsOrderInfo.HostingFilialeId = WMSSao.GetHostingFilialeIdByWarehouseIdGoodsTypes(goodsOrderInfo.DeliverWarehouseId, goodsOrderInfo.SaleFilialeId, goodsOrderDetailInfoList.Select(ent => ent.GoodsType).Distinct()); } //所需添加的往来帐集合 IList <ReckoningInfo> reckoningList = new List <ReckoningInfo>(); goodsOrderDeliverInfo = null; var orderCarriageInfo = _wmsSao.GetOrderNoCarriage(goodsOrderInfo.OrderNo, out errorMsg); if (orderCarriageInfo == null) { return(reckoningList); } var carriage = orderCarriageInfo.Carriage; if (carriage != 0) { goodsOrderDeliverInfo = new GoodsOrderDeliverInfo { OrderId = goodsOrderInfo.OrderId, TotalWeight = orderCarriageInfo.PackageWeight == 0 ? 0 : Convert.ToDouble(orderCarriageInfo.PackageWeight) / 1000, CarriageFee = Convert.ToDouble(orderCarriageInfo.Carriage), ExpressId = goodsOrderInfo.ExpressId, ExpressNo = goodsOrderInfo.ExpressNo, MaxWrongValue = 0, ProvinceName = orderCarriageInfo.Province, CityName = orderCarriageInfo.City }; } #region [检查快递往来单位信息] Guid companyId = Express.Instance.Get(goodsOrderInfo.ExpressId).CompanyId; CompanyCussentInfo expressCompanyInfo = _companyCussent.GetCompanyCussent(companyId); if (expressCompanyInfo == null) { errorMsg = "快递公司的往来对账信息没有建立!"; return(new List <ReckoningInfo>()); } #endregion //获取销售公司名称 string saleFilialeName = FilialeManager.GetName(goodsOrderInfo.SaleFilialeId); string hostingFilialeName = FilialeManager.GetName(goodsOrderInfo.HostingFilialeId); #region [运费往来帐] if (carriage > 0) { #region [销售公司对快递公司应付快递运费帐] //销售公司对快递公司的应付快递运费帐 var saleFilialeToCarriage = new ReckoningInfo { ContructType = ContructType.Insert, ReckoningId = Guid.NewGuid(), TradeCode = _codeManager.GetCode(CodeType.PY), DateCreated = DateTime.Now, ReckoningType = (int)ReckoningType.Defray, State = (int)ReckoningStateType.Currently, IsChecked = (int)CheckType.NotCheck, AuditingState = (int)AuditingState.Yes, LinkTradeCode = goodsOrderInfo.ExpressNo, WarehouseId = goodsOrderInfo.DeliverWarehouseId, FilialeId = goodsOrderInfo.HostingFilialeId, ThirdCompanyID = expressCompanyInfo.CompanyId, Description = string.Format("[完成订单,{0}对快递公司{1}运费应付款]", hostingFilialeName, expressCompanyInfo.CompanyName), AccountReceivable = -carriage, JoinTotalPrice = -carriage, ReckoningCheckType = (int)ReckoningCheckType.Carriage, IsOut = goodsOrderInfo.IsOut, LinkTradeType = (int)ReckoningLinkTradeType.Express, }; reckoningList.Add(saleFilialeToCarriage); #endregion } #endregion #region 销售公司对快递公司的订单代收帐 if (goodsOrderInfo.PayMode == (int)PayMode.COD || goodsOrderInfo.PayMode == (int)PayMode.COM) { #region [销售公司对快递公司的订单代收帐] //销售公司对快递公司的订单代收帐 var saleFilialeToRealTotalPrice = new ReckoningInfo { ContructType = ContructType.Insert, ReckoningId = Guid.NewGuid(), TradeCode = _codeManager.GetCode(CodeType.GT), DateCreated = DateTime.Now, ReckoningType = (int)ReckoningType.Income, State = (int)ReckoningStateType.Currently, IsChecked = (int)CheckType.NotCheck, AuditingState = (int)AuditingState.Yes, LinkTradeCode = goodsOrderInfo.ExpressNo, WarehouseId = goodsOrderInfo.DeliverWarehouseId, FilialeId = goodsOrderInfo.SaleFilialeId, ThirdCompanyID = expressCompanyInfo.CompanyId, Description = string.Format("[完成订单,{0}对快递公司{1}的订单应收货款]", saleFilialeName, expressCompanyInfo.CompanyName), AccountReceivable = WebRudder.ReadInstance.CurrencyValue(goodsOrderInfo.RealTotalPrice), ReckoningCheckType = (int)ReckoningCheckType.Collection, IsOut = goodsOrderInfo.IsOut, LinkTradeType = (int)ReckoningLinkTradeType.GoodsOrder, }; reckoningList.Add(saleFilialeToRealTotalPrice); #endregion } #endregion return(reckoningList); }