예제 #1
0
        static void RunRegUtil(RegAction act)
        {
            try
            {
                Process pProcess = new Process();
                pProcess.StartInfo.FileName = "nfregdrv.exe";

                if (act == RegAction.Register)
                {
                    pProcess.StartInfo.Arguments = Path.GetFileNameWithoutExtension(driverName);
                }
                else
                {
                    pProcess.StartInfo.Arguments = string.Format("-u {0}",
                                                                 Path.GetFileNameWithoutExtension(driverName));
                }

                pProcess.StartInfo.UseShellExecute = false;
                pProcess.StartInfo.CreateNoWindow  = true;
                pProcess.StartInfo.WindowStyle     = ProcessWindowStyle.Hidden;

                pProcess.Start();
                pProcess.WaitForExit();
            }
            catch
            {
                MessageBox.Show("Reg util not found!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
파일: RegData.cs 프로젝트: radtek/Lime
 /// <summary>
 /// 描述寄存结构信息
 /// </summary>
 /// <param name="rg001"></param>
 private void WriteRgTitle(string rg001)
 {
     lc_all.Text  = RegAction.GetRgAllBits(rg001).ToString();
     lc_free.Text = RegAction.GetRgFreeBits(rg001).ToString();
     lc_used.Text = RegAction.GetRgUsedBits(rg001).ToString();
     lc_debt.Text = RegAction.GetRgDebtBits(rg001).ToString();
 }
예제 #3
0
파일: Frm_RegMove.cs 프로젝트: radtek/Lime
        private void sb_ok_Click(object sender, EventArgs e)
        {
            string s_rt003 = string.Empty;

            if (string.IsNullOrEmpty(s_bitId_new))
            {
                be_newposition.ErrorImageOptions.Alignment = ErrorIconAlignment.MiddleRight;
                be_newposition.ErrorText = "请选择变更后位置!";
                return;
            }
            s_rt003 = txtedit_rt003.Text;

            if (string.IsNullOrEmpty(s_rt003))
            {
                txtedit_rt003.ErrorImageOptions.Alignment = ErrorIconAlignment.MiddleRight;
                txtedit_rt003.ErrorText = "请输入变更原因!";
                return;
            }


            int re = RegAction.RegisterMove(s_rc001, s_bitId_old, s_bitId_new, s_rt003, Envior.cur_user.UC001);

            if (re > 0)
            {
                XtraMessageBox.Show("办理成功!", "提示");
                DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #4
0
파일: RegData.cs 프로젝트: radtek/Lime
        private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
        {
            int    i_layerNum  = gridView1.RowCount - e.RowHandle;
            string s_bitStatus = RegAction.GetBitStatus(curRegionId, i_layerNum, e.CellValue.ToString());

            if (s_bitStatus == "9")                   //空闲
            {
                e.Appearance.BackColor = Color.Green;
                e.Appearance.ForeColor = Color.White;
            }
            else if (s_bitStatus == "0")
            {
                e.Appearance.BackColor = Color.White;
                e.Appearance.ForeColor = Color.White;
            }
            else if (s_bitStatus == "1")              //占用
            {
                e.Appearance.BackColor = Color.Yellow;
                e.Appearance.ForeColor = Color.Black;
            }
            else if (s_bitStatus == "2")              //欠费
            {
                e.Appearance.BackColor = Color.Red;
                e.Appearance.ForeColor = Color.White;
            }
            else if (s_bitStatus == "8")             //待缴费
            {
                e.Appearance.BackColor = Color.Blue;
                e.Appearance.ForeColor = Color.White;
            }
        }
예제 #5
0
        private void gridView1_MouseDown(object sender, MouseEventArgs e)
        {
            GridHitInfo hInfo = gridView1.CalcHitInfo(new Point(e.X, e.Y));

            if (e.Button == MouseButtons.Left && e.Clicks == 2)
            {
                //判断光标是否在行范围内
                if (hInfo.InRow)
                {
                    int    rowHandle = gridView1.FocusedRowHandle;
                    string fieldName = gridView1.FocusedColumn.FieldName;
                    string bi003     = gridView1.GetRowCellValue(rowHandle, fieldName).ToString();
                    int    bi005     = gridView1.RowCount - rowHandle;

                    string s_status = RegAction.GetBitStatus(curRegionId, bi005, bi003);

                    if (s_status == "9")                      //空闲
                    {
                        (this.swapdata["parent"] as MyDialog).swapdata["regionId"] = curRegionId;
                        (this.swapdata["parent"] as MyDialog).swapdata["bitDesc"]  = bi003;
                        (this.swapdata["parent"] as MyDialog).swapdata["bi005"]    = bi005;
                        DialogResult = DialogResult.OK;
                        this.Close();
                    }
                    else
                    {
                        XtraMessageBox.Show("此号位当前被占用!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
            }
        }
예제 #6
0
        private void Frm_RegisterPay_Load(object sender, EventArgs e)
        {
            s_rc001 = this.swapdata["rc001"].ToString();
            RC01 rc01 = unitOfWork1.GetObjectByKey <RC01>(s_rc001);

            if (rc01 != null)
            {
                txtEdit_rc001.EditValue = rc01.RC001;
                txtEdit_rc109.EditValue = rc01.RC109;                                      //寄存证号
                be_position.Text        = RegAction.GetRegPosition(s_rc001);               //寄存位置

                bitprice = RegAction.GetRegPrice(s_rc001);                                 //寄存单价
                txtedit_price.EditValue = bitprice;
                txtEdit_rc003.EditValue = rc01.RC003;
                rg_rc002.EditValue      = rc01.RC002;
                txtEdit_rc004.EditValue = rc01.RC004;
                txtEdit_rc303.EditValue = rc01.RC303;
                rg_rc202.EditValue      = rc01.RC202;
                txtEdit_rc404.EditValue = rc01.RC404;

                op_rc001.Value = s_rc001;
                rc04Adapter.Fill(dt_rc04);
                gridControl1.DataSource = dt_rc04;

                comboBox1.Text = "";
            }
            else
            {
                sb_ok.Enabled = false;
                XtraMessageBox.Show("数据未找到!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #7
0
        private void Frm_RegOut_Load(object sender, EventArgs e)
        {
            s_rc001 = this.swapdata["rc001"].ToString();
            RC01 rc01 = unitOfWork1.GetObjectByKey <RC01>(s_rc001);

            if (rc01 != null)
            {
                txtEdit_rc001.Text      = rc01.RC001;
                txtEdit_rc109.Text      = rc01.RC109;                        //寄存证号
                be_position.Text        = RegAction.GetRegPosition(s_rc001); //寄存位置
                txtEdit_rc003.Text      = rc01.RC003;
                txtEdit_rc303.EditValue = rc01.RC303;
                rg_rc002.EditValue      = rc01.RC002;
                rg_rc202.EditValue      = rc01.RC202;
                txtEdit_rc004.EditValue = rc01.RC004;
                txtEdit_rc404.EditValue = rc01.RC404;
                //寄存号位单价
                price = RegAction.GetRegPrice(s_rc001);
                txtEdit_price.EditValue = price;
                txtEdit_rc150.EditValue = rc01.RC150;                      //寄存到期时间

                int diff    = RegAction.CalcOutDiffDays(s_rc001);
                int compare = string.Compare(rc01.RC150.ToString("yyyyMMdd"), MiscAction.GetServerTime().ToString("yyyyMMdd"));
                if (compare == 0)
                {
                    checkEdit1.Enabled   = false;
                    txtEdit_nums.Enabled = false;
                }
                else if (compare > 0)                  //退费
                {
                    lc_1.Text = "剩余天数";
                    lc_2.Text = "应退费月数";
                    lc_3.Text = "退费金额";
                    isrefund  = true;

                    //txtEdit_nums.EditValue = Math.Round((diff * 1.0f) / 30, 0);
                    //txtEdit_fee.EditValue = Convert.ToDecimal(Math.Round((diff * 1.0f) / 30, 0)) * price;
                    txtEdit_nums.EditValue = 0;
                    txtEdit_fee.EditValue  = 0;
                }
                else
                {
                    lc_1.Text = "过期天数";
                    lc_2.Text = "应补费月数";
                    lc_3.Text = "补费金额";

                    txtEdit_nums.EditValue = Math.Round((diff * 1.0f) / 30, 0);
                    txtEdit_fee.EditValue  = Convert.ToDecimal(Math.Round((diff * 1.0f) / 30, 0)) * price;
                }
                txtEdit_diff.EditValue = diff;
            }
            else
            {
                sb_ok.Enabled = false;
                XtraMessageBox.Show("数据未找到!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #8
0
파일: RegData.cs 프로젝트: radtek/Lime
        private void gridView1_MouseMove(object sender, MouseEventArgs e)
        {
            GridHitInfo hInfo = gridView1.CalcHitInfo(new Point(e.X, e.Y));
            int         i_layerNum;

            if (hInfo.InRow && hInfo.Column != null && hInfo.InRowCell)
            {
                panel_info.Visible = true;
                i_layerNum         = gridView1.RowCount - hInfo.RowHandle;
                string s_bi003 = gridView1.GetRowCellValue(hInfo.RowHandle, hInfo.Column).ToString();
                string s_bi001 = RegAction.GetBitId(curRegionId, i_layerNum, s_bi003);
                BI01   bi01    = session1.GetObjectByKey <BI01>(s_bi001);
                if (bi01 != null)
                {
                    lc_position.Text = RegAction.GetBitFullName(curRegionId, i_layerNum, s_bi003);
                    lc_price.Text    = string.Format("{0:C2}", bi01.BI009);

                    if (bi01.STATUS == "1")
                    {
                        lc_status.Text = "占用";
                    }
                    if (bi01.STATUS == "9")
                    {
                        lc_status.Text = "空闲";
                    }
                    if (bi01.STATUS == "8")
                    {
                        lc_status.Text = "待缴费";
                    }

                    if (bi01.STATUS != "1")
                    {
                        lc_name_header.Visible = false;
                        lc_name.Visible        = false;
                    }
                    else
                    {
                        lc_name_header.Visible = true;
                        lc_name.Visible        = true;

                        RC01 rc01 = session1.GetObjectByKey <RC01>(bi01.BI010);
                        if (rc01 != null)
                        {
                            lc_name.Text = rc01.RC003;
                        }
                    }
                }
            }
            else
            {
                panel_info.Visible = false;
            }
        }
예제 #9
0
        private void sb_ok_Click(object sender, EventArgs e)
        {
            int nums;

            if (!int.TryParse(comboBox1.Text, out nums))
            {
                comboBox1.Focus();
                XtraMessageBox.Show("请输入正确的缴费期限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (!(bitprice > 0))
            {
                XtraMessageBox.Show("参数传递错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            string cuname   = txtEdit_rc003.Text;
            string s_fa001  = MiscAction.GetEntityPK("FA01");
            string s_billno = string.Empty;

            int re = RegAction.RegisterPay(s_rc001, s_fa001, bitprice, nums, Envior.cur_user.UC001);

            if (re > 0)
            {
                dt_rc04.Rows.Clear();
                rc04Adapter.Fill(dt_rc04);

                if (XtraMessageBox.Show("缴费成功!现在打印【收据】吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    //Frm_InputBill frm_bill = new Frm_InputBill();
                    //if (frm_bill.ShowDialog() == DialogResult.OK)
                    //{
                    //	s_billno = frm_bill.swapdata["billno"].ToString();
                    //}
                    //frm_bill.Dispose();
                    //if (!string.IsNullOrEmpty(s_billno))
                    //{
                    PrintAction.Print_Skpz1(s_fa001);
                    //	MiscAction.SetFinanceBill(s_fa001, s_billno);
                    //}
                }

                ///todo 4 打印缴费记录
                if (XtraMessageBox.Show("现在打印缴费记录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    PrintAction.Print_PayRecord(s_fa001);
                }

                DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #10
0
파일: RegisterStru.cs 프로젝트: radtek/Lime
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            TreeListNode curNode = treeList1.FocusedNode;

            if (curNode.Level == 0)
            {
                return;
            }

            DialogResult result = XtraMessageBox.Show("确认要删除当前节点及其所有子节点?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (result == DialogResult.Cancel)
            {
                return;
            }

            ////判断是否有被占用的节点
            int i_count = RegAction.RegStruIsUse(curNode.GetValue("RG001").ToString());

            if (i_count > 0)
            {
                XtraMessageBox.Show("存在被占用的号位,不能删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                if (curNode.Level == 1)                       //寄存堂
                {
                    foreach (TreeListNode room in curNode.Nodes)
                    {
                        foreach (TreeListNode region in room.Nodes)
                        {
                            region.SetValue("STATUS", "0");
                        }
                        room.SetValue("STATUS", "0");
                    }
                }
                else if (curNode.Level == 2)                  //寄存室
                {
                    foreach (TreeListNode region in curNode.Nodes)
                    {
                        region.SetValue("STATUS", "0");
                    }
                }

                curNode.SetValue("STATUS", "0");
                treeList1.SetFocusedNode(curNode.ParentNode);
            }
        }
예제 #11
0
        /// <summary>
        /// 设置信息面板显示
        /// </summary>
        private void SetActivePanel()
        {
            txtedit_ac003.EditValue = ac01.AC003;              //逝者姓名
            txtedit_ac004.EditValue = ac01.AC004;              //年龄
            rg_ac002.EditValue      = ac01.AC002;              //性别
            txtedit_ac020.EditValue = ac01.AC020;              //到达中心时间
            txtedit_ac050.EditValue = ac01.AC050;              //联系人
            txtedit_ac051.EditValue = ac01.AC051;              //电话
            txtedit_ac052.Text      = ac01.AC052;              //与逝者关系
            txtedit_ac006.EditValue = ac01.AC006;              //骨灰处理方式

            this.Parent.Text = "火化业务办理" + "【" + ac01.AC003 + "】" + "(" + ac01.AC001 + ")";

            te_position.Text        = FireAction.GetGuyPosition(s_ac001);
            te_gbt.Text             = FireAction.GetGBT(s_ac001);
            txtedit_ac018.EditValue = ac01.AC018;
            txtedit_ac015.EditValue = ac01.AC015;
            te_hhl.Text             = FireAction.GetHHL(s_ac001);
            txtedit_xxs.Text        = FireAction.GetRestRoomList(s_ac001);

            //判断是否办理寄存业务
            if (gridView1.LocateByValue("SA002", "08") >= 0)
            {
                te_pos.Text = RegAction.GetRegPosition(s_ac001);
            }
            else
            {
                te_pos.Text = "";
            }

            decimal dec_yjs = decimal.Zero;
            decimal dec_wjs = decimal.Zero;

            for (int i = 0; i < gridView1.RowCount; i++)
            {
                if (gridView1.GetRowCellValue(i, "SA008").ToString() == "1")
                {
                    dec_yjs += Convert.ToDecimal(gridView1.GetRowCellValue(i, "SA007"));
                }
                else
                {
                    dec_wjs += Convert.ToDecimal(gridView1.GetRowCellValue(i, "SA007"));
                }
            }

            te_yjs.Text = dec_yjs.ToString("##,##0.00");
            te_wjs.Text = dec_wjs.ToString("##,##0.00");
        }
예제 #12
0
파일: Frm_RegMove.cs 프로젝트: radtek/Lime
        private void be_newposition_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            Frm_FreeBit frm_free = new Frm_FreeBit();

            frm_free.swapdata["parent"] = this;

            if (frm_free.ShowDialog() == DialogResult.OK)
            {
                string regionId, bitDesc;
                int    i_bi005;
                regionId            = this.swapdata["regionId"].ToString();
                bitDesc             = this.swapdata["bitDesc"].ToString();
                i_bi005             = Convert.ToInt32(this.swapdata["bi005"]);
                s_bitId_new         = RegAction.GetBitId(regionId, i_bi005, bitDesc);
                be_newposition.Text = RegAction.GetBitFullName(regionId, i_bi005, bitDesc);
            }
        }
예제 #13
0
파일: Frm_RegMove.cs 프로젝트: radtek/Lime
        private void Frm_RegMove_Load(object sender, EventArgs e)
        {
            s_rc001 = this.swapdata["rc001"].ToString();
            RC01 rc01 = unitOfWork1.GetObjectByKey <RC01>(s_rc001);

            if (rc01 != null)
            {
                txtEdit_rc001.Text      = s_rc001;
                txtEdit_rc109.EditValue = rc01.RC109;
                txtEdit_rc003.EditValue = rc01.RC003;
                s_bitId_old             = rc01.RC130;
                be_position.EditValue   = RegAction.GetRegPosition(s_rc001);
            }
            else
            {
                sb_ok.Enabled = false;
                XtraMessageBox.Show("数据未找到!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #14
0
파일: Frm_Register.cs 프로젝트: radtek/Lime
        /// <summary>
        /// 选择寄存位置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void be_position_Click(object sender, EventArgs e)
        {
            Frm_FreeBit frm_free = new Frm_FreeBit();

            frm_free.swapdata["parent"] = this;

            if (frm_free.ShowDialog() == DialogResult.OK)
            {
                regionId = this.swapdata["regionId"].ToString();
                bitDesc  = this.swapdata["bitDesc"].ToString();
                i_bi005  = Convert.ToInt32(this.swapdata["bi005"]);

                bitId                   = RegAction.GetBitId(regionId, i_bi005, bitDesc);
                be_position.Text        = RegAction.GetBitFullName(regionId, i_bi005, bitDesc);
                bitPrice                = RegAction.GetBitPrice(regionId, i_bi005, bitDesc);
                txtedit_price.EditValue = bitPrice;

                this.CalcHJ();
            }
        }
예제 #15
0
        static void RunRegUtil(RegAction act)
        {
            Process pProcess = new Process();

            pProcess.StartInfo.FileName = "nfregdrv.exe";

            if (act == RegAction.Register)
            {
                pProcess.StartInfo.Arguments = Path.GetFileNameWithoutExtension(driverName);
            }
            else
            {
                pProcess.StartInfo.Arguments = string.Format("-u {0}",
                                                             Path.GetFileNameWithoutExtension(driverName));
            }

            pProcess.StartInfo.UseShellExecute = false;
            pProcess.StartInfo.CreateNoWindow  = true;
            pProcess.StartInfo.WindowStyle     = ProcessWindowStyle.Hidden;

            pProcess.Start();
            pProcess.WaitForExit();
        }
예제 #16
0
        private void sb_ok_Click(object sender, EventArgs e)
        {
            if (txtEdit_oc003.EditValue == null || txtEdit_oc003.EditValue is System.DBNull)
            {
                txtEdit_oc003.ErrorImageOptions.Alignment = ErrorIconAlignment.MiddleRight;
                txtEdit_oc003.ErrorText = "请输入迁出办理人!";
                return;
            }
            if (mem_oc005.EditValue == null)
            {
                mem_oc005.ErrorImageOptions.Alignment = ErrorIconAlignment.MiddleRight;
                mem_oc005.ErrorText = "请输入迁出原因!";
                return;
            }
            string s_oc003 = txtEdit_oc003.Text;               //迁出人
            string s_oc005 = mem_oc005.Text;                   //迁出原因
            string s_oc004 = txtEdit_oc004.Text;               //迁出人身份证号

            int     diff  = int.Parse(txtEdit_diff.EditValue.ToString());
            decimal nums  = decimal.Zero;
            string  fa001 = MiscAction.GetEntityPK("FA01");

            //补退情况
            if (checkEdit1.Checked && (!string.IsNullOrEmpty(txtEdit_nums.Text)))
            {
                nums = decimal.Parse(txtEdit_nums.Text);
            }
            else
            {
                nums = 0;
            }

            if (XtraMessageBox.Show("确认要继续办理迁出吗?本业务将不能回退!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
            {
                return;
            }
            int re = RegAction.RegisterOut(s_rc001,
                                           s_oc003,
                                           s_oc004,
                                           s_oc005,
                                           diff,
                                           fa001,
                                           price,
                                           isrefund ? 0 - nums : nums,
                                           Envior.cur_user.UC001
                                           );

            if (re > 0)
            {
                XtraMessageBox.Show("迁出办理成功,现在打印【迁出通知单】", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                PrintAction.Print_OutCard(s_rc001);
                if (Math.Abs(nums) > 0)
                {
                    string s_billno = string.Empty;
                    XtraMessageBox.Show("本次迁出发生补费,现在准备打印【收据】!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);


                    ///todo 6.打印补退费票据
                    //Frm_InputBill frm_bill = new Frm_InputBill();
                    //if (frm_bill.ShowDialog() == DialogResult.OK)
                    //{
                    //	s_billno = frm_bill.swapdata["billno"].ToString();
                    //}
                    //frm_bill.Dispose();
                    //if (!string.IsNullOrEmpty(s_billno))
                    //{
                    PrintAction.Print_Skpz1(fa001);
                    //	MiscAction.SetFinanceBill(fa001, s_billno);
                    //}
                }
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #17
0
파일: Frm_Register.cs 프로젝트: radtek/Lime
        private void sb_ok_Click(object sender, EventArgs e)
        {
            if (!gridView1.PostEditor())
            {
                return;
            }
            if (!gridView1.UpdateCurrentRow())
            {
                return;
            }
            if (!SaveCheck())
            {
                return;                            //数据合法性校验!!!
            }
            string s_billno = string.Empty;

            //0.再次判断寄存号位 是否占用
            if (RegAction.GetBitStatus(regionId, i_bi005, bitDesc) != "9")
            {
                XtraMessageBox.Show("当前号位无效或已被占用!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            //1.生成寄存记录
            int i_months = Convert.ToInt32(comboBox1.Text);

            rc01 = new RC01(unitOfWork1);
            if (s_source == "1" /*外来寄存*/)
            {
                rc01.RC001 = MiscAction.GetEntityPK("RC01");
            }
            else if (s_source == "0" || s_source == "8")
            {
                rc01.RC001 = txtEdit_rc001.Text;
            }

            rc01.RC002 = rg_rc002.EditValue.ToString();              //逝者性别
            rc01.RC202 = rg_rc202.EditValue.ToString();              //逝者性别2
            rc01.RC003 = txtEdit_rc003.Text;                         //逝者姓名
            rc01.RC303 = txtEdit_rc303.Text;                         //逝者姓名2
            rc01.RC004 = Convert.ToInt32(txtEdit_rc004.EditValue);   //逝者年龄
            rc01.RC404 = txtEdit_rc404.EditValue == null ? 0 : Convert.ToInt32(txtEdit_rc404.EditValue);
            rc01.RC014 = txtedit_rc014.Text;                         //身份证号
            rc01.RC050 = txtEdit_rc050.Text;                         //联系人
            rc01.RC051 = txtEdit_rc051.Text;                         //联系电话
            rc01.RC052 = lookUp_rc052.EditValue.ToString();          //与逝者关系
            rc01.RC055 = txtEdit_ac055.Text;                         //联系地址
            rc01.RC099 = mem_rc099.Text;                             //备注
            rc01.RC109 = RegAction.GenRegisterNo(s_source == "2" ? "1" : "0");

            if (s_source == "0" || s_source == "8")
            {
                rc01.SOURCE = "0";                                       //本馆火化
            }
            else if (s_source == "1")
            {
                rc01.SOURCE = "1";
            }

            //状态
            if (s_source == "8")
            {
                rc01.STATUS = "8";
            }
            else
            {
                rc01.STATUS = "1";
            }

            rc01.RC110 = RegAction.GetRoomIdByBitId(bitId);               //寄存室编号
            rc01.RC120 = regionId;                                        //寄存架号
            rc01.RC130 = bitId;                                           //寄存号位
            rc01.RC140 = MiscAction.GetServerTime();                      //寄存日期
            rc01.RC150 = rc01.RC140.AddMonths(i_months);                  //寄存到期日期
            rc01.RC100 = Envior.cur_user.UC001;                           //经办人
            rc01.RC200 = MiscAction.GetServerTime();


            ///2.寄存费缴费记录表
            string s_fa001 = MiscAction.GetEntityPK("FA01");

            if (s_source == "0" || s_source == "1")              //本馆火化 或外来寄存
            {
                RC04 rc04 = new RC04(unitOfWork1);
                rc04.RC001  = rc01.RC001;
                rc04.RC010  = s_fa001;                                      //结算流水号
                rc04.RC020  = MiscAction.GetServerTime();                   //缴费开始时间
                rc04.RC022  = rc01.RC150;                                   //缴费截至时间
                rc04.PRICE  = bitPrice;                                     //单价
                rc04.NUMS   = Convert.ToInt32(comboBox1.Text);              //缴费期限
                rc04.RC030  = rc04.PRICE * rc04.NUMS;                       //寄存费金额
                rc04.RC031  = "1";                                          //0-原始登记 1-正常交费
                rc04.RC100  = Envior.cur_user.UC001;                        //经办人
                rc04.RC200  = MiscAction.GetServerTime();
                rc04.STATUS = "1";
            }

            ///3.插入销售表
            SA01 sa01 = new SA01(unitOfWork1);

            sa01.SA001  = MiscAction.GetEntityPK("SA01");
            sa01.SA002  = "08";                    //项目类别 08-寄存费
            sa01.AC001  = rc01.RC001;              //逝者编号
            sa01.SA003  = "寄存费";
            sa01.SA004  = bitId;
            sa01.SA005  = "2";                     //销售业务类型 2-骨灰寄存
            sa01.PRICE  = bitPrice;
            sa01.NUMS   = Convert.ToInt32(comboBox1.Text);
            sa01.SA007  = sa01.PRICE * sa01.NUMS;
            sa01.SA006  = bitPrice;
            sa01.SA008  = s_source == "8" ? "0" : "1";
            sa01.SA010  = s_source == "8" ? "" : s_fa001;
            sa01.SA100  = Envior.cur_user.UC001;                    //经办人
            sa01.SA200  = MiscAction.GetServerTime();
            sa01.STATUS = "1";

            ///4.处理附件销售.
            foreach (SA01 s in xpCollection_sa01)
            {
                s.SA001  = MiscAction.GetEntityPK("SA01");
                s.SA002  = "13";
                s.AC001  = rc01.RC001;
                s.SA003  = FireAction.Mapper_Item(s.SA004);
                s.SA005  = "2";                                              // 销售类别 0 - 火化业务 1 - 临时性销售 2骨灰寄存
                s.SA008  = s_source == "8" ? "0" : "1";
                s.SA010  = s_source == "8" ? "" : s_fa001;
                s.SA100  = Envior.cur_user.UC001;                        //经办人
                s.SA200  = MiscAction.GetServerTime();
                s.STATUS = "1";
            }

            ////5. 处理财务结算表
            if (s_source == "0" || s_source == "1")
            {
                FA01 fa01 = new FA01(unitOfWork1);
                fa01.FA001  = s_fa001;
                fa01.FA002  = "2";                            //收费业务类型 2-寄存
                fa01.FA003  = rc01.RC003;
                fa01.FA004  = regfee + fpfee;
                fa01.FA100  = Envior.cur_user.UC001;
                fa01.FA200  = MiscAction.GetServerTime();
                fa01.FA099  = s_billno;
                fa01.WS001  = Envior.workstationId;
                fa01.AC001  = rc01.RC001;
                fa01.STATUS = "1";
            }
            ////6. 处理号位表
            BI01 bi01 = unitOfWork1.GetObjectByKey <BI01>(bitId);

            bi01.BI010 = rc01.RC001;
            if (s_source == "0" || s_source == "1")
            {
                bi01.STATUS = "1";
            }
            else if (s_source == "8")
            {
                bi01.STATUS = "8";
            }

            try
            {
                unitOfWork1.CommitChanges();
                string s_tip = string.Empty;
                if (s_source == "0" || s_source == "1")
                {
                    s_tip = "办理成功,现在打印【收据】";
                }
                else
                {
                    s_tip = "办理成功!";
                }

                XtraMessageBox.Show(s_tip, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ////打印收据
                if (s_source == "0" || s_source == "1")
                {
                    //Frm_InputBill frm_bill = new Frm_InputBill();
                    //if (frm_bill.ShowDialog() == DialogResult.OK)
                    //{
                    //	s_billno = frm_bill.swapdata["billno"].ToString();
                    //}
                    //frm_bill.Dispose();
                    //if (!string.IsNullOrEmpty(s_billno))
                    //{
                    PrintAction.Print_Skpz1(s_fa001);
                    //MiscAction.SetFinanceBill(s_fa001, s_billno);
                    //}
                }

                ////todo 2.打印寄存证
                if (s_source == "0" || s_source == "1" || s_source == "2")
                {
                    XtraMessageBox.Show("现在准备打印【寄存证】!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    PrintAction.Print_RegCardBase(rc01.RC001);
                }
                if (XtraMessageBox.Show("现在打印【骨灰安放卡】吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    PrintAction.Print_RegSettle(rc01.RC001);
                }

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            catch (Exception ee)
            {
                unitOfWork1.RollbackTransaction();
                LogUtils.Error(ee.Message);
                XtraMessageBox.Show(ee.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }