private void FormMain_Load(object sender, EventArgs e) { //检测系统是否已经注册为正版 if (!DbPublic.getInctance().isGenuineSoftware()) { this.Text = this.Text + "(试用版)"; } else { // 如果已注册为正版,检测当初注册时硬盘序列号和本次启动机器硬盘序列号是否相同,如果相同则视为正常,否则视同一序列号多人使用 if (DbPublic.getInctance().getRegisterSoftwareKey() != SettlmentWay.getInctance().getSoftwareKey()) { MessageBoxExtend.messageWarning("同一软件序列号涉嫌多单位使用,程序将立即退出。\n如需继续使用该系统,请联系软件供应商。"); CurrentLoginUser.getInctance().delete(); Process.GetCurrentProcess().Kill(); } } // 当系统未被初始化时,单据菜单、序时簿菜单不能显示 this.menuBill.Visible = InitSubSystemSign.getInctance().isFinancialSystemInit() && InitSubSystemSign.getInctance().isBusinessSystemInit(); this.menuSquence.Visible = InitSubSystemSign.getInctance().isFinancialSystemInit() && InitSubSystemSign.getInctance().isBusinessSystemInit(); // 左侧功能按钮初始化 LoadFunctionZone(); this.WindowState = FormWindowState.Maximized; // 更新状态栏信息 string statusBarText = DbPublic.getInctance().getCurrentDateStage(); statusBarText += " "; statusBarText += "用户:" + DbPublic.getInctance().getCurrentLoginUserName(); this.toolStripStatusLabel.Text = statusBarText; }
// 业务系统初始化 private void panelBusinessInit_Click(object sender, EventArgs e) { if (!InitSubSystemSign.getInctance().isBusinessSystemInit()) { if (MessageBoxExtend.messageQuestion("确定所有的业务数据均已录入完毕并正式启用业务系统吗?")) { try { InitSubSystemSign.getInctance().initBusinessSystem(); // 把业务系统相关初始数据写到企业利润表 CompanyProfit.getInctance().initBusinessSystemBalanceInfo(); MessageBoxExtend.messageOK("业务系统初始化成功.\n重新启动应用程序,业务相关子系统便可使用."); } catch (Exception) { } } } else { MessageBoxExtend.messageWarning("业务系统已启用,不要再次启用"); } }
private void menuHelpDocument_Click(object sender, EventArgs e) { string helpFileName = ""; if (InitSubSystemSign.getInctance().isBusinessSystemInit() && InitSubSystemSign.getInctance().isFinancialSystemInit()) { helpFileName = "用户使用手册.chm"; } else { helpFileName = "系统初始化手册.chm"; } try { // 打开帮助使用手册 string path = Application.ExecutablePath; helpFileName = path.Substring(0, path.LastIndexOf("\\") + 1) + helpFileName; Process.Start(helpFileName); } catch (Exception) { MessageBoxExtend.messageWarning("帮助文件[" + helpFileName + "]不存在。"); } }
// 库存现金 private void panelMoneyData_Click(object sender, EventArgs e) { if (!InitSubSystemSign.getInctance().isFinancialSystemInit()) { FormInitAssets fia = new FormInitAssets(false); fia.ShowDialog(); } else { MessageBoxExtend.messageWarning("财务系统已启用,无法再录入期初数据"); } }
// 应付账款初始化 private void panelBusinessAccountsData_Click(object sender, EventArgs e) { if (!InitSubSystemSign.getInctance().isBusinessSystemInit()) { FormInitAccountReceivabler fiar = new FormInitAccountReceivabler(false); fiar.ShowDialog(); } else { MessageBoxExtend.messageWarning("业务系统已启用,无法再录入期初数据"); } }
// 存货数据初始化 private void panelMaterielInit_Click(object sender, EventArgs e) { if (!InitSubSystemSign.getInctance().isBusinessSystemInit()) { FormInitMateriel fim = new FormInitMateriel(); fim.ShowDialog(); } else { MessageBoxExtend.messageWarning("业务系统已启用,无法再录入期初数据"); } }
private void add_Click(object sender, EventArgs e) { // shengguang++ 2016-11-05 当业务启动后,增加功能:不能再直接增加物料库存信息 if (InitSubSystemSign.getInctance().isBusinessSystemInit()) { MessageBoxExtend.messageWarning("业务系统已启用,不能再直接添加物料库存信息,请通过物料入库方式完成此操作"); return; } // ++shengguang FormInitMaterielEdit fime = new FormInitMaterielEdit("添加物料初始资料", false); fime.ShowDialog(); updateDataGridView(Materiel.getInctance().getAllMaterielInfo()); }
private void buttonEdit_Click(object sender, EventArgs e) { this.buttonEdit.Enabled = false; // 2016-11-5 当业务系统启动后,当对物料库存信息进行编辑时,只能修改物料单价,不能修改物料数量 if (!InitSubSystemSign.getInctance().isBusinessSystemInit()) { this.textBoxPrice.Enabled = true; } else { this.textBoxValue.Enabled = false; } this.textBoxPrice.Enabled = true; this.buttonEnter.Enabled = true; }
private void setPageActionEnable() { if (InitSubSystemSign.getInctance().isBusinessSystemInit()) { SortedDictionary <int, ActionTable> list = MainProgram.model.Action.getInctance().getActionInfoFromModuleID(401); foreach (KeyValuePair <int, ActionTable> index in list) { object activeObject = this.GetType().GetField(index.Value.uiActionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this); bool isEnable = AccessAuthorization.getInctance().isAccessAuthorization(index.Value.pkey, Convert.ToString(DbPublic.getInctance().getCurrentLoginUserID())); if (activeObject != null) { UserInterfaceActonState.setUserInterfaceActonState(activeObject, ((System.Reflection.MemberInfo)(activeObject.GetType())).Name.ToString(), isEnable); } } } else { SortedDictionary <int, ActionTable> list2 = MainProgram.model.Action.getInctance().getActionInfoFromModuleID(601); foreach (KeyValuePair <int, ActionTable> index in list2) { object activeObject = this.GetType().GetField(index.Value.uiActionName, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this); bool isEnable = AccessAuthorization.getInctance().isAccessAuthorization(index.Value.pkey, Convert.ToString(DbPublic.getInctance().getCurrentLoginUserID())); if (activeObject != null) { UserInterfaceActonState.setUserInterfaceActonState(activeObject, ((System.Reflection.MemberInfo)(activeObject.GetType())).Name.ToString(), isEnable); } } } }
bool isEnable(string buttonText) { bool isRet; if (buttonText.IndexOf("初始化") != -1 || buttonText.IndexOf("基础") != -1) { isRet = true; } else if (buttonText.IndexOf("现金") != -1 || buttonText.IndexOf("银行") != -1 || buttonText.IndexOf("财务") != -1) { isRet = InitSubSystemSign.getInctance().isFinancialSystemInit(); } else { isRet = InitSubSystemSign.getInctance().isBusinessSystemInit(); } return(isRet); }
private void delete_Click(object sender, EventArgs e) { // shengguang++ 2016-11-05 当业务启动后,增加功能:不能再直接删除物料库存信息 if (InitSubSystemSign.getInctance().isBusinessSystemInit()) { MessageBoxExtend.messageWarning("业务系统已启用,不能再直接删除物料库存信息,请通过物料出库方式完成此操作"); return; } // ++shengguang if (m_currentDataGridViedRecordPkey != 0) { if (MessageBoxExtend.messageQuestion("确定删除[" + m_currentDataGridViedRecordName + "]库存信息吗?")) { InitMateriel.getInctance().delete(m_currentDataGridViedRecordPkey); updateDataGridView(Materiel.getInctance().getAllMaterielInfo()); } } }
private void buttonEnter_Click(object sender, EventArgs e) { if (textBoxPrice.Text.Length == 0) { MessageBoxExtend.messageWarning("单价不能为空"); return; } if (textBoxPrice.Text.Length > 20) { MessageBoxExtend.messageWarning("单价最大长度不能超过10"); textBoxPrice.Text = ""; return; } if (textBoxValue.Text.Length == 0) { MessageBoxExtend.messageWarning("数量不能为空"); return; } if (m_isEditMaterielData && InitSubSystemSign.getInctance().isBusinessSystemInit()) { if (MessageBoxExtend.messageQuestion("请确认是否要对[" + m_materielName + "]的成本进行调整,这将会影响到此物料实时库存的加权单价?")) { // 第一步 插入插入到存货明细表(STORAGE_STOCK_DETAIL),已解决实际库存和历史库存信息可能不对应的问题 StorageStockDetailTable storageStockDetailRecord = new StorageStockDetailTable(); storageStockDetailRecord.materielID = m_materielPkey; storageStockDetailRecord.tradingDate = DateTime.Now.ToString("yyyyMMdd"); storageStockDetailRecord.billNumber = BillNumber.getInctance().getNewBillNumber(20, DateTime.Now.ToString("yyyy-MM-dd")); storageStockDetailRecord.thingsType = "期初成本调整"; storageStockDetailRecord.isIn = 3; storageStockDetailRecord.value = 0; storageStockDetailRecord.price = 0; // 交易完毕后数量和单价 InitMaterielTable materielStorageData = InitMateriel.getInctance().getMaterielInfoFromMaterielID(m_materielPkey); storageStockDetailRecord.storageValue = materielStorageData.value; storageStockDetailRecord.storagePrice = Convert.ToDouble(this.textBoxPrice.Text.ToString()); StorageStockDetail.getInctance().insert(storageStockDetailRecord); // 第二步 更新实时库存表(INIT_STORAGE_STOCK) InitMaterielTable record = new InitMaterielTable(); record.materielID = m_materielPkey; record.price = Convert.ToDouble(this.textBoxPrice.Text.ToString()); record.value = Convert.ToDouble(this.textBoxValue.Text.ToString()); if (!m_isEditMaterielData) { InitMateriel.getInctance().insert(record); } else { InitMateriel.getInctance().update(m_storageStockTablePkey, record); } m_isAddToInitMaterielList = true; this.Close(); } } }
private DbPublic() { m_softwareKey = InitSubSystemSign.getInctance().getRegistersSoftwareKey(); m_isGenuineSoftware = m_softwareKey.Length == 0 ? false : true; }
private void buttonSend_Click(object sender, EventArgs e) { if (textBoxTel.Text.Length == 0) { MessageBoxExtend.messageWarning("联系电话不能为空"); return; } // 6MY5O-8R6G2-F08WF-YDABG-QCWCH string keyGroup1 = this.textBoxKey1.Text; string keyGroup2 = this.textBoxKey2.Text; string keyGroup3 = this.textBoxKey3.Text; string keyGroup4 = this.textBoxKey4.Text; string keyGroup5 = this.textBoxKey5.Text; /* 注册函数逻辑 * 1、判断是否系统已经被注册为正版软件 * 如果是,提示用户无需要重复注册。 * 如果不是,进行步骤2 * 2、验证序列号格式:判断下每组序列号长度是否为5 * 如果不是,则说明序列号格式错误 * 如果是,则进行步骤3 * 3、验证序列号是否是正版序列号 * 如果不是,则提示用户 序列号错误,请联系软件供应商,索取正版序列号。 * 如果是,则进行步骤4 * 4、查询邮件服务器,看是否次序列号已经被其他单位或企业注册过 * 如果已被注册过,说明客户拿到的序列号不是软件供应商提供的全新序列号,是从其他单位借的,或其他 * 如果没有注册过,说明次序列号为全新序列号,执行步骤5 * 5、把序列号信息保存到数据库,分别保存到INIT_SUB_SYSTEM_SIGN表和BASE_SETTLMENT_WAY表,确保不太容易被破解 * 6、发送邮件:邮件标题为:序列号。正为是序列号 + 当前注册日期 * */ if (keyGroup1.Length != 5 || keyGroup2.Length != 5 || keyGroup3.Length != 5 || keyGroup4.Length != 5 || keyGroup5.Length != 5) { MessageBoxExtend.messageWarning("序列号错误,请联系软件供应商,索取正版序列号。"); } else { if (DbPublic.getInctance().isGenuineSoftware()) { MessageBoxExtend.messageWarning("软件已注册为正版,不需要重复注册"); } else { TivLog.Logger.Info("开始验证是否是正版序列号..."); if (serialNumberManager.checkKey(keyGroup1, keyGroup2, 5) && serialNumberManager.checkKey(keyGroup2, keyGroup3, 10) && serialNumberManager.checkKey(keyGroup3, keyGroup4, 15) && serialNumberManager.checkKey(keyGroup4, keyGroup5, 20)) { TivLog.Logger.Info("序列号验证通过,开始查找是否已经被注册过"); try { string serialNumber = keyGroup1 + keyGroup2 + keyGroup3 + keyGroup4 + keyGroup5; if (serialNumberManager.serialNumberIsExist(serialNumber)) { MessageBoxExtend.messageWarning("注册失败!此序列号已被使用,请联系软件供应商,重新索取序列号。"); } else { TivLog.Logger.Info("序列号验未被使用,开始注册工作..."); serialNumberManager.sendSerialNumberEmail(serialNumber, serialNumber + this.textBoxTel.Text); TivLog.Logger.Info("邮件发送成功,开始写数据库"); // 插入到INIT_SUB_SYSTEM_SIGN InitSubSystemSign.getInctance().register(serialNumber); // 插入到BASE_SETTLMENT_WAY SettlmentWayTable record = new SettlmentWayTable(); record.name = serialNumber; record.subjectID = "#####"; SettlmentWay.getInctance().insert(record, false); TivLog.Logger.Info("数据库更新成功,序列号注册成功"); MessageBoxExtend.messageOK("感谢您注册并激活产品"); } } catch (Exception exp) { TivLog.Logger.Error(exp.ToString()); MessageBoxExtend.messageWarning("注册失败!可能因为网络未联通或网络堵塞等原因造成,请稍后重新"); } } else { MessageBoxExtend.messageError("序列号错误,请联系软件供应商,索取正版序列号。"); } } this.Close(); } }