Example #1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.dtsWillBeStore.Tables[0].Rows.Count <= 0)
            {
                return;
            }
            if (this.txtPayOffName.Text.Trim() == "")
            {
                CommUI.MsgOK("工资发放名称不能为空!");
                this.txtPayOffName.Focus();
                return;
            }
            PayOffLogic oExec = new PayOffLogic();

            if (oExec.IsExistPayName(this.txtPayOffName.Text.Trim()))
            {
                CommUI.AlertError("工资发放名称己经存在,请修改!");
                this.txtPayOffName.Focus();
                return;
            }

            PayOffDTS dtsPayOff = new PayOffDTS();

            foreach (DataRow oRow in this.dtsWillBeStore.Tables[0].Rows)
            {
                PayOffDTS.payOffGatherRow drPayOffGather = dtsPayOff.payOffGather.NewpayOffGatherRow();
                drPayOffGather.piId       = long.Parse(oRow["员工标识"].ToString());
                drPayOffGather.realIncome = decimal.Parse(oRow["实领工资"].ToString());
                drPayOffGather.month      = this.datePayOff.Value;
                drPayOffGather.inputDate  = DateTime.Now;
                drPayOffGather.cHumanName = oRow["员工姓名"].ToString();
                drPayOffGather.inputMan   = this.UserName;
                drPayOffGather.name       = this.txtPayOffName.Text.Trim();
                dtsPayOff.payOffGather.AddpayOffGatherRow(drPayOffGather);
                foreach (DataColumn oColumn in this.dtsWillBeStore.Tables[0].Columns)
                {
                    // 判断每一列是否为薪水项
                    PayRollItem oPayRollItem = this.strHeader.Where(arg => arg.Name == oColumn.ColumnName).FirstOrDefault();
                    if (oPayRollItem != null)
                    {
                        PayOffDTS.payOffDetailRow drPayOffDetail = dtsPayOff.payOffDetail.NewpayOffDetailRow();
                        drPayOffDetail.paid     = oPayRollItem.ID;
                        drPayOffDetail.piId     = drPayOffGather.piId;
                        drPayOffDetail.money    = oRow[oColumn].ToString() == "" ? 0m : decimal.Parse(oRow[oColumn].ToString());
                        drPayOffDetail.month    = drPayOffGather.month.Month;
                        drPayOffDetail.inputMan = this.UserName;
                        dtsPayOff.payOffDetail.AddpayOffDetailRow(drPayOffDetail);
                    }
                }
            }

            oExec.AddPayOff(dtsPayOff);
            CommUI.MsgOK();
            this.dtsWillBeStore.Tables[0].Rows.Clear();
        }
Example #2
0
 /*
  * 方法名称:AddPayOff
  * 方法功能描述:发放工资
  *
  * 创建人:杨林
  * 创建时间:2009-03-12
  *
  * 修改人:
  * 修改时间:
  * 修改内容:
  *
  */
 /// <summary>
 /// 发放工资
 /// </summary>
 /// <param name="args">工资数据集</param>
 /// <param name="strMsg">返回的错误信息</param>
 /// <returns>结果为真代表成功,否则失败,错误信息在strMsg中</returns>
 public void AddPayOff(PayOffDTS args)
 {
     try
     {
         new PayOffDB().InsertPayOff(args);
     }
     catch (System.Exception e)
     {
         new DasherStation.common.Logging().LogWrite(new DasherStation.common.LogEntry()
         {
             ID = 0, LogEx = e, LogMessage = e.Message + ":" + e.StackTrace
         });
         throw;
     }
 }
Example #3
0
        /*
         * 方法名称:InsertPayOff
         * 方法功能描述:插入工资
         *
         * 创建人:杨林
         * 创建时间:2009-03-12
         *
         * 修改人:
         * 修改时间:
         * 修改内容:
         *
         */
        /// <summary>
        /// 插入工资
        /// </summary>
        /// <param name="args">工资强类型</param>
        /// <returns></returns>
        public void InsertPayOff(PayOffDTS args)
        {
            if (args.payOffGather.Count <= 0)
            {
                return;
            }
            using (System.Transactions.TransactionScope oScope = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required, TimeSpan.MaxValue))
            {
                using (System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(new DasherStation.common.SqlHelper().SqlConn))
                {
                    sqlConn.Open();
                    System.Data.SqlClient.SqlCommand cmdExec = new System.Data.SqlClient.SqlCommand();
                    cmdExec.Connection = sqlConn;
                    foreach (PayOffDTS.payOffGatherRow oRow in args.payOffGather.Rows)
                    {
                        cmdExec.Parameters.Clear();
                        cmdExec.CommandText = @"
INSERT INTO [dbo].[payOffGather] ([piId], [realIncome], [date], [inputDate], [inputMan], name) 
VALUES (@piId, @realIncome, @month, getdate(), @inputMan, @name);select SCOPE_IDENTITY()";
                        cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@piId", oRow.IspiIdNull() ? (object)System.DBNull.Value : oRow.piId));
                        cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@realIncome", oRow.IsrealIncomeNull() ? (object)System.DBNull.Value : oRow.realIncome));
                        cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@month", oRow.IsmonthNull() ? (object)System.DBNull.Value : oRow.month));
                        cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@inputMan", oRow.IsinputManNull() ? (object)System.DBNull.Value : oRow.inputMan));
                        cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", oRow.name));
                        // 插入人员实际所得;
                        string strPogId = cmdExec.ExecuteScalar().ToString();

                        // 遍历薪水项目将该项及值插入到数据库payOffDetail(薪水发放明细表)中.
                        foreach (PayOffDTS.payOffDetailRow rollRow in args.payOffDetail.Where(arg => arg.piId == oRow.piId))
                        {
                            rollRow.pogId = int.Parse(strPogId);
                            cmdExec.Parameters.Clear();
                            cmdExec.CommandText = @"
INSERT INTO [dbo].[payOffDetail] ([paid], [piId], [money], [month], [inputDate], [inputMan],pogid) 
VALUES (@paid, @piId, @money, @month, getDate(), @inputMan, @pogid)";
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@paid", rollRow.IspaidNull() ? (object)System.DBNull.Value : rollRow.paid));
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@piId", rollRow.IspiIdNull() ? (object)System.DBNull.Value : rollRow.piId));
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@money", rollRow.IsmoneyNull() ? (object)System.DBNull.Value : rollRow.money));
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@month", rollRow.IsmonthNull() ?(object)System.DBNull.Value : rollRow.month));
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@inputMan", rollRow.IsinputManNull() ? (object)System.DBNull.Value : rollRow.inputMan));
                            cmdExec.Parameters.Add(new System.Data.SqlClient.SqlParameter("@pogid", rollRow.IspogIdNull() ? (object)System.DBNull.Value : rollRow.pogId));
                            cmdExec.ExecuteNonQuery();
                        }
                    }
                }
                oScope.Complete();
            }
        }