예제 #1
0
        /// <summary>
        /// 调整发票号
        /// </summary>
        /// <param name="billKind"></param>
        /// <param name="OperatorId"></param>
        /// <param name="NewInvoiceNo"></param>
        /// <returns></returns>
        public static bool AdjustInvoiceNo(int OperatorId, string PerfChar, string NewInvoiceNo)
        {
            string strWhere = "STATUS =0";

            strWhere += " and EMPLOYEE_ID =" + OperatorId;
            strWhere += " and INVOICE_TYPE=0";
            strWhere += " and PERFCHAR ='" + PerfChar + "'";

            ZY_INVOICE mz_invoice = BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).GetModel(strWhere);

            long newInvoiceNo = Convert.ToInt64(NewInvoiceNo);

            if (mz_invoice != null)
            {
                if (newInvoiceNo > Convert.ToInt64(mz_invoice.END_NO))
                {
                    throw new Exception("要调整的发票号不能超出本卷票的结束号!");
                }
                if (newInvoiceNo <= Convert.ToInt64(mz_invoice.CURRENT_NO))
                {
                    throw new Exception("要调整的发票号不能小于当前票号!");
                }
                BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).Update(strWhere, "CURRENT_NO =" + newInvoiceNo + "");

                return(true);
            }
            else
            {
                throw new Exception("没有找到当前在用发票记录!");
            }
        }
예제 #2
0
        /// <summary>
        /// 删除发票卷
        /// </summary>
        /// <param name="VolumnID">发票卷号</param>
        /// <remarks>
        /// 对于在用的,已用的,停用的但之前有使用过的不能删除
        /// 备用的,停用的但还未使用的可以删除
        /// </remarks>
        /// <returns></returns>
        public static bool DeleteInvoiceVolumn(int VolumnID)
        {
            ZY_INVOICE invoice = BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).GetModel(VolumnID);

            if (invoice != null)
            {
                if (invoice.STATUS == 0)
                {
                    throw new Exception("该卷发票正在使用中,不能删除");
                }
                if (invoice.STATUS == 1)
                {
                    throw new Exception("该卷发票已经有使用记录,不能删除");
                }
                if (invoice.STATUS == 3 && invoice.START_NO != invoice.CURRENT_NO)
                {
                    throw new Exception("该卷发票已停用,但有部分票据已经使用过,不能删除!\r\n如果要使用未用的票据号,请将这段票据号重新分配");
                }
            }
            try
            {
                BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).Delete(VolumnID);

                return(true);
            }
            catch (Exception err)
            {
                //ErrorWriter.WriteLog(err.Message);
                throw new Exception(err.Message + "删除票卷发生错误!");
            }
        }
예제 #3
0
 /// <summary>
 /// 判断是否是当前卷中的最后一张票号
 /// </summary>
 /// <param name="invoice">发票卷对象(数据类型: MZ_INVOICE)</param>
 /// <returns></returns>
 private static bool IsLastNumber(ZY_INVOICE invoice)
 {
     if (invoice.CURRENT_NO == invoice.END_NO)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #4
0
        /// <summary>
        /// 设置发票记录
        /// </summary>
        /// <param name="invoiceType">发票类型</param>
        /// <param name="ChargetorId">领用人ID(EmployeeId)</param>
        /// <param name="StartNo">开始号</param>
        /// <param name="EndNo">结束号</param>
        /// <param name="Operator">操作员(EmployeeId)</param>
        public static void SetInvoiceRecord(int ChargetorId, string PerfChar, int StartNo, int EndNo, int Operator)
        {
            ZY_INVOICE model_mz_invoice = new ZY_INVOICE();

            model_mz_invoice.ALLOT_DATE   = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;
            model_mz_invoice.ALLOT_USER   = Operator;
            model_mz_invoice.CURRENT_NO   = StartNo;
            model_mz_invoice.EMPLOYEE_ID  = ChargetorId;
            model_mz_invoice.END_NO       = EndNo;
            model_mz_invoice.PERFCHAR     = PerfChar;
            model_mz_invoice.INVOICE_TYPE = 0;
            model_mz_invoice.START_NO     = StartNo;
            model_mz_invoice.STATUS       = 2;

            BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).Add(model_mz_invoice);
        }
예제 #5
0
        /// <summary>
        /// 设置发票停用
        /// </summary>
        /// <param name="ID">发票卷ID</param>
        public static void SetInvoiceNoUsed(int ID)
        {
            ZY_INVOICE model_mz_invoice = null;

            model_mz_invoice = BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).GetModel(ID);

            if (model_mz_invoice != null)
            {
                if (model_mz_invoice.END_NO == model_mz_invoice.CURRENT_NO &&
                    model_mz_invoice.STATUS == 1)
                {
                    throw new Exception("本卷发票已经使用完,不能再停用!");
                }
                model_mz_invoice.STATUS = 3;
                BindEntity <ZY_INVOICE> .CreateInstanceDAL(oleDb).Update(model_mz_invoice);
            }
        }