Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        //<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
        }