Exemplo n.º 1
0
        /// <summary>
        /// 收款的新增和修改
        /// Created:20170328(ChengMengjia)
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public JsonResult SaveSK(Receivables entity)
        {
            JsonResult jsonreslut = new JsonResult();

            try
            {
                if (string.IsNullOrEmpty(entity.ID))
                {
                    new Repository <Receivables>().Insert(entity, true);
                }
                else
                {
                    new Repository <Receivables>().Update(entity, true);
                }
                jsonreslut.result = true;
                jsonreslut.msg    = "保存成功!";
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex, LogType.BussinessDLL);
                jsonreslut.result = false;
                jsonreslut.msg    = ex.Message;
            }
            return(jsonreslut);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 计算业务员业绩
        /// </summary>
        /// <param name="row"></param>
        /// <param name="recType"></param>
        /// <param name="rate"></param>
        /// <param name="isHold"></param>
        private void SalesPerformance(DataRow row, Receivables recType, double rate, PerformanceType type, bool isHold = false)
        {
            string sql       = string.Empty;
            string salesID   = string.Empty;
            string salesName = string.Empty;
            string deptID    = string.Empty;

            deptID = GetDeptID(row["SalesID"].ToString(), row["ReceiptDate"].ToString()); //调岗时认购业务员也默认此部门,目前此字段无用

            if (isHold)
            {
                salesID   = row["SubscribeSalesID"].ToString();
                salesName = row["SubscribeSalesName"].ToString();
            }
            else
            {
                salesID   = row["SalesID"].ToString();
                salesName = row["SalesName"].ToString();
            }

            string performance = Math.Round(double.Parse(row["RecSettleTotal"].ToString()) * rate / 100, 0, MidpointRounding.AwayFromZero).ToString();

            sql = "insert into PerformanceDetail (SettleDID,SettleID,SalesID,SalesName,DeptID,ReceiptDate, "
                  + "ReceiptTypeCode,ReceiptTypeName,ItemTypeCode,ItemTypeName,ReceiptAmount,Performance,PerformanceType,SalesType) "
                  + " values ( "
                  + row["ID"].ToString()
                  + "," + row["SettleID"].ToString()
                  + "," + salesID
                  + ",'" + salesName + "'"
                  + "," + deptID
                  + ",'" + row["ReceiptDate"].ToString() + "'"
                  + "," + (int)recType
                  + ",'" + recType + "'"
                  + "," + row["ItemTypeCode"].ToString()
                  + ",'" + row["ItemTypeName"].ToString() + "'"
                  + "," + row["RecSettleTotal"].ToString()
                  + "," + performance
                  + "," + (int)type
                  + ",'员工'"
                  + ")";

            SqlHelper.ExecuteNonQuery(sql);
        }
Exemplo n.º 3
0
        //主管业务统计
        private void MngPerformance(DataRow row, Receivables recType, string deptID, string recSalesID)
        {
            string sql       = string.Empty;
            string salesID   = string.Empty;
            string salesName = string.Empty;



            string recDate = row["ReceiptDate"].ToString();

            //主管ID
            sql = string.Format("select SalesID, SalesName from JobTrack where JobType = '主管' and DeptID = {0} and ((BeginDate <= '{1}' and EndDate > '{1}') or (BeginDate <= '{1}' and EndDate is null))", deptID, recDate);
            DataTable dtMng = SqlHelper.ExecuteDataTable(sql);

            foreach (DataRow dr in dtMng.Rows)
            {
                salesID   = dr["SalesID"].ToString();
                salesName = dr["SalesName"].ToString();


                if (salesID == recSalesID)
                {
                    continue; //主管与员工为同一人时,不计算主管业务
                }

                PerformanceType performanceType = PerformanceType.own;
                double          rate            = 100;

                sql = string.Format("select SalesID from JobTrack where DeptID = {0} and ((BeginDate <= '{1}' and EndDate > '{1}') or (BeginDate <= '{1}' and EndDate is null)) and SalesID = {2}", deptID, row["SubscribeDate"].ToString(), dr["SalesID"].ToString());

                object objResult = SqlHelper.ExecuteScalar(sql);
                if (objResult == null)                           //认购时间与任职期间不匹配,为分配业绩
                {
                    drRate          = dtRate.Select("Code = 1"); //allot
                    rate            = double.Parse(drRate[0]["Rate"].ToString());
                    performanceType = PerformanceType.allot;
                }


                string performance = Math.Round(double.Parse(row["RecSettleTotal"].ToString()) * rate / 100, 0, MidpointRounding.AwayFromZero).ToString();

                sql = "insert into PerformanceDetail (SettleDID,SettleID,SalesID,SalesName,DeptID,ReceiptDate, "
                      + "ReceiptTypeCode,ReceiptTypeName,ItemTypeCode,ItemTypeName,ReceiptAmount,Performance,PerformanceType, SalesType) "
                      + " values ( "
                      + row["ID"].ToString()
                      + "," + row["SettleID"].ToString()
                      + "," + salesID
                      + ",'" + salesName + "'"
                      + "," + deptID
                      + ",'" + row["ReceiptDate"].ToString() + "'"
                      + "," + (int)recType
                      + ",'" + recType + "'"
                      + "," + row["ItemTypeCode"].ToString()
                      + ",'" + row["ItemTypeName"].ToString() + "'"
                      + "," + row["RecSettleTotal"].ToString()
                      + "," + performance
                      + "," + (int)performanceType
                      + ",'主管'"
                      + ")";

                SqlHelper.ExecuteNonQuery(sql);
            }

            string parentDeptID = GetParentDeptID(deptID);

            if ((parentDeptID != "") && (parentDeptID != "0"))
            {
                MngPerformance(row, recType, parentDeptID, recSalesID);
            }
        }
Exemplo n.º 4
0
        private void Performance()
        {
            string settleId = dataGridView_SettleMain.CurrentRow.Cells["ColSettleID"].Value.ToString();
            string sql      = string.Format("select ID, SettleID, ContractID, ItemTypeCode, ItemTypeName, SubscribeDate, SubscribeSalesID,SubscribeSalesName, ReceiptDate, SalesID, SalesName, RecSettleTotal, FirstSettle from SettleDetail where SettleID = {0}", settleId);

            DataTable dtSettleDetail = SqlHelper.ExecuteDataTable(sql);

            foreach (DataRow drSettle in dtSettleDetail.Rows)
            {
                double rate = 0;

                if (drSettle["FirstSettle"].ToString().Equals("1")) //成销
                {
                    PerformanceType performanceType = GetSalesPerformanceType(drSettle["SubscribeSalesID"].ToString(), drSettle["SalesID"].ToString());

                    switch (performanceType)
                    {
                    case PerformanceType.own:      //个人
                        SalesPerformance(drSettle, Receivables.成销, 100, performanceType);
                        break;

                    case PerformanceType.allot:             //分配
                        drRate = dtRate.Select("Code = 1"); //allot
                        rate   = double.Parse(drRate[0]["Rate"].ToString());

                        SalesPerformance(drSettle, Receivables.成销, rate, performanceType);

                        break;

                    case PerformanceType.hold:              //调岗
                        drRate = dtRate.Select("Code = 2"); //hold

                        rate = double.Parse(drRate[0]["Rate"].ToString());

                        SalesPerformance(drSettle, Receivables.成销, rate, performanceType, true);


                        drRate = dtRate.Select("Code = 3");     //takeover

                        rate = double.Parse(drRate[0]["Rate"].ToString());

                        SalesPerformance(drSettle, Receivables.成销, rate, performanceType);

                        break;
                    }

                    string myid = drSettle["ID"].ToString();

                    Console.WriteLine("the ID: " + myid);

                    string deptID = GetDeptID(drSettle["SalesID"].ToString(), drSettle["ReceiptDate"].ToString());

                    MngPerformance(drSettle, Receivables.成销, deptID, drSettle["SalesID"].ToString());
                }
                else
                {
                    sql = string.Format("select a.ID, a.SettleID, ItemTypeCode, ItemTypeName, SubscribeDate, SubscribeSalesID,SubscribeSalesName,"
                                        + "b.SalesID, b.SalesName, RecDate as ReceiptDate, b.Amount as RecSettleTotal,TypeCode from SettleDetail a "
                                        + "inner join Receipt b on a.ContractID = b.ContractID and a.SettleID = b.SettleState "
                                        + "where a.ContractID = {0} and SettleState = {1}", drSettle["ContractID"].ToString(), settleId);

                    DataTable dtReceipt = SqlHelper.ExecuteDataTable(sql);

                    foreach (DataRow drReceipt in dtReceipt.Rows)
                    {
                        PerformanceType performanceType = GetSalesPerformanceType(drReceipt["SubscribeSalesID"].ToString(), drReceipt["SalesID"].ToString());

                        Receivables recType = (Receivables)int.Parse(drReceipt["TypeCode"].ToString());

                        switch (performanceType)
                        {
                        case PerformanceType.own:      //个人
                            SalesPerformance(drReceipt, recType, 100, performanceType);
                            break;

                        case PerformanceType.allot:             //分配
                            drRate = dtRate.Select("Code = 1"); //allot
                            rate   = double.Parse(drRate[0]["Rate"].ToString());

                            SalesPerformance(drReceipt, recType, rate, performanceType);

                            break;

                        case PerformanceType.hold:              //调岗
                            drRate = dtRate.Select("Code = 2"); //hold

                            rate = double.Parse(drRate[0]["Rate"].ToString());

                            SalesPerformance(drReceipt, recType, rate, performanceType, true);


                            drRate = dtRate.Select("Code = 3");     //takeover

                            rate = double.Parse(drRate[0]["Rate"].ToString());

                            SalesPerformance(drReceipt, recType, rate, performanceType);

                            break;
                        }

                        string deptID = GetDeptID(drReceipt["SalesID"].ToString(), drSettle["ReceiptDate"].ToString());

                        MngPerformance(drReceipt, recType, deptID, drReceipt["SalesID"].ToString());
                    }
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 收款-保存
        /// Created:20170328(ChengMengjia)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            Receivables entity = new Receivables();

            entity.ID      = txtSBatchNo.Tag == null ? "" : txtSBatchNo.Tag.ToString();
            entity.PID     = ProjectId;
            entity.BatchNo = txtSBatchNo.Text;
            ComboItem item = (ComboItem)cbSFinishStatus.SelectedItem;

            if (item != null)
            {
                entity.FinishStatus = int.Parse(item.Value.ToString());
            }
            entity.Ratio = intSRatio.Value;
            decimal temp = 0;

            decimal.TryParse(txtAmount.Text, out temp);
            entity.Amount      = temp;
            entity.Condition   = txtSCondition.Text;
            entity.Remark      = txtSRemark.Text;
            entity.InDate      = dtSInDate.Value;
            entity.Explanation = txtExplanation.Text.ToString();
            #region 判断空值
            if (string.IsNullOrEmpty(entity.BatchNo))
            {
                MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "收款批次");
                return;
            }
            //if (entity.FinishStatus == null)
            //{
            //    MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "完成情况");
            //    return;
            //}
            //if (entity.Ratio == null)
            //{
            //    MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "收款比例");
            //    return;
            //}
            //if (entity.Amount == null)
            //{
            //    MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "收款金额");
            //    return;
            //}
            //if (string.IsNullOrEmpty(entity.Condition))
            //{
            //    MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "收款条件");
            //    return;
            //}
            //if (entity.InDate == null || entity.InDate == DateTime.Parse("0001/1/1 0:00:00"))
            //{
            //    MessageHelper.ShowMsg(MessageID.W000000001, MessageType.Alert, "收款日期");
            //    return;
            //}
            #endregion
            JsonResult result = bll.SaveSK(entity);
            MessageHelper.ShowRstMsg(result.result);
            if (result.result)
            {
                btnSClear_Click(sender, e);
                LoadSK();
            }
        }