Esempio n. 1
0
        public void ApplyInterest_Tests()
        {
            CashFlowService cashFlow = new CashFlowService();

            decimal balance = cashFlow.ApplyInterest(-1000m, -100m);

            Assert.Equal(0.83m, balance);
        }
Esempio n. 2
0
        public void GenerateBalance_Tests()
        {
            CashFlowService cashFlow = new CashFlowService();

            decimal balance = cashFlow.GenerateBalance(1000m, 500m, 500m);

            Assert.Equal(0m, balance);
        }
        public Result <CashFlow> Get(int optionId)
        {
            Result <CashFlow> result          = new Result <CashFlow>();
            CashFlowService   cashFlowService = new CashFlowService();

            result.Value     = cashFlowService.Get(optionId);
            result.IsSuccess = true;
            return(result);
        }
        public Result Delete(CashFlow cashFlow)
        {
            var result = new Result();

            try
            {
                CashFlowService cashFlowService = new CashFlowService();
                cashFlowService.Delete(cashFlow);
                result.IsSuccess = true;
            }
            catch (Exception exception)
            {
                result.IsSuccess     = false;
                result.ExceptionInfo = exception;
            }
            return(result);
        }
Esempio n. 5
0
        public void GetCashflowService_Tests()
        {
            List <Transaction> transactions = new List <Transaction>();

            transactions.Add(new Transaction()
            {
                Bank            = "ContaStone",
                Account         = "001",
                Value           = 102.75m,
                Kind            = TransactionKind.Entrie,
                Description     = "Teste",
                TransactionDate = DateTime.Now,
                Document        = "0123456789",
                Charges         = 2.75m,
                LaunchDate      = DateTime.Now.AddDays(3)
            });

            transactions.Add(new Transaction()
            {
                Bank            = "ContaStone",
                Account         = "001",
                Value           = 5m,
                Kind            = TransactionKind.Exit,
                Description     = "Teste",
                TransactionDate = DateTime.MaxValue,
                Document        = "0123456789",
                Charges         = 0m,
                LaunchDate      = DateTime.Now.AddDays(6)
            });

            CashFlowService cashFlow = new CashFlowService();

            List <CashFlow> cashFlows = cashFlow.GetCashFow(transactions);

            Assert.NotNull(cashFlows);
            Assert.Equal(2, cashFlows.Count);
            Assert.Equal(100m, cashFlows[0].Total);
            Assert.Equal(-4.9585M, cashFlows[1].Total);
            Assert.Equal(100m, cashFlows[0].PositionOfTheDay);
            Assert.Equal(-104.9585M, cashFlows[1].PositionOfTheDay);
        }
Esempio n. 6
0
        public void Execute()
        {
            //OA系统每天晚上23:55,准时发起,一个任务,就是点击缓存按钮的动作,这样我们可以获得 当天的数据的快速列表印象。
            if (DateTime.Now.Hour == 22 && DateTime.Now.Minute == 00)
            {
                ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-缓存! - {0}", DateTime.Now), "");
                new JXC_REPORTService().CatchData();
                ServiceAppSetting.LoggerHander.Invoke(string.Format("结束-缓存! - {0}", DateTime.Now), "");
            }
            ServiceAppSetting.LoggerHander.Invoke(string.Format("do! {0}", DateTime.Now), "");
            //每天早上1,2,3点处理最高值
            if ((DateTime.Now.Hour == 1 || DateTime.Now.Hour == 2 || DateTime.Now.Hour == 3) && DateTime.Now.Minute == 0)
            {
                ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-最高金额! - {0}", DateTime.Now), "");
                CashFlowService cashFlowService = new CashFlowService();
                List <CashFlow> cashFlowList    = cashFlowService.GetListArray(" AND IsClose=0");

                using (SqlConnection conn = DBHelp.getConn())
                {
                    conn.Open();
                    SqlCommand objCommand = conn.CreateCommand();
                    try
                    {
                        objCommand.Parameters.Clear();
                        foreach (var model in cashFlowList)
                        {
                            cashFlowService.Update(model, objCommand);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
                ServiceAppSetting.LoggerHander.Invoke(string.Format("结束-最高金额! - {0}", DateTime.Now), "");
            }
            if (DateTime.Now.Hour == 23 && DateTime.Now.Minute <= 5)
            {
                ServiceAppSetting.LoggerHander.Invoke(string.Format("执行一次! - {0}", DateTime.Now), "");
                int currentYear  = DateTime.Now.Year;
                int currentMonth = DateTime.Now.Month;

                int nextYear  = DateTime.Now.AddMonths(1).Year;
                int nextMonth = DateTime.Now.AddMonths(1).Month;

                int currentZhangQi = GetZhouQi(currentMonth);
                int nextZhangQi    = GetZhouQi(nextMonth);
                //if (currentZhangQi == nextZhangQi && currentYear == nextYear)
                //{
                //    return;
                //}

                List <GuestProBaseInfo> guestProBaseInfos = new GuestProBaseInfoService().GetListArray("GuestPro=1");

                TB_GuestTrackService GuestTrackSer = new TB_GuestTrackService();
                string sql = string.Format(" 1=1 and QuartNo='{1}' and YearNo='{0}' ", currentYear, currentZhangQi);
                sql += string.Format(@" and (TB_GuestTrack.id in (select allE_id from tb_EForm where proId in (
select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') and state='通过') or TB_GuestTrack.id not in (select allE_id from tb_EForm where proId in (
select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') ))");
                List <TB_GuestTrack> GuestTracks = GuestTrackSer.GetListArray(sql);

                using (SqlConnection conn = DBHelp.getConn())
                {
                    conn.Open();
                    SqlTransaction tan        = conn.BeginTransaction();
                    SqlCommand     objCommand = conn.CreateCommand();
                    objCommand.Transaction = tan;

                    try
                    {
                        objCommand.Parameters.Clear();
                        foreach (var model in GuestTracks)
                        {
                            //if (currentZhangQi == 4)
                            //{
                            //    if (model.MyGuestProString == "自我开拓")
                            //    {
                            //        model.MyGuestPro = 2;
                            //    }
                            //}
                            model.QuartNo    = nextZhangQi.ToString();
                            model.YearNo     = nextYear.ToString();
                            model.CreateTime = DateTime.Now;



                            string secondUpdate = GuestTrackSer.UpdateToString(model, model.GuestId, nextYear.ToString(), nextZhangQi.ToString());
                            if (model.MyGuestProString == "自我开拓")
                            {
                                //我们的系统在每个季度的最后一天的晚上12点会自动同步客户信息到下一个季度,我们定义
                                //.  如该客户目前的属性是自我开拓,该客户从登记之日起,加上自我开拓的有效期月数数字对应的日期,
                                //如小于(<) 新季度第一天,新季度的客户的属性变成 原有资源,否则 还是自我开拓
                                if (DateTime.Now.Month == 3 || DateTime.Now.Month == 6 || DateTime.Now.Month == 9 || DateTime.Now.Month == 12)
                                {
                                    if (DateTime.Now.Day == DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month) &&
                                        model.Time.AddMonths(guestProBaseInfos[0].GuestMonth) < Convert.ToDateTime(nextYear + "-" + nextMonth + "-01"))
                                    {
                                        model.MyGuestPro = 2;
                                    }
                                }
                            }
                            string update = GuestTrackSer.AddToString(model);

                            string updateSql = string.Format("if not exists(select id from TB_GuestTrack where guestId='{0}' and yearNo='{1}' and QuartNo='{2}')begin {3} end else begin {4} end",
                                                             model.GuestId, nextYear.ToString(), nextZhangQi.ToString(), update, secondUpdate);
                            objCommand.CommandText = updateSql;
                            objCommand.ExecuteNonQuery();
                        }

                        tan.Commit();
                        ServiceAppSetting.LoggerHander.Invoke(string.Format("执行成功! - {0}", DateTime.Now), "");
                    }
                    catch (Exception)
                    {
                        tan.Rollback();
                        ServiceAppSetting.LoggerHander.Invoke(string.Format("账期执行失败! - {0}", DateTime.Now), "Error");
                    }
                }
            }

            ////增加金蝶发票处理工具
            //var kISModel = new KISService().GetKIS();
            //var invoiceDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + kISModel.InvoiceDate);
            //var payableDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + kISModel.PayableDate);

            //if (DateTime.Now.Hour == invoiceDate.Hour && DateTime.Now.Minute == invoiceDate.Minute)
            //{
            //    var invoiceJob = new Thread(delegate ()
            //    {
            //        try
            //        {
            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-开始! - {0}", DateTime.Now), "");

            //            var kisServer = new KISService();
            //            var invoicesList = kisServer.GetInvoiceErrorInfo(kISModel.AccountName);
            //            if (invoicesList.Count > 0)
            //            {
            //                ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
            //                return;
            //            }

            //            //获取选中的数据库连接
            //            string newConn = KISService.KISDBConn.Replace("AcctCtl", kISModel.AccountName);
            //            KISService.ExeCommand("Invoice_Proc", newConn, Convert.ToDateTime(kISModel.InvoiceFrom), Convert.ToDateTime(kISModel.InvoiceTo));
            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-结束! - {0}", DateTime.Now), "");

            //        }
            //        catch (Exception ex)
            //        {
            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Invoice_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
            //        }

            //    })
            //    { IsBackground = true };
            //    invoiceJob.Start();
            //}

            //if (DateTime.Now.Hour == payableDate.Hour && DateTime.Now.Minute == payableDate.Minute)
            //{
            //    var payableJob = new Thread(delegate ()
            //    {
            //        try
            //        {
            //            var kisServer = new KISService();
            //            var payableList = kisServer.GetPayaleErrorInfo(kISModel.AccountName);
            //            if (payableList.Count > 0)
            //            {
            //                ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-存在重复发票号数据,JOB 停止!", DateTime.Now), "");
            //                return;
            //            }

            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-开始! - {0}", DateTime.Now), "");
            //            //获取选中的数据库连接
            //            string newConn = KISService.KISDBConn.Replace("AcctCtl", kISModel.AccountName);
            //            KISService.ExeCommand("Payable_Proc", newConn, Convert.ToDateTime(kISModel.PayableFrom), Convert.ToDateTime(kISModel.PayableTo));
            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-结束! - {0}", DateTime.Now), "");
            //        }
            //        catch (Exception ex)
            //        {
            //            ServiceAppSetting.LoggerHander.Invoke(string.Format("Payable_Proc-结束! - {0},执行异常,请检查!错误信息:{1}", DateTime.Now, ex.Message), "");
            //        }
            //    })
            //    { IsBackground = true };
            //    payableJob.Start();
            //}
        }
Esempio n. 7
0
        public void Execute(IJobExecutionContext context)
        {
            lock (Tclock)
            {
                var content = DateTime.Now.ToString() + "do !\r\n";
                //模拟运行该任务需要15秒
                try
                {
                    //OA系统每天晚上23:55,准时发起,一个任务,就是点击缓存按钮的动作,这样我们可以获得 当天的数据的快速列表印象。
                    if (DateTime.Now.Hour == 19 && DateTime.Now.Minute == 45)
                    {
                        ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-缓存! 1- {0}", DateTime.Now), "");
                        new JXC_REPORTService().CatchData();
                        ServiceAppSetting.LoggerHander.Invoke(string.Format("结束-缓存! 1- {0}", DateTime.Now), "");
                    }

                    //每天早上1,2,3点处理最高值
                    //  if (DateTime.Now.Hour ==10 && DateTime.Now.Minute == 40)
                    if (DateTime.Now.Hour == 2 && DateTime.Now.Minute == 00)
                    {
                        //ServiceAppSetting.LoggerHander.Invoke(string.Format("执行-最高金额! - {0}", DateTime.Now), "");
                        content += "执行最高金额";
                        CashFlowService cashFlowService = new CashFlowService();
                        //List<CashFlow> cashFlowList = cashFlowService.GetListArray(" and IsClose=0");
                        List <CashFlow> cashFlowList = cashFlowService.GetListArray("");

                        using (SqlConnection conn = DBHelp.getConn())
                        {
                            conn.Open();
                            SqlCommand objCommand = conn.CreateCommand();
                            try
                            {
                                objCommand.Parameters.Clear();
                                foreach (var model in cashFlowList)
                                {
                                    cashFlowService.Update(model, objCommand);
                                }
                            }
                            catch (Exception)
                            {
                                content += "【异常】最高金额";
                            }
                        }
                        content += "结束-最高金额";
                    }
                    if (DateTime.Now.Hour == 23 && DateTime.Now.Minute == 0)
                    {
                        DoGuestJob(DateTime.Now);

                        //                        content += "开始-客户联系跟踪表";
                        //                        int currentYear = DateTime.Now.Year;
                        //                        int currentMonth = DateTime.Now.Month;

                        //                        int nextYear = DateTime.Now.AddMonths(1).Year;
                        //                        int nextMonth = DateTime.Now.AddMonths(1).Month;

                        //                        int currentZhangQi = GetZhouQi(currentMonth);
                        //                        int nextZhangQi = GetZhouQi(nextMonth);
                        //                        //if (currentZhangQi == nextZhangQi && currentYear == nextYear)
                        //                        //{
                        //                        //    return;
                        //                        //}
                        //                        List<GuestProBaseInfo> guestProBaseInfos = new GuestProBaseInfoService().GetListArray("GuestPro=1");

                        //                        TB_GuestTrackService GuestTrackSer = new TB_GuestTrackService();
                        //                        string sql = string.Format(" 1=1 and QuartNo='{1}' and YearNo='{0}' and SimpGuestName='苏州康代智能' ", currentYear, currentZhangQi);
                        //                        sql += string.Format(@" and (TB_GuestTrack.id in (select allE_id from tb_EForm where proId in (
                        //select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') and state='通过') or TB_GuestTrack.id not in (select allE_id from tb_EForm where proId in (
                        //select pro_Id from A_ProInfo where pro_Type='客户联系跟踪表') ))");
                        //                        List<TB_GuestTrack> GuestTracks = GuestTrackSer.GetListArray(sql);

                        //                        using (SqlConnection conn = DBHelp.getConn())
                        //                        {
                        //                            conn.Open();
                        //                            SqlTransaction tan = conn.BeginTransaction();
                        //                            SqlCommand objCommand = conn.CreateCommand();
                        //                            objCommand.Transaction = tan;

                        //                            try
                        //                            {

                        //                                objCommand.Parameters.Clear();
                        //                                foreach (var model in GuestTracks)
                        //                                { //客户属性 每个季度需要复制到下一季度,但有一个是需要 特别关注的,就是每年的四季度 如果某个客户的客户属性是 自我开拓,
                        //                                  //来年的一季度,这个客户的客户属性 必须变成 原有资源!!!
                        //                                  //if (currentZhangQi == 4)
                        //                                  //{
                        //                                  //    if (model.MyGuestProString == "自我开拓")
                        //                                  //    {
                        //                                  //        model.MyGuestPro = 2;
                        //                                  //    }
                        //                                  //}

                        //                                    model.QuartNo = nextZhangQi.ToString();
                        //                                    model.YearNo = nextYear.ToString();
                        //                                    model.CreateTime = DateTime.Now;


                        //                                    string secondUpdate = GuestTrackSer.UpdateToString(model, model.GuestId, nextYear.ToString(), nextZhangQi.ToString());
                        //                                    if (model.MyGuestProString == "自我开拓")
                        //                                    {
                        //                                        //我们的系统在每个季度的最后一天的晚上12点会自动同步客户信息到下一个季度,我们定义
                        //                                        //.  如该客户目前的属性是自我开拓,该客户从登记之日起,加上自我开拓的有效期月数数字对应的日期,
                        //                                        //如小于(<) 新季度第一天,新季度的客户的属性变成 原有资源,否则 还是自我开拓
                        //                                        if (DateTime.Now.Month == 3 || DateTime.Now.Month == 6 || DateTime.Now.Month == 9 || DateTime.Now.Month == 12)
                        //                                        {
                        //                                            if (DateTime.Now.Day == DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)
                        //                                                && model.Time.AddMonths(guestProBaseInfos[0].GuestMonth) < Convert.ToDateTime(nextYear + "-" + nextMonth + "-01"))
                        //                                            {
                        //                                                model.MyGuestPro = 2;
                        //                                            }
                        //                                        }
                        //                                    }
                        //                                    string update = GuestTrackSer.AddToString(model);

                        //                                    string updateSql = string.Format("if not exists(select id from TB_GuestTrack where guestId='{0}' and yearNo='{1}' and QuartNo='{2}')begin {3} end else begin {4} end",
                        //                                        model.GuestId, nextYear.ToString(), nextZhangQi.ToString(), update, secondUpdate);
                        //                                    objCommand.CommandText = updateSql;
                        //                                    objCommand.ExecuteNonQuery();
                        //                                }

                        //                                tan.Commit();

                        //                                new JobInfoService().Add(new JobInfo
                        //                                {
                        //                                    JobTime = DateTime.Now,
                        //                                    JobType = 1
                        //                                });
                        //                                content += "结束-客户联系跟踪表";
                        //                                //ServiceAppSetting.LoggerHander.Invoke(string.Format("执行成功! - {0}", DateTime.Now), "");
                        //                            }
                        //                            catch (Exception)
                        //                            {
                        //                                tan.Rollback();
                        //                                content += "【异常】账期执行失败";
                        //                                //ServiceAppSetting.LoggerHander.Invoke(string.Format("账期执行失败! - {0}", DateTime.Now), "Error");
                        //                            }

                        //                        }
                    }
                }
                catch (Exception)
                {
                }
                _logger.InfoFormat(content);

                _logger.InfoFormat("第2个Job:" + DateTime.Now.ToString());
            }
        }
 public BusinessFinanceDashboardController(AccountDetailService accountDetailService, CashFlowService cashFlowService)
 {
     _accountDetailService = accountDetailService;
     _cashFlowService      = cashFlowService;
 }