Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        // 业务系统初始化
        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("业务系统已启用,不要再次启用");
            }
        }
Esempio n. 3
0
        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 + "]不存在。");
            }
        }
Esempio n. 4
0
 // 库存现金
 private void panelMoneyData_Click(object sender, EventArgs e)
 {
     if (!InitSubSystemSign.getInctance().isFinancialSystemInit())
     {
         FormInitAssets fia = new FormInitAssets(false);
         fia.ShowDialog();
     }
     else
     {
         MessageBoxExtend.messageWarning("财务系统已启用,无法再录入期初数据");
     }
 }
Esempio n. 5
0
 // 应付账款初始化
 private void panelBusinessAccountsData_Click(object sender, EventArgs e)
 {
     if (!InitSubSystemSign.getInctance().isBusinessSystemInit())
     {
         FormInitAccountReceivabler fiar = new FormInitAccountReceivabler(false);
         fiar.ShowDialog();
     }
     else
     {
         MessageBoxExtend.messageWarning("业务系统已启用,无法再录入期初数据");
     }
 }
Esempio n. 6
0
 // 存货数据初始化
 private void panelMaterielInit_Click(object sender, EventArgs e)
 {
     if (!InitSubSystemSign.getInctance().isBusinessSystemInit())
     {
         FormInitMateriel fim = new FormInitMateriel();
         fim.ShowDialog();
     }
     else
     {
         MessageBoxExtend.messageWarning("业务系统已启用,无法再录入期初数据");
     }
 }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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;
        }
Esempio n. 9
0
        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);
                    }
                }
            }
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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());
                }
            }
        }
Esempio n. 12
0
        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();
                }
            }
        }
Esempio n. 13
0
 private DbPublic()
 {
     m_softwareKey       = InitSubSystemSign.getInctance().getRegistersSoftwareKey();
     m_isGenuineSoftware = m_softwareKey.Length == 0 ? false : true;
 }
Esempio n. 14
0
        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();
            }
        }