public void GetCurrentMaster(int masterId) { if (_currentState == NORMAL) { DataRow[] selectRows = _masterDt.Select("PLANMASTERID=" + masterId); if (selectRows.Length > 0) { DataRow currentRow = selectRows[0]; if (_currentMaster == null) { _currentMaster = new YP_PlanMaster(); } _currentMaster.PlanMasterId = masterId; _currentMaster.RegPeople = Convert.ToInt32(currentRow["REGPEOPLE"]); _currentMaster.RegTime = Convert.ToDateTime(currentRow["REGTIME"]); _currentMaster.RetailFee = Convert.ToDecimal(currentRow["RETAILFEE"]); _currentMaster.TradeFee = Convert.ToDecimal(currentRow["TRADEFEE"]); _currentMaster.RegPeopleName = currentRow["REGPEOPLENAME"].ToString(); _currentMaster.LASTCHANGTIME = Convert.ToDateTime(currentRow["LASTCHANGTIME"]); _orderDt = _billQuery.LoadOrder(_currentMaster); _frmstockplan.RefreshOrder(_orderDt); _frmstockplan.RefreshFee(_currentMaster.RetailFee, _currentMaster.TradeFee); } } }
/// <summary> /// 修改采购计划单 /// </summary> /// <param name="billMaster">采购计划表头</param> /// <param name="listOrder">采购计划明细列表</param> /// <param name="deptId">药剂科室ID</param> public override void UpdateBill(BillMaster billMaster, List <BillOrder> listOrder, long deptId) { try { YP_PlanMaster planMaster = (YP_PlanMaster)billMaster; oleDb.BeginTransaction(); //声明操作对象 IBaseDAL <YP_PlanMaster> masterDao = BindEntity <YP_PlanMaster> .CreateInstanceDAL(oleDb, Tables.YK_PLANMASTER); IBaseDAL <YP_PlanOrder> orderDao = BindEntity <YP_PlanOrder> .CreateInstanceDAL(oleDb, Tables.YK_PLANORDER); planMaster.RetailFee = 0; planMaster.TradeFee = 0; orderDao.Delete(Tables.yk_planorder.PLANMASTERID + oleDb.EuqalTo() + planMaster.PlanMasterId); foreach (YP_PlanOrder planOrder in listOrder) { //计算入库金额 planMaster.RetailFee += planOrder.RetailFee; planMaster.TradeFee += planOrder.TradeFee; planOrder.PlanMasterId = planMaster.PlanMasterId; //依次添加明细记录 orderDao.Add(planOrder); } masterDao.Update(planMaster); oleDb.CommitTransaction(); } catch (Exception error) { oleDb.RollbackTransaction(); throw error; } }
/// <summary> /// 保存采购计划单 /// </summary> /// <param name="billMaster">采购计划表头</param> /// <param name="listOrder">采购计划明细列表</param> /// <param name="deptId">药剂科室ID</param> public override void SaveBill(BillMaster billMaster, List <BillOrder> listOrder, long deptId) { try { YP_PlanMaster planMaster = (YP_PlanMaster)billMaster; IBaseDAL <YP_PlanMaster> masterDao = BindEntity <YP_PlanMaster> .CreateInstanceDAL(oleDb, Tables.YK_PLANMASTER); IBaseDAL <YP_PlanOrder> orderDao = BindEntity <YP_PlanOrder> .CreateInstanceDAL(oleDb, Tables.YK_PLANORDER); planMaster.RegTime = XcDate.ServerDateTime; planMaster.LASTCHANGTIME = XcDate.ServerDateTime; planMaster.TradeFee = 0; planMaster.RetailFee = 0; oleDb.BeginTransaction(); //写头表信息获取ID号 masterDao.Add(planMaster); foreach (YP_PlanOrder planOrder in listOrder) { //计算头表合计金额 planMaster.RetailFee += planOrder.RetailFee; planMaster.TradeFee += planOrder.TradeFee; planOrder.PlanMasterId = planMaster.PlanMasterId; //依次添加明细记录 orderDao.Add(planOrder); } masterDao.Update(planMaster); oleDb.CommitTransaction(); } catch (Exception error) { oleDb.RollbackTransaction(); throw error; } }
/// <summary> /// 加载采购计划单据明细 /// </summary> /// <param name="billMaster">单据头表</param> /// <returns></returns> public override DataTable LoadOrder(BillMaster billMaster) { if (billMaster != null) { YP_PlanMaster master = (YP_PlanMaster)billMaster; if (master.PlanMasterId != -1) { string strWhere = HIS.BLL.Tables.yk_planmaster.PLANMASTERID + oleDb.EuqalTo() + master.PlanMasterId; YP_Dal dal = new YP_Dal(); dal._oleDb = oleDb; return(dal.YK_PlanOrder_GetList(strWhere)); } else { string strWhere = HIS.BLL.Tables.yk_planmaster.PLANMASTERID + oleDb.EuqalTo() + master.PlanMasterId; YP_Dal dal = new YP_Dal(); dal._oleDb = oleDb; DataTable orderDt = dal.YK_PlanOrder_GetList(strWhere); StoreQuery storeQuery = StoreFactory.GetQuery(ConfigManager.YK_SYSTEM); DataTable lowerStoreDrug = storeQuery.GetDrugForStoreLimit("", false, (int)master.DeptId, 0); for (int index = 0; index < lowerStoreDrug.Rows.Count; index++) { DataRow limitRow = lowerStoreDrug.Rows[index]; decimal stockNum = Convert.ToDecimal(limitRow["UPPERLIMIT"]) - Convert.ToDecimal(limitRow["CURRENTNUM"]); if (stockNum > 0) { DataRow newRow = orderDt.NewRow(); newRow["MAKERDICID"] = limitRow["MAKERDICID"]; newRow["CHEMNAME"] = limitRow["CHEMNAME"]; newRow["SPEC"] = limitRow["SPEC"]; newRow["PRODUCTNAME"] = limitRow["PRODUCTNAME"]; newRow["PLANMASTERID"] = 0; newRow["PLANORDERID"] = 0; newRow["RETAILPRICE"] = limitRow["RETAILPRICE"]; newRow["TRADEPRICE"] = limitRow["TRADEPRICE"]; newRow["UNIT"] = limitRow["LEASTUNIT"]; newRow["UNITNAME"] = limitRow["PACKUNITNAME"]; newRow["STOCKNUM"] = stockNum; newRow["RETAILFEE"] = stockNum * Convert.ToDecimal(newRow["RETAILPRICE"]); newRow["TRADEFEE"] = stockNum * Convert.ToDecimal(newRow["TRADEPRICE"]); orderDt.Rows.Add(newRow); } } return(orderDt); } } else { return(null); } }
/// <summary> /// 创建新的采购计划表头 /// </summary> /// <param name="deptId">药剂科室ID</param> /// <param name="userId">用户ID</param> /// <returns>采购计划表头</returns> public override BillMaster BuildNewMaster(long deptId, long userId) { try { YP_PlanMaster planMaster = new YP_PlanMaster(); planMaster.RegPeople = (int)userId; planMaster.RegPeopleName = BaseData.GetUserName((int)userId); planMaster.DeptId = (int)deptId; return(planMaster); } catch (Exception error) { throw error; } }
public void BuildNewBill(long deptId, long userId, bool isBuildByLimit) { _currentMaster = (YP_PlanMaster)_billProcessor.BuildNewMaster(deptId, userId); if (!isBuildByLimit) { _orderDt = _billQuery.LoadOrder((BillMaster)_currentMaster); _frmstockplan.RefreshOrder(_orderDt); _currentOrder = (YP_PlanOrder)_billProcessor.BuildNewoder(deptId, _currentMaster); if (_orderDt != null) { _orderDt.Rows.Clear(); } } else { _currentMaster.PlanMasterId = -1; _orderDt = _billQuery.LoadOrder((BillMaster)_currentMaster); _currentMaster.PlanMasterId = 0; _frmstockplan.RefreshOrder(_orderDt); _currentOrder = (YP_PlanOrder)_billProcessor.BuildNewoder(deptId, _currentMaster); } _frmstockplan.ClearAll(); }
/// <summary> /// 删除指定采购计划单 /// </summary> /// <param name="billMaster">采购计划表头</param> public override void DelBill(BillMaster billMaster) { try { YP_PlanMaster planMaster = (YP_PlanMaster)billMaster; oleDb.BeginTransaction(); int deleteID = planMaster.PlanMasterId; IBaseDAL <YP_PlanMaster> masterDao = BindEntity <YP_PlanMaster> .CreateInstanceDAL(oleDb, BLL.Tables.YK_PLANMASTER); //删除头表 masterDao.Delete(deleteID); IBaseDAL <YP_PlanOrder> orderDao = BindEntity <YP_PlanOrder> .CreateInstanceDAL(oleDb, BLL.Tables.YK_PLANORDER); //删除明细 orderDao.Delete(Tables.yk_planorder.PLANMASTERID + oleDb.EuqalTo() + deleteID.ToString()); oleDb.CommitTransaction(); } catch (Exception error) { oleDb.RollbackTransaction(); throw error; } }