/// <summary> /// ͨ计算西药整散比金额 /// </summary> /// <param name="itemId"></param> /// <returns></returns> public static double GetYpTotalityPriceDiag(BsItem bsItem) { try { double result = bsItem.PriceDiag; var tempUnitRatio = new List <BsUnitRatio>(); if (!AppSettings.IsMainLocation) { tempUnitRatio = Orm.Config.Service.DBClientService.GetList <BsUnitRatio>("ItemId = @0 and HospitalId =@1 ", bsItem.GUID, Config.UserProfiles.HospitalID); var tempUnitRatioGuid = tempUnitRatio.First().GUID; if (tempUnitRatio.First() != null && !string.IsNullOrWhiteSpace(tempUnitRatioGuid)) { var drugRatio = tempUnitRatio.First().DrugRatio; drugRatio = drugRatio == 0 ? 1 : drugRatio; var actualResult = Math.Round(bsItem.PriceDiag / drugRatio, 4); result = actualResult; } } return(result); } catch (Exception) { return(bsItem.PriceDiag); } }
public static string GetItemPosInfoUpdate(string code, string feemzId) { string ItemInfo, content; code = GetInterfaceData(code, feemzId, out ItemInfo, out content); if (content.Contains("[") & content.Contains("]")) { List <ApiAddItemInfo> PharmacyInfoListlist = TransformationJsonData(content); if (PharmacyInfoListlist.Count == 0) { ItemInfo = "没有找到该药品信息,同步操作取消"; return(ItemInfo); } else { //单位 string _unitId = AddUnit(PharmacyInfoListlist); //厂商 string _bsManufacturerId = AddManufacturer(PharmacyInfoListlist); //基础信息 BsItem bsItem = null; if (feemzId != "5602") { bsItem = Config.Service.DBClientService.Get <BsItem>("Code=@0 and HospitalId=@1", PharmacyInfoListlist[0].goods_code, (int)EnumMainLocation.总店); } else { bsItem = Config.Service.DBClientService.Get <BsItem>("Code=@0 and HospitalId=@1", "SX" + PharmacyInfoListlist[0].goods_code, (int)EnumMainLocation.总店); } if (bsItem == null || bsItem.GUID == null) { string count; AddItem(feemzId, out ItemInfo, PharmacyInfoListlist, _unitId, _bsManufacturerId, out count); if (!string.IsNullOrEmpty(count)) { ItemInfo = "同步成功," + PharmacyInfoListlist[0].goods_code + "," + PharmacyInfoListlist[0].goods_name; return(ItemInfo); } } else { ItemInfo = "已存在相同项目,同步操作取消," + PharmacyInfoListlist[0].goods_code + "," + PharmacyInfoListlist[0].goods_name; return(ItemInfo); } } return(ItemInfo); } else { ItemInfo = "接口返回信息错误"; return(ItemInfo); } }
private static void AddItem(string feemzId, out string ItemInfo, List <ApiAddItemInfo> PharmacyInfoListlist, string _unitId, string _bsManufacturerId, out string count) { ItemInfo = PharmacyInfoListlist[0].goods_code + "" + PharmacyInfoListlist[0].goods_name; BsItem model = new BsItem { IsOnlyForSys = true, Code = PharmacyInfoListlist[0].goods_code, WbCode = Utilities.PyWbHelper.SixBitWBCode(PharmacyInfoListlist[0].goods_name), PyCode = Utilities.PyWbHelper.SixBitPYCode(PharmacyInfoListlist[0].goods_name), Name = PharmacyInfoListlist[0].goods_name, PriceDiag = PharmacyInfoListlist[0].goods_price, PriceIn = PharmacyInfoListlist[0].goods_price, UnitDiagId = _unitId, UnitDiag = PharmacyInfoListlist[0].unit_name, Dosage = 1, FeeMzId = "cc610dde7cd84afc8611f8892257abd8",//待处理 IsRpForbid = false, IsActive = true, InsertTime = Service.DBClientService.GetServerTime(), ManuId = _bsManufacturerId, Spec = PharmacyInfoListlist[0].goods_spec, IsDiscounts = false, HospitalId = UserProfiles.HospitalID, GroupMainId = null, //药品分类 FeeZyId = null, OperId = "663C86A0855E6986E050AA0A313010F4", //UserProfilesService.UserID, Memo = DateTime.Now.ToString() + "【新增】字典维护导入" }; if (PharmacyInfoListlist[0].unit_name == "十克") { model.FeeMzIdCode = 5400;//中药 model.PharmacyRatio = 10; } if (feemzId == "5602") { model.FeeMzId = "";//生鲜 model.Code = "SX" + PharmacyInfoListlist[0].goods_code; } count = Config.Service.DBClientService.Add(model); }
public static string AddBigOrdersInterface(PMSaveBalanceInfo balanceInfo, int LsRepType) { string shop_code = string.Empty; string jsonString = string.Empty; if (balanceInfo.OuInvoice != null && balanceInfo.OuInvoiceDtlList != null) { foreach (var item in balanceInfo.ouRecipeList) { if (LsRepType == 17) { if (item.LsRepType == 17) { shop_code = item.DeptNo; } } else { if (item.LsRepType != 17) { shop_code = item.DeptNo; } } } if (shop_code == string.Empty) { return("NONE"); } List <data_detail> detailList = new List <data_detail>(); double ypprice = 0; double sxprice = 0; foreach (OuInvoiceDtl ouInvoiceDtl in balanceInfo.OuInvoiceDtlList) { if (LsRepType == (int)EnumRecipeType.生鲜)//生鲜项目 { if (ouInvoiceDtl.FeeId == Config.DBClientBaseInRedis.GetList <BsMzFeety>("Name=@0", "生鲜").FirstOrDefault().GUID) { data_detail data_detail = new data_detail { goods_code = Config.DBClientBaseInRedis.GetModelByGuid <BsItem>(ouInvoiceDtl.ItemId).Code.Substring(2), qty = ouInvoiceDtl.Totality, price = ouInvoiceDtl.Price, subtotal = ouInvoiceDtl.Amount, memo = ouInvoiceDtl.Memo }; sxprice += data_detail.price * data_detail.qty; detailList.Add(data_detail); } } if (LsRepType == (int)EnumRecipeType.西药) { if (ouInvoiceDtl.FeeId == Config.DBClientBaseInRedis.GetList <BsMzFeety>("Name=@0", "西药/中成药").FirstOrDefault().GUID) { data_detail data_detail = new data_detail { goods_code = Config.DBClientBaseInRedis.GetModelByGuid <BsItem>(ouInvoiceDtl.ItemId).Code, qty = ouInvoiceDtl.Totality, price = ouInvoiceDtl.Price, subtotal = ouInvoiceDtl.Amount, memo = ouInvoiceDtl.Memo }; ypprice += data_detail.price * data_detail.qty; detailList.Add(data_detail); } if (ouInvoiceDtl.FeeId == Config.DBClientBaseInRedis.GetList <BsMzFeety>("Name=@0", "中药").FirstOrDefault().GUID) { BsItem bsItems = Config.DBClientBaseInRedis.GetModelByGuid <BsItem>(ouInvoiceDtl.ItemId); //Orm.Config.Common.UtilsLocCache.GetCache<BsItem>(t => t.ID == ouInvoiceDtl.ItemId && t.LocationId== UserProfiles.LocationID); data_detail data_detail = new data_detail { goods_code = bsItems.Code, qty = ouInvoiceDtl.Totality / (bsItems.PharmacyRatio == 0 ? 10 : bsItems.PharmacyRatio), price = Math.Round(ouInvoiceDtl.Price * (bsItems.PharmacyRatio == 0 ? 10 : bsItems.PharmacyRatio), 2), subtotal = Math.Round(ouInvoiceDtl.Amount, 2), memo = ouInvoiceDtl.Memo }; ypprice += data_detail.price * data_detail.qty; detailList.Add(data_detail); } } } if (detailList.Count == 0) { return("NONE"); } string strPayWay = string.Empty; if (balanceInfo.OuInvoicePayList != null && balanceInfo.OuInvoicePayList.Count > 0) { for (int i = 0; i < balanceInfo.OuInvoicePayList.Count; i++) { if (i == 0) { strPayWay = strPayWay + string.Format("{0}", balanceInfo.OuInvoicePayList[i].PayWayName); } else { strPayWay = strPayWay + string.Format("/{0}", balanceInfo.OuInvoicePayList[i].PayWayName); } } } //配送相关信息 string address = string.Empty; string deliverytimebymember = string.Empty; string mobile_phone = string.Empty; string consignee = string.Empty; if (balanceInfo.ouRecipeList != null && balanceInfo.ouRecipeList.Count > 0) { if (balanceInfo.CurrentPatient.IsTakeMedicine > 0) { deliverytimebymember = balanceInfo.CurrentPatient.DistributionPeriod; mobile_phone = balanceInfo.CurrentPatient.Mobile; consignee = balanceInfo.CurrentPatient.PatientName; address = balanceInfo.CurrentPatient.DistributionAddress; } else { mobile_phone = balanceInfo.CurrentPatient.Mobile; consignee = balanceInfo.CurrentPatient.PatientName; } } IDictionary <string, string> parameters = new Dictionary <string, string>(); string timestamp, token; SetFlagValue(LsRepType); SetBaseInterfcaeParameters(out timestamp, out token); parameters.Add("tran_serial_no", flag); parameters.Add("operate_ip", flag); parameters.Add("method", nameof(AddBigOrders)); parameters.Add("flag", flag); parameters.Add("model", AddBigOrders); DataMain data_main = new DataMain() { shop_code = shop_code, amount = 0, order_sn = balanceInfo.OuInvoice.InvoNo, pay_name = strPayWay, mobile_phone = mobile_phone, address = address, consignee = consignee, deliverytimebymember = deliverytimebymember, creater = Orm.Config.UserProfiles.UserName, state = "1", timestamp = timestamp, token = token, data_detail = detailList, }; if (LsRepType == 17) { data_main.amount = sxprice; } else { data_main.amount = ypprice; } string Data_Json = SetParametersJson(parameters, data_main); jsonString = HttpRequestHelper.PostPage(strURL, Data_Json); if (!jsonString.Contains("ok")) { return(jsonString); } else { return(jsonString); } } return(jsonString); }