/// <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("没有找到当前在用发票记录!"); } }
/// <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 + "删除票卷发生错误!"); } }
/// <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); } }
/// <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); }
/// <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); } }