public ServiceResponseData GetExecuteBills() { DrugStoreManagement model = NewObject <DrugStoreManagement>(); DataTable dt = model.GetExecuteBills(); responseData.AddData(dt); return(responseData); }
public ServiceResponseData GetFeeItemDetail() { var feeItemHeadId = requestData.GetData <int>(0);//费用主表Id DrugStoreManagement model = NewObject <DrugStoreManagement>(); DataTable dt = model.GetFeeItemDetail(feeItemHeadId); responseData.AddData(dt); return(responseData); }
public ServiceResponseData GetRefundQueryDetail() { var queryCondition = requestData.GetData <Dictionary <string, string> >(0); DrugStoreManagement model = NewObject <DrugStoreManagement>(); DataTable dt = model.GetRefundDetail(queryCondition); responseData.AddData(dt); return(responseData); }
public ServiceResponseData GetFeeItemHead() { var invoiceNO = requestData.GetData <string>(0); var deptId = requestData.GetData <int>(1); DrugStoreManagement model = NewObject <DrugStoreManagement>(); DataTable dt = model.GetFeeItemHead(invoiceNO, deptId); responseData.AddData(dt); return(responseData); }
public ServiceResponseData QueryPatientInfo() { var code = requestData.GetData <string>(0); //发票号或会员卡号 var execDeptId = requestData.GetData <int>(1); //执行科室Id var distributeFlag = requestData.GetData <int>(2); DrugStoreManagement model = NewObject <DrugStoreManagement>(); DataTable dt = model.QueryPatientInfo(code, execDeptId, distributeFlag); responseData.AddData(dt); return(responseData); }
public ServiceResponseData IsDrugStore() { List <IPD_OrderRecord> records = requestData.GetData <List <IPD_OrderRecord> >(0); List <IPD_OrderRecord> errRecords = new List <IPD_OrderRecord>(); DrugStoreManagement drugStore = NewObject <DrugStoreManagement>(); foreach (IPD_OrderRecord record in records) { if (record.ItemType == 1) { if (drugStore.GetStorage(record.ItemID, record.ExecDeptID) < record.Amount * record.UnitNO) { errRecords.Add(record); } } } responseData.AddData(errRecords); return(responseData); }
/// <summary> /// 药品收费后减虚拟库库存 /// </summary> /// <param name="prescriptions">处方信息</param> /// <param name="isAdd">true加库存false减库存</param> public void MinisStorage(List <Prescription> prescriptions, bool isAdd) { foreach (Prescription presc in prescriptions) { if (Convert.ToInt32(presc.ItemType) == (int)OP_Enum.ItemType.药品) { DrugStoreManagement drugManager = NewObject <DrugStoreManagement>(); //退费减虚拟库存 if (isAdd) { drugManager.UpdateStorage(presc.ItemID, presc.ExecDeptID, presc.Amount); } else { drugManager.UpdateStorage(presc.ItemID, presc.ExecDeptID, presc.Amount * (-1)); } } } }
public ServiceResponseData OPDisp() { List <DS_OPDispHead> dispHead = new List <DS_OPDispHead>(); DataTable dtFeeHead = requestData.GetData <DataTable>(0); int sendEmpID = requestData.GetData <int>(1); string sendEmpName = requestData.GetData <string>(2); int deptId = requestData.GetData <int>(3); string feeHeadIds = "("; foreach (DataRow row in dtFeeHead.Rows) { DS_OPDispHead modelHead = new DS_OPDispHead(); DrugStoreManagement model = NewObject <DrugStoreManagement>(); if (model.HasRefund(row["InvoiceNO"].ToString())) { throw new Exception("本张单据不能发药,存在退费记录,请进行退费操作"); } modelHead.BillNO = 0; modelHead.BusiType = DGConstant.OP_DS_OPDISPENSE; modelHead.RetailFee = Convert.ToDecimal(row["TotalFee"]); modelHead.PatListID = Convert.ToInt32(row["PatListID"]); modelHead.PatName = row["PatName"].ToString(); modelHead.PatSex = row["PatSex"].ToString(); modelHead.Diagnose = row["DiseaseName"].ToString(); modelHead.PatAge = row["Age"].ToString(); modelHead.PresDocID = Convert.ToInt32(row["PresEmpID"]); modelHead.PresDocName = row["PresEmpName"].ToString(); modelHead.PresDeptID = Convert.ToInt32(row["PresDeptID"]); modelHead.PresDeptName = row["PresDeptName"].ToString(); modelHead.DispenserID = sendEmpID; modelHead.DispenserName = sendEmpName; modelHead.PharmacistID = sendEmpID; modelHead.PharmacistName = sendEmpName; modelHead.RefundFlag = 0;//发药0退药1 modelHead.DispTime = System.DateTime.Now; modelHead.FeeNO = row["FeeNo"].ToString(); modelHead.InvoiceNO = row["InvoiceNO"].ToString(); modelHead.ChargeTime = Convert.ToDateTime(row["ChargeDate"]); modelHead.ChargeEmpID = Convert.ToInt32(row["ChargeEmpID"]); modelHead.ChargeEmpName = row["ChargeEmpName"].ToString(); modelHead.FeeItemHeadID = Convert.ToInt32(row["CostHeadID"]); modelHead.RecipeID = Convert.ToInt32(row["FeeItemHeadID"]); modelHead.RecipeType = row["PresType"].ToString(); modelHead.RecipeAmount = Convert.ToInt32(row["PresAmount"]); modelHead.DeptID = deptId; dispHead.Add(modelHead); feeHeadIds += row["FeeItemHeadID"].ToString() + ","; } feeHeadIds = feeHeadIds.Substring(0, feeHeadIds.Length - 1) + ")"; //获取该结算单所有明细记录 List <DS_OPDispDetail> dispDetail = ConvertFeeDetailModel(feeHeadIds, deptId); OPDispBill iProcess = NewObject <OPDispBill>(); DGBillResult rtn = new DGBillResult(); try { oleDb.BeginTransaction(); rtn = iProcess.OPDisp(dispHead, dispDetail, sendEmpID); if (rtn.Result == 0) { oleDb.CommitTransaction(); } else { oleDb.RollbackTransaction(); } responseData.AddData(rtn); } catch (Exception error) { oleDb.RollbackTransaction(); rtn.ErrMsg = error.Message; rtn.Result = 2; responseData.AddData(rtn); } return(responseData); }
/// <summary> /// 处方保存 /// </summary> /// <param name="curPalist">病人对象</param> /// <param name="prescriptions">处方对象</param> /// <param name="feeHeadCount">费用头ID</param> /// <param name="operatorid">操作员ID</param> public void SavePrescription(OP_PatList curPalist, List <Prescription> prescriptions, List <int> feeHeadCount, int operatorid) { try { DrugStoreManagement drugManager = NewObject <DrugStoreManagement>(); DateTime presdate = DateTime.Now; for (int i = 0; i < feeHeadCount.Count; i++) { int groupid = feeHeadCount[i]; List <Prescription> presModifyDetails = prescriptions.Where(p => p.PrescGroupID == groupid && p.SubTotalFlag == 0 && p.ModifyFlag == 1).ToList(); if (presModifyDetails.Count == 0) { continue; } List <Prescription> presDetails = prescriptions.Where(p => p.PrescGroupID == groupid && p.SubTotalFlag == 0).ToList(); if (presDetails.Count > 0) { OP_FeeItemHead feeitemHead = new OP_FeeItemHead(); //OP_FeeItemHead赋值 SetFeeHeadValue(feeitemHead, presDetails[0], curPalist); feeitemHead.ChargeEmpID = operatorid; decimal roundingMoney = 0; feeitemHead.TotalFee = NewObject <PrescMoneyCalculate>().GetPrescriptionTotalMoney(presDetails, out roundingMoney); feeitemHead.RoungingFee = roundingMoney; if (feeitemHead.DocPresHeadID > 0) { feeitemHead.PresDate = presDetails[0].DocPresDate; } else { feeitemHead.PresDate = presdate; } feeitemHead.RegFlag = 0; if (feeitemHead.FeeItemHeadID == 0) { feeitemHead.FeeNo = DateTime.Now.Ticks;// Convert.ToDecimal( DateTime.Now.ToString("yyyyMMddHHmmssffff"));// GetTimeStamp();//生成费用流水号 } if (Convert.ToInt32(presDetails[0].ItemType) == (int)OP_Enum.ItemType.药品) { if (presDetails[0].StatID == 100) { feeitemHead.PresType = "1";//西药处方 } else if (presDetails[0].StatID == 101) { feeitemHead.PresType = "2";//中成药处方 } else if (presDetails[0].StatID == 102) { feeitemHead.PresType = "3";//中草药处方 } } else { feeitemHead.PresType = "0";//非药品处方 } this.BindDb(feeitemHead); feeitemHead.save(); for (int j = 0; j < prescriptions.Count; j++) { if (prescriptions[j].PrescGroupID == groupid && prescriptions[j].SubTotalFlag == 0) { OP_FeeItemDetail feeDetail = new OP_FeeItemDetail(); //OP_FeeItemDetail赋值 SetFeeDetailValue(feeDetail, prescriptions[j], curPalist); if (feeDetail.Amount == 0) { throw new Exception("【" + feeDetail.ItemName + "】数量为零,请输入一个大于零的数"); } if (Convert.ToInt32(feeDetail.ItemType) == (int)ItemType.药品 && prescriptions[j].Selected == 1) { //判断实时库存 decimal storAmount = drugManager.GetStorage(feeDetail.ItemID, feeitemHead.ExecDeptID); if (storAmount < feeDetail.Amount) { throw new Exception("【" + feeDetail.ItemName + "】库存不足,请重新输入"); } } feeDetail.FeeItemHeadID = feeitemHead.FeeItemHeadID; this.BindDb(feeDetail); feeDetail.save(); prescriptions[j].FeeItemHeadID = feeitemHead.FeeItemHeadID; prescriptions[j].PresDetailID = feeDetail.PresDetailID; prescriptions[j].FeeNo = feeitemHead.FeeNo; prescriptions[j].ModifyFlag = 0; } } this.BindDb(curPalist); curPalist.save(); } } } catch (Exception err) { throw new Exception(err.Message); } }