12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.Variables;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace PTMedicalInsurance.Business
- {
- class IPSettlementCancelProcess : AbstractProcess
- {
- public IPSettlementCancelProcess()
- {
-
- }
- public IPSettlementCancelProcess(JObject orginal)
- {
- this.OrginalInput = orginal;
- }
- public override CallResult Process(JObject input)
- {
- //取消中心结算信息
- if (cBus.cancleSettlement(TradeEnum.InpatientSettlementCancel, out outParam) != 0)
- {
- //查看是医保平台是否已经退费,如果是,则询问是否继续退费
- string SqlStr = " SELECT * FROM BS_MedInsuSettlement WHERE ValidFlag = 0 AND BillType = -1 ";
- SqlStr = SqlStr + " AND Hospital_Dr=" + Global.inf.hospitalDr + " AND Interface_Dr=" + Global.inf.interfaceDr;
- SqlStr = SqlStr + " AND SettlementID ='" + Global.pat.settlID + "'";
- JObject joSqlStr = new JObject();
- joSqlStr.Add("sqlStr", SqlStr);
- JObject joCancleSettlInfo = mIS.QuerySettlementInfo(joSqlStr);
- JArray jaCancleSettlInfo = JArray.Parse(JsonHelper.getDestValue(joCancleSettlInfo, "result.data"));
- if (jaCancleSettlInfo.Count == 1)
- {
- //询问收款员是否继续进行HIS退费
- if (DialogResult.Yes == MessageBox.Show("中心提示:" + outParam, " 该费用在医保中心已成功退费但在HIS未成功退费,是否强制退HIS费用? ", MessageBoxButtons.YesNo))
- {
- return Exception(0, "该费用在医保中心已成功退费但在HIS未成功退费,收款员选择强制退HIS费用!", outParam);
- }
- }
- else
- {
- return Exception(-1, "取消中心结算(云医保平台未退费或未查询到退费记录)", outParam);
- }
- return Exception(-1, "取消中心结算信息失败!", outParam);
- }
- else
- {
- string newSettleID = JsonHelper.getDestValue(JObject.Parse(outParam), "output.setlinfo.setl_id");
- //取消平台结算信息
- if (mIS.cancleSettlement(newSettleID, out outParam) != 0)
- {
- return Exception(-1, "中心结算取消成功,医保平台结算信息取消失败!", outParam);
- }
- //取消HIS医保结算信息
- if (hIS.cancleSettlementInfo(OrginalInput, out outParam) != 0)
- {
- return Exception(-1, "中心跟医保平台结算取消成功, 取消HIS结算信息失败!", outParam);
- }
- // 取消出院
- new InpatientExitCancelProcess().Process(input);
- //费用撤销
- new InpatientFeeUploadCancelProcess().Process(input);
- }
- return IrisReturn("取消结算成功",null);
- }
- }
- }
|