Пример #1
0
        /// <summary>
        /// 检查数据有效性
        /// </summary>
        /// <param name="invoiceChange"></param>
        /// <returns></returns>
        private int CheckData(Neusoft.HISFC.Models.Fee.InvoiceChange invoiceChange)
        {
            Neusoft.HISFC.Models.Fee.Invoice invoice = null;
            if (this.neuSpread1_Sheet1.RowCount > 0)
            {
                int row = this.neuSpread1_Sheet1.ActiveRow.Index;
                if (row >= 0)
                {
                    invoice = this.neuSpread1_Sheet1.Rows[row].Tag as Neusoft.HISFC.Models.Fee.Invoice;
                }
            }

            for (int i = 0, j = this.txtUsedNO.Text.Length; i < j; i++)
            {
                if (!char.IsDigit(this.txtUsedNO.Text, i))
                {
                    //可以说明是第几个字符错误了
                    MessageBox.Show("输入的已用发票号必须是数字", "提示", MessageBoxButtons.OK);
                    return(-1);
                }
            }

            if (Convert.ToInt64(invoiceChange.EndNO) < Convert.ToInt64(invoice.UsedNO))
            {
                MessageBox.Show("输入的已用发票号不能小于当前已用号");
                return(-1);
            }
            return(0);
        }
Пример #2
0
        /// <summary>
        /// 生成发票变更实体
        /// </summary>
        /// <returns></returns>
        private Neusoft.HISFC.Models.Fee.InvoiceChange SetInvoiceChange()
        {
            Neusoft.HISFC.Models.Fee.InvoiceChange myInvoiceChange = new Neusoft.HISFC.Models.Fee.InvoiceChange();
            Neusoft.HISFC.Models.Fee.Invoice       invoice         = null;
            long beginNO = 0;

            if (this.neuSpread1_Sheet1.RowCount > 0)
            {
                int row = this.neuSpread1_Sheet1.ActiveRow.Index;
                if (row >= 0)
                {
                    invoice = this.neuSpread1_Sheet1.Rows[row].Tag as Neusoft.HISFC.Models.Fee.Invoice;
                }
            }
            myInvoiceChange.HappenNO    = this.invoiceServiceManager.GetInvoiceChangeHappenNO(this.myOperator.ID);
            myInvoiceChange.GetOper.ID  = invoice.AcceptOper.ID;
            myInvoiceChange.InvoiceType = invoice.Type;
            beginNO = Convert.ToInt64(invoice.UsedNO) + 1;
            myInvoiceChange.BeginNO   = beginNO.ToString().PadLeft(12, '0');
            myInvoiceChange.EndNO     = this.txtUsedNO.Text.ToString().PadLeft(12, '0');
            myInvoiceChange.ShiftType = "2";
            myInvoiceChange.Oper.ID   = this.myOperator.ID;
            myInvoiceChange.Memo      = "发票跳号";
            return(myInvoiceChange);
        }
Пример #3
0
        /// <summary>
        /// 根据人员编码生成一个invoice实体
        /// </summary>
        /// <param name="personID"></param>
        /// <param name="personName"></param>
        /// <returns></returns>
        private Neusoft.HISFC.Models.Fee.Invoice CreateInvoiceItem(string personID, string personName)
        {
            Neusoft.HISFC.Models.Fee.Invoice invoice = new Neusoft.HISFC.Models.Fee.Invoice();

            invoice.AcceptOper.ID   = personID;
            invoice.AcceptOper.Name = personName;
            invoice.BeginNO         = currentStartCode.ToString();
            invoice.EndNO           = ((long)(currentStartCode + currentCodeNums - 1)).ToString();
            invoice.UsedNO          = ((long)(currentStartCode - 1)).ToString();
            invoice.AcceptTime      = invoiceServiceManager.GetDateTimeFromSysDateTime();


            invoice.ValidState = "0";

            if (this.cmbGetType.SelectedIndex == 0)
            {
                invoice.IsPublic = false;
            }
            else
            {
                invoice.IsPublic = true;
            }

            invoice.Type.ID   = CurrInvoiceType.ID;
            invoice.Type.Name = CurrInvoiceType.Name;



            currentStartCode += currentCodeNums;
            return(invoice);
        }
Пример #4
0
        /// <summary>
        /// 判断表格中的发票是否可以回收
        /// </summary>
        /// <returns></returns>
        protected virtual bool CanReturnBack()
        {
            Neusoft.HISFC.Models.Fee.Invoice info = fpSpread1_Sheet1.Rows[fpSpread1_Sheet1.ActiveRowIndex].Tag as Neusoft.HISFC.Models.Fee.Invoice;
            if (info.ValidState == "-1")
            {
                return(false);
            }

            return(true);
        }
Пример #5
0
        private void neuSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            Neusoft.HISFC.Models.Fee.Invoice selectedInvoice = null;

            if (this.neuSpread1_Sheet1.RowCount > 0)
            {
                int row = this.neuSpread1_Sheet1.ActiveRow.Index;
                if (row >= 0)
                {
                    selectedInvoice     = this.neuSpread1_Sheet1.Rows[row].Tag as Neusoft.HISFC.Models.Fee.Invoice;
                    this.txtUsedNO.Text = selectedInvoice.UsedNO;
                }
            }
        }
Пример #6
0
        /// <summary>
        /// 保存数据
        /// </summary>
        private int SaveInvoiceChange()
        {
            Neusoft.HISFC.Models.Fee.InvoiceChange invoiceChange = null;
            Neusoft.HISFC.Models.Fee.Invoice       invoice       = null;
            if (this.neuSpread1_Sheet1.RowCount > 0)
            {
                int row = this.neuSpread1_Sheet1.ActiveRow.Index;
                if (row >= 0)
                {
                    invoice = this.neuSpread1_Sheet1.Rows[row].Tag as Neusoft.HISFC.Models.Fee.Invoice;
                }
            }
            invoiceChange = this.SetInvoiceChange();
            if (this.CheckData(invoiceChange) < 0)
            {
                return(-1);
            }

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();

            //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(this.invoiceServiceManager.Connection);
            //trans.BeginTransaction();

            this.invoiceServiceManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            int iReturn = -1;

            iReturn = this.invoiceServiceManager.InsertInvoiceChange(invoiceChange);
            if (iReturn < 0)
            {
                MessageBox.Show("插入发票变更表失败!" + this.invoiceServiceManager.Err);
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                return(-1);
            }
            iReturn = this.invoiceServiceManager.UpdateInvoiceUsedNO(invoiceChange.EndNO, invoice.AcceptOper.ID, invoice.AcceptTime);
            if (iReturn < 0)
            {
                MessageBox.Show("更新发票已用号码失败!" + this.invoiceServiceManager.Err);
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                return(-1);
            }
            Neusoft.FrameWork.Management.PublicTrans.Commit();
            MessageBox.Show("保存成功");
            this.QueryInvoice();
            return(0);
        }
Пример #7
0
        /// <summary>
        /// 赋值
        /// </summary>
        private void SetValue(Neusoft.HISFC.Models.Fee.Invoice invoiceJumpRecord)
        {
            this.lblBeginNO.Text         = invoiceJumpRecord.BeginNO;
            this.lblEndNO.Text           = invoiceJumpRecord.EndNO;
            this.lblInvoiceTypeID.Text   = invoiceJumpRecord.Type.ID;
            this.lblInvoiceTypeName.Text = invoiceJumpRecord.Type.Name;
            this.lblUseNO.Text           = invoiceJumpRecord.UsedNO;
            this.lblAcceptPerson.Text    = invoiceJumpRecord.AcceptOper.ID;
            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            this.feeIntegrate.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);
            string nextInoviceNo = this.feeIntegrate.GetNewInvoiceNO(invoiceJumpRecord.Type.ID);

            if (nextInoviceNo == string.Empty)
            {
                this.lblNextNO.Text = "本号段已经使用完";
            }
            else
            {
                this.lblNextNO.Text = nextInoviceNo;
            }
            Neusoft.FrameWork.Management.PublicTrans.RollBack();

            this.txtInput.Focus();
        }
Пример #8
0
 public frmInvoiceReturn(Neusoft.HISFC.Models.Fee.Invoice invoiceInfo)
 {
     InitializeComponent();
     this.CurrInvoice = invoiceInfo;
     Init();
 }
Пример #9
0
        /// <summary>
        /// 回收发票
        /// </summary>
        public void ReturnBack()
        {
            if (this.neuTabControl1.SelectedIndex != 1)
            {
                this.neuTabControl1.SelectedIndex = 1;
            }
            if (this.fpSpread1_Sheet1.Rows.Count <= 0)
            {
                MessageBox.Show("没有可以回收的发票!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                return;
            }
            if (CanReturnBack() == false)
            {
                MessageBox.Show("发票已经被使用,不能回收!", "提示", MessageBoxButtons.OK);

                return;
            }

            Neusoft.HISFC.Models.Fee.Invoice invoiceReturn = GetReturnBackInvoice();

            Neusoft.HISFC.Models.Fee.Invoice clone = (Neusoft.HISFC.Models.Fee.Invoice)invoiceReturn.Clone();
            frmInvoiceReturn frmInvoiceReturn      = new InpatientFee.Maintenance.frmInvoiceReturn(clone);
            DialogResult     result = frmInvoiceReturn.ShowDialog();

            if (result == DialogResult.OK)
            {
                long start        = Convert.ToInt64(clone.BeginNO);
                long invoiceStart = Convert.ToInt64(invoiceReturn.BeginNO);
                long end          = Convert.ToInt64(clone.EndNO);
                long invoiceEnd   = Convert.ToInt64(invoiceReturn.EndNO);

                bool saved = true;
                if (start == invoiceStart)
                {
                    if (invoiceServiceManager.Delete(clone) == -1)
                    {
                        saved = false;
                    }
                    ;
                }
                else
                {
                    invoiceReturn.EndNO = ((long)(start - 1)).ToString();
                    if (invoiceReturn.EndNO == invoiceReturn.UsedNO)
                    {
                        invoiceReturn.ValidState = "-1";
                    }
                    invoiceReturn.Qty = invoiceReturn.Qty - clone.Qty;



                    if (invoiceServiceManager.UpdateInvoice(invoiceReturn) == -1)
                    {
                        saved = false;
                    }
                }
                if (saved)
                {
                    MessageBox.Show("发票回收成功!", "提示", MessageBoxButtons.OK);
                    SearchInvoiceBy();
                }
                else
                {
                    MessageBox.Show("发票回收失败!", "提示", MessageBoxButtons.OK);
                }
            }
        }
Пример #10
0
        /// <summary>
        /// 根据PersonListBox里的人员,生成Invoice,并保存。领票完毕。
        /// </summary>
        protected virtual void GenerateInvoices()
        {
            //{B461213F-80EB-4338-9EF4-DB3E61F9C6DF}
            //Neusoft.HISFC.Models.Fee.InvoiceTypeEnumService invoicetype = new Neusoft.HISFC.Models.Fee.InvoiceTypeEnumService();
            string invoicetype = string.Empty;

            //invoicetype.ID = CurrInvoiceType.ID;
            invoicetype = CurrInvoiceType.ID;

            ArrayList invoices = new ArrayList();

            //发票的起始号码
            currentStartCode = Convert.ToInt64(this.txtStart.Text.Trim());
            //发票的终止号码
            currentCodeNums = Convert.ToInt64(this.txtQty.Text.Trim());
            //人员类别有变动的员工
            string changedPersons = string.Empty;

            foreach (ListViewItem item in this.lstvGetPerson.Items)
            {
                if (this.cmbGetType.SelectedIndex == 0)
                {
                    if (GetPersonType(item.SubItems[1].Text) == "F")
                    {
                        Neusoft.HISFC.Models.Fee.Invoice invoice = CreateInvoiceItem(item.SubItems[1].Text, item.Text);
                        invoices.Add(invoice);
                    }
                    else
                    {
                        changedPersons = changedPersons + item.SubItems[1].Text + "(" + item.Text + "),";
                    }
                }
                else
                {
                    Neusoft.HISFC.Models.Fee.Invoice invoice = CreateInvoiceItem(item.SubItems[1].Text, item.Text);
                    invoices.Add(invoice);
                }
            }

            if (changedPersons != string.Empty)
            {
                MessageBox.Show("系统中以下人员已经不是收费员,请重新登陆发票领用界面:" + changedPersons);
                return;
            }
            //{B461213F-80EB-4338-9EF4-DB3E61F9C6DF}
            //Neusoft.FrameWork.Management.Transaction trans = new Neusoft.FrameWork.Management.Transaction(this.invoiceServiceManager.Connection);

            Neusoft.FrameWork.Management.PublicTrans.BeginTransaction();
            this.invoiceServiceManager.SetTrans(Neusoft.FrameWork.Management.PublicTrans.Trans);

            int result = 1;

            foreach (Neusoft.HISFC.Models.Fee.Invoice info in invoices)
            {
                if (this.invoiceServiceManager.InsertInvoice(info) == -1)
                {
                    result = -1;
                    break;
                }
            }

            if (result == 1)
            {
                Neusoft.FrameWork.Management.PublicTrans.Commit();
                AddDataTofpSpread2(invoices);
                MessageBox.Show("发票分配成功!", "提示", MessageBoxButtons.OK);

                PersonViewClear();

                return;
            }
            else
            {
                Neusoft.FrameWork.Management.PublicTrans.RollBack();
                MessageBox.Show("发票分配失败!" + this.invoiceServiceManager.Err);
            }

            MessageBox.Show("发票分配失败!", "提示", MessageBoxButtons.OK);
            return;
        }