public static EmptyFP GetFPH(int Czy, RelationalDatabase _DataBase) { int err_code; string err_text; DataTable tbfp = ts_mz_class.Fun.GetFph(Czy, 1, 1, out err_code, out err_text, _DataBase); if (err_code != 0 || tbfp.Rows.Count == 0) { throw new Exception(err_text); } EmptyFP fp = new EmptyFP(new Guid(tbfp.Rows[0]["fpid"].ToString()), tbfp.Rows[0]["fph"].ToString(), Convert.IsDBNull(tbfp.Rows[0]["qz"]) ? "" : tbfp.Rows[0]["qz"].ToString()); return(fp); }
//<summary> //合并打印发票 //</summary> public static void Print(string Smzh, Guid brxxid, string Sfpid, EmptyFP newfp, int emplyeeId, string Dysj, RelationalDatabase _DataBase) { int err_code = -1; string err_text = ""; try { _DataBase.BeginTransaction(); //更新发票记录的发票号,打印人,打印时间 string[] Fpid = Sfpid.Replace("'", "").Replace("(", "").Replace(")", "").Split(','); for (int i = 0; i < Fpid.Length; i++) { mz_sf.UpdateFpdyxx(new Guid(Fpid[i]), newfp.Fph, newfp.Qz, emplyeeId, Dysj, out err_text, _DataBase); } //更新领用表的当前发票号 mz_sf.UpdateDqfph(newfp.FplyId, newfp.Fph, newfp.Fph, out err_text, _DataBase); UpdateFpdyxx(Smzh, newfp.Fph, newfp.Qz, emplyeeId, Dysj, out err_text, _DataBase); _DataBase.CommitTransaction(); } catch (Exception err) { _DataBase.RollbackTransaction(); throw new Exception("更新发票打印信息或更新当前发票号出错," + err.Message + ""); } #region 打印发票 try { string sDate = DateManager.ServerDateTimeByDBType(_DataBase).ToString(); string sql = @"select * from yy_brxx a where a.brxxid='" + brxxid + "'"; DataTable brxxTb = _DataBase.GetDataTable(sql); sql = @"select sum(isnull(zje,0)) zje,sum(isnull(xjzf,0)) xjzf,sum(isnull(zpzf,0)) zpzf,sum(isnull(ylkzf,0)) ylkzf, sfsj,sfy from MZ_HTDW_JZ where blh in" + Smzh + "group by sfsj,sfy"; DataTable htdwjzTb = _DataBase.GetDataTable(sql); #region 打印 PrintClass.OPDInvoice invoice = new PrintClass.OPDInvoice(); invoice.OtherInfo = ""; invoice.HisName = Constant.HospitalName; invoice.PatientName = brxxTb.Rows[0]["brxm"].ToString(); invoice.OutPatientNo = Smzh; //invoice.DepartmentName = Fun.SeekDeptName(ksdm, _DataBase); //invoice.DoctorName = Fun.SeekEmpName(ysdm, _DataBase); invoice.InvoiceNo = "电脑票号:" + newfp.Fph; //打印新发票的发票号 modify by wangzhi 201-12-1 invoice.sfck = ""; invoice.fyck = ""; //invoice.TotalMoneyCN = Money.NumToChn(dset.Tables[0].Rows[0]["ZJE"].ToString()); //invoice.TotalMoneyNum = Convert.ToDecimal(dset.Tables[0].Rows[0]["ZJE"]); invoice.Klx = ""; //invoice.kh = kh; SystemCfg cfgsfy = new SystemCfg(3016); if (cfgsfy.Config == "1") { invoice.Payee = Fun.SeekEmpName(Convert.ToInt32(htdwjzTb.Rows[0]["sfy"].ToString()), _DataBase);//FrmMdiMain.CurrentUser.Name; } else { invoice.Payee = htdwjzTb.Rows[0]["sfy"].ToString(); } DateTime time = Convert.ToDateTime(sDate); invoice.Year = time.Year; invoice.Month = time.Month; invoice.Day = time.Day; //invoice.Zxks = Fun.SeekDeptName(zxks, _DataBase); invoice.OtherInfo = Convert.ToDateTime(sDate).ToString() + "补打"; invoice.sfsj = Convert.ToDateTime(sDate).ToLongTimeString(); //获取已收费的发票信息 DataSet dset = GetFpResult(Sfpid, out err_code, out err_text, _DataBase); PrintClass.InvoiceItem[] item = null; PrintClass.InvoiceItemDetail[] itemdetail = null; // 增加发票明细项目 DataRow[] rows = dset.Tables[0].Select(""); item = new PrintClass.InvoiceItem[rows.Length]; for (int m = 0; m <= rows.Length - 1; m++) { item[m].ItemName = rows[m]["ITEM_NAME"].ToString().Trim(); item[m].ItemMoney = Convert.ToDecimal(rows[m]["je"]);//发票项目金额 } invoice.Items = item; // 增加发票明细项目 DataRow[] rowsdetail = dset.Tables[3].Select(""); itemdetail = new PrintClass.InvoiceItemDetail[rowsdetail.Length]; for (int m = 0; m <= rowsdetail.Length - 1; m++) { itemdetail[m].ItemDetailName = rowsdetail[m]["PM"].ToString().Trim(); itemdetail[m].ItemDW = rowsdetail[m]["DW"].ToString().Trim(); itemdetail[m].ItemGG = rowsdetail[m]["GG"].ToString().Trim(); itemdetail[m].ItemJS = Convert.ToDecimal(rowsdetail[m]["JS"]); itemdetail[m].ItemNum = Convert.ToDecimal(rowsdetail[m]["SL"]); itemdetail[m].ItemPrice = Convert.ToDecimal(rowsdetail[m]["DJ"]); itemdetail[m].ItemJE = Convert.ToDecimal(rowsdetail[m]["JE"]); } invoice.ItemDetail = itemdetail; //if (Bview != "true") invoice.Print(); //else //invoice.Preview(); #endregion } catch (System.Exception err) { throw new Exception("打印发票时发生错误:" + err.Message); } #endregion }