/// <summary> /// 按最新价格重新核算出库单明细价格和头表金额 /// </summary> /// <param name="outMaster">出库单表头</param> /// <param name="billOrder">出库单明细列表</param> /// <param name="belongSystem">所属系统(药房系统,药库系统)</param> protected void AuditPrice(YP_OutMaster outMaster, List <YP_OutOrder> billOrder, string belongSystem) { outMaster.RetailFee = 0; outMaster.TradeFee = 0; outMaster.OutFee = 0; foreach (YP_OutOrder order in billOrder) { YP_MakerDic makerDic = BindEntity <YP_MakerDic> .CreateInstanceDAL(oleDb).GetModel(order.MakerDicID); if (makerDic.RetailPrice != order.RetailPrice || makerDic.TradePrice != order.TradePrice) { order.RetailPrice = makerDic.RetailPrice; order.TradePrice = makerDic.TradePrice; if (belongSystem == ConfigManager.YF_SYSTEM) { order.RetailFee = AccountWriter.YF_ComputeTotalFee(order.RetailPrice, order.OutNum, order.UnitNum); order.TradeFee = AccountWriter.YF_ComputeTotalFee(order.TradePrice, order.OutNum, order.UnitNum); } else { order.RetailFee = AccountWriter.YK_ComputeTotalFee(order.RetailPrice, order.OutNum); order.TradeFee = AccountWriter.YK_ComputeTotalFee(order.TradePrice, order.OutNum); } } outMaster.RetailFee += order.RetailFee; outMaster.TradeFee += order.TradeFee; outMaster.OutFee += order.RetailFee; } }
/// <summary> /// 从厂家信息表中获取厂家典记录对象 /// </summary> /// <param name="dtTable"> /// 厂家信息表 /// </param> /// <param name="index"> /// 指定记录行索引 /// </param> /// <returns> /// 厂家典记录对象 /// </returns> private YP_MakerDic GetMakerFromDt(DataTable dtTable, int index) { try { if (dtTable.Rows.Count < index || dtTable.Rows.Count == 0) { return(null); } YP_MakerDic currentMaker = new YP_MakerDic(); ApiFunction.DataTableToObject(dtTable, index, currentMaker); return(currentMaker); } catch (Exception error) { throw error; } }
private void dgrdMaker_CurrentCellChanged(object sender, EventArgs e) { try { int index; if (dgrdMaker.CurrentCell != null) { index = dgrdMaker.CurrentCell.RowIndex; _currentMaker = GetMakerFromDt(_makerDt.DefaultView.ToTable(), index); ShowCurrentMaker(); } } catch (Exception error) { MessageBox.Show(error.Message); } }
private void tsrbtnAdd_Click(object sender, EventArgs e) { if (_currentState == NORMAL) { TextBoxClear(); TextBoxEnable(true); _currentState = ADD; ButtonEnable(); _currentMaker = new YP_MakerDic(); _currentMaker.UnifGettype = "01"; cobUniType.SelectedIndex = 0; _currentMaker.SpecDicID = _currentSpec.SpecDicID; //清空checkbox和currentMaker的值 this.chkOwnPay.Checked = false; this.chkRecipe.Checked = false; this.txtMakerName.Focus(); } }
private void tsrbtnDel_Click(object sender, EventArgs e) { if (_currentMaker == null || dgrdMaker.CurrentCell == null) { MessageBox.Show("没有数据被选择"); return; } if (_currentMaker.Del_Flag == 1) { MessageBox.Show("该药品已被删除"); return; } try { if (_currentState == NORMAL) { int lastRowIndex = dgrdMaker.CurrentCell.RowIndex; DrugBaseDataBll.DeleteDgMaker(_currentMaker); LoadData(); if (_makerDt.Rows.Count > 0) { if (lastRowIndex != 0) { dgrdMaker.CurrentCell = dgrdMaker[dgrdMaker.CurrentCell.ColumnIndex, lastRowIndex - 1]; } else { dgrdMaker.CurrentCell = dgrdMaker[dgrdMaker.CurrentCell.ColumnIndex, 0]; } } else { TextBoxClear(); _currentMaker = null; } MessageBox.Show("删除成功"); } } catch (Exception error) { MessageBox.Show(error.Message); } }
private void FrmDrugMaker_Load(object sender, EventArgs e) { try { LoadData(); if (_makerDt.Rows.Count != 0) { _currentMaker = GetMakerFromDt(_makerDt, 0); ShowCurrentMaker(); } TextBoxEnable(false); _currentState = NORMAL; ButtonEnable(); this.lblDgName.Text = _currentSpec.Name; } catch (Exception error) { MessageBox.Show(error.Message); } }
/// <summary> /// 计算余额 /// </summary> /// <param name="account">台帐信息</param> protected override void ComputeFee(YP_Account account) { IBaseDAL <YP_Account> accountDao = BindEntity <YP_Account> .CreateInstanceDAL(oleDb, HIS.BLL.Tables.YF_ACCOUNT); //库存金额 decimal storeFee = 0; decimal adjLenderFee = 0; decimal adjDebitFee = 0; //判断退药期间是否有调价发生 YP_MakerDic makerDic = new YP_MakerDic(); IBaseDAL <YP_MakerDic> makerDao = BindEntity <YP_MakerDic> .CreateInstanceDAL(oleDb); makerDic = makerDao.GetModel(account.MakerDicID); //计算库存金额 storeFee = AccountWriter.YF_ComputeTotalFee(makerDic.RetailPrice, account.OverNum, account.UnitNum); //如果在发/退药期间调价 if (makerDic.RetailPrice != account.RetailPrice) { //调赢 if (makerDic.RetailPrice > account.RetailPrice) { //账务调整 adjLenderFee = (Convert.ToDecimal(account.LenderNum) / Convert.ToDecimal(account.UnitNum)) * (makerDic.RetailPrice - account.RetailPrice); account.BalanceFee = storeFee - adjLenderFee; //写发/退药台帐 accountDao.Add(account); //写调整台帐 account.AccountType = 3; account.DebitNum = 0; account.DebitFee = 0; account.LenderNum = 0; account.LenderFee = adjLenderFee; account.BalanceFee = storeFee; accountDao.Add(account); } //调亏 else { //账务调整 adjDebitFee = (Convert.ToDecimal(account.LenderNum) / Convert.ToDecimal(account.UnitNum)) * (account.RetailPrice - makerDic.RetailPrice); account.BalanceFee = storeFee + adjDebitFee; //写发/退药台帐 accountDao.Add(account); //写调整台帐 account.AccountType = 3; account.DebitNum = 0; account.DebitFee = adjDebitFee; account.LenderNum = 0; account.LenderFee = 0; account.BalanceFee = storeFee; accountDao.Add(account); } } else { account.BalanceFee = storeFee; accountDao.Add(account); } }