예제 #1
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            DailyRecord = await _context.Records.FirstOrDefaultAsync(m => m.Id == id);

            if (DailyRecord == null)
            {
                return(NotFound());
            }
            return(Page());
        }
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            DailyRecord = await _context.Records.FindAsync(id);

            if (DailyRecord != null)
            {
                _context.Records.Remove(DailyRecord);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
예제 #3
0
 public GridPivotDetailHome(Double pIrrigationQuantity, Double pRainQuantity,
                            Double pForecastIrrigationQuantity, DateTime pDateOfData,
                            bool pIsToday, Utils.IrrigationStatus pIrrigationStatus,
                            String pPhenology,
                            bool pIsIrrigationConfirmed,
                            DailyRecord pDailyRecord = null)
 {
     this.IrrigationQuantity         = pIrrigationQuantity;
     this.RainQuantity               = pRainQuantity;
     this.ForecastIrrigationQuantity = pForecastIrrigationQuantity;
     this.DateOfData            = pDateOfData;
     this.IsToday               = pIsToday;
     this.IrrigationStatus      = pIrrigationStatus;
     this.Phenology             = pPhenology;
     this.DailyRecord           = pDailyRecord;
     this.IsIrrigationConfirmed = pIsIrrigationConfirmed;
 }
예제 #4
0
        public DailyRecord PriceBuilder(DayRate dayRate, IEnumerable <Price> prices, bool hasFreeConsultant)
        {
            var dailyRecord = new DailyRecord();

            _logger.Info($"Processing DayRate: {dayRate.Id} on {dayRate.Date.ToShortDateString()}, " +
                         $"TotalCard: {dayRate.CardDailyTotal} TotalCash: {dayRate.CashDailyTotal}");

            _logger.Info($"Processing Card DayRate {dayRate.Date.ToShortDateString()} ");
            dailyRecord.Card = GetSalesRecord(dayRate.Id, dayRate.CardDailyTotal, dayRate.Date, dayRate.CardRates,
                                              prices, hasFreeConsultant);
            _logger.Info($"Processing Cash DayRate {dayRate.Date.ToShortDateString()} ");
            dailyRecord.Cash = GetSalesRecord(dayRate.Id, dayRate.CashDailyTotal, dayRate.Date, dayRate.CashRates,
                                              prices, hasFreeConsultant);


            return(dailyRecord);
        }
예제 #5
0
        public void CreateNewAndFinishPreviousRecord(int employeeId, EnumWorkType type)
        {
            DateTime    currentTime = DateTime.Now;
            DailyRecord dailyRecord = _dailyRecordRepository.GetLastDailyRecordByEmployeeId(employeeId);

            if (dailyRecord != null)
            {
                if (dailyRecord.Finish == null)
                {
                    UpdateFinishInTimeBlock(dailyRecord, currentTime);
                }
                else
                {
                    CreateNewTimeBlock(employeeId, EnumWorkType.Other, (DateTime)dailyRecord.Finish, currentTime);
                }
            }
            CreateNewTimeBlock(employeeId, type, currentTime);
        }
예제 #6
0
        public void TestMethod2()
        {
            var ctx  = GetDbContext();
            var data = new DailyRecord()
            {
                Date         = DateTime.Now,
                EventSummary = "No Events",
                Remark       = "ABC",
                Status       = StatusFlags.Warn,
                User         = "******"
            };

            ctx.Records.Add(data);
            ctx.SaveChanges();
            var rec = ctx.Records.FirstOrDefault();

            Assert.IsNotNull(rec);
        }
예제 #7
0
        public async Task <IActionResult> Create([Bind("Id,DocumentDate,Title,Detail,CreatedBy,CreatedDate,UpdatedBy,UpdatedDate,IsDeleted")] DailyRecord dailyRecord)
        {
            // 投稿ロック判定
            var isLocked = ControllerHelper.GetSubmitLocked(_context);

            if (isLocked == "1")
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                _context.Add(dailyRecord);
                await _context.SaveChangesAsync(User.Identity.Name);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(dailyRecord));
        }
예제 #8
0
        private void UpdateData()
        {
            listRecords.Clear();
            DateTime    _date = DateTime.Now - TimeSpan.FromDays(_day);
            DailyRecord _rec  = SelectedUser.FindRecord(_date, true);

            if (_rec != null)
            {
                foreach (Record r in _rec.Records)
                {
                    if (r.ActivityType != 0)
                    {
                        listRecords.Add(r);
                    }
                }
            }
            listRecords.UpdateCollection();
            OnPropertyChanged(null);
        }
예제 #9
0
        public async Task <IHttpActionResult> Post(DailyRecord dailyRecord)
        {
            if (dailyRecord.Group == null)
            {
                dailyRecord.Group = "7";
            }
            dailyRecord.SubmitTime = DateTimeOffset.Now;
            dailyRecord.RecordDate = dailyRecord.RecordDate.Date;
            dailyRecord.User       = dailyRecord.User.Trim();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            db.DailyRecords.AddOrUpdate(dailyRecord);
            await db.SaveChangesAsync();

            return(Ok("insert or updated"));
        }
예제 #10
0
        public bool InsertDialyRecord(DailyRecord dailyResult)
        {
            bool succes = false;

            Execute((command) =>
            {
                command.CommandText = @"INSERT INTO DailyRecord (IdEmployee, IdWorktype, [Start], [Finish])
                                        VALUES (@Id_Employee, @Id_Worktype , @Start, @Finish)";

                command.Parameters.Add("@Id_Employee", SqlDbType.VarChar).Value = dailyResult.IdEmployee;
                command.Parameters.Add("@Id_Worktype", SqlDbType.VarChar).Value = dailyResult.IdWorktype;
                command.Parameters.Add("@Start", SqlDbType.DateTime2).Value     = dailyResult.Start;
                command.Parameters.Add("@Finish", SqlDbType.DateTime2).Value    = dailyResult.Finish == null ? DBNull.Value : (object)dailyResult.Finish;
                if (command.ExecuteNonQuery() > 0)
                {
                    succes = true;
                }
            });
            return(succes);
        }
예제 #11
0
        /// <summary>
        /// this method make unicorn farts
        /// </summary>
        /// <param name="daily_Result"></param>
        /// <returns>true if update happend, false if not</returns>
        public bool UpdateDailyRecord(DailyRecord updatedDailyResult)
        {
            bool success = false;

            Execute((command) =>
            {
                command.CommandText = @"update DailyRecord 
                                        set Start=@start,Finish=@finish,IdWorktype=@idWorkType
                                        where id = @dailyResultID";
                command.Parameters.Add("@start", SqlDbType.DateTime2).Value   = updatedDailyResult.Start;
                command.Parameters.Add("@finish", SqlDbType.DateTime2).Value  = updatedDailyResult.Finish;
                command.Parameters.Add("@idWorkType", SqlDbType.Int).Value    = updatedDailyResult.IdWorktype;
                command.Parameters.Add("@dailyResultID", SqlDbType.Int).Value = updatedDailyResult.Id;

                if (command.ExecuteNonQuery() > 0)
                {
                    success = true;
                }
            });
            return(success);
        }
예제 #12
0
        /// <summary>
        /// insert new Daily result entered from system
        /// </summary>
        /// <param name="dailyResult"></param>
        /// <returns></returns>
        public bool InsertNewDailyResultFromSystem(DailyRecord dailyResult)
        {
            bool success = false;

            Execute((command) =>
            {
                command.CommandText = @"insert into DailyRecord

                                        values (@IdEmployee,@StartTime,@FinishTime,@WorkTypeID)";
                command.Parameters.Add("@IdEmployee", SqlDbType.Int).Value       = dailyResult.IdEmployee;
                command.Parameters.Add("@WorkTypeID", SqlDbType.Int).Value       = dailyResult.IdWorktype;
                command.Parameters.Add("@StartTime", SqlDbType.DateTime2).Value  = dailyResult.Start;
                command.Parameters.Add("@FinishTime", SqlDbType.DateTime2).Value = dailyResult.Finish;

                if (command.ExecuteNonQuery() > 0)
                {
                    success = true;
                }
            });
            return(success);
        }
예제 #13
0
        /// <summary>
        /// 设置交易记录的实际受益人
        /// </summary>
        /// <param name="dailyRecord"></param>
        /// <param name="bandPrincipal"></param>
        /// <param name="targetPrincipal"></param>
        public static void SetBeneficiary(this DailyRecord dailyRecord, string bandPrincipal, string targetPrincipal)
        {
            if (dailyRecord == null)
            {
                throw new ArgumentNullException(nameof(dailyRecord));
            }

            switch (dailyRecord.TradeType)
            {
            case (int)EnumLibrary.TradeType.Day:
                dailyRecord.Beneficiary = dailyRecord.OperatorCode;
                break;

            case (int)EnumLibrary.TradeType.Band:
                dailyRecord.Beneficiary = bandPrincipal;
                break;

            case (int)EnumLibrary.TradeType.Target:
                dailyRecord.Beneficiary = targetPrincipal;
                break;
            }
        }
예제 #14
0
        /// <summary>
        /// gets daily result by its ID
        /// </summary>
        /// <param name="employeeId"></param>
        /// <returns>DailyRusult</returns>
        public DailyRecord GetDailyResultByID(int dailyResultId)
        {
            DailyRecord ret = new DailyRecord();

            Execute((command) =>
            {
                command.CommandText = @"select * from DailyRecord where id = @id";
                command.Parameters.Add("@id", SqlDbType.Int).Value = dailyResultId;
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        ret.Id         = reader.GetInt32(0);
                        ret.IdEmployee = reader.GetInt32(1);
                        ret.Start      = reader.GetDateTime(2);
                        ret.Finish     = reader.IsDBNull(3) ? (DateTime?)null : reader.GetDateTime(3);
                        ret.IdWorktype = reader.GetInt32(4);
                    }
                }
            });
            return(ret);
        }
예제 #15
0
        /// <summary>
        /// 设置交易记录的交易类型
        /// </summary>
        /// <param name="dailyRecord"></param>
        /// <param name="tradeType"></param>
        public static void SetTradeType(this DailyRecord dailyRecord, string tradeType)
        {
            if (dailyRecord == null)
            {
                throw new ArgumentNullException(nameof(dailyRecord));
            }

            switch (tradeType)
            {
            case "短差":
            case "日内":
                dailyRecord.TradeType = (int)EnumLibrary.TradeType.Day;
                break;

            case "波段":
                dailyRecord.TradeType = (int)EnumLibrary.TradeType.Band;
                break;

            case "目标":
                dailyRecord.TradeType = (int)EnumLibrary.TradeType.Target;
                break;
            }
        }
예제 #16
0
        private void AddVirtualRecordProcess()
        {
            if (!InputCheck())
            {
                return;
            }

            var now        = this._commonService.GetCurrentServerTime();
            var stockInfo  = this.luStock.GetSelectedDataRow() as StockInfoModel;
            var dealVolume = int.Parse(this.txtDealVolume.Text.Trim());

            var tradeTime     = CommonHelper.StringToDateTime(this.deTradeDate.Text.Trim());
            var virtualRecord = new DailyRecord
            {
                AccountId    = int.Parse(this.luAccount.SelectedValue()),
                ActualAmount = decimal.Parse(txtActualAmount.Text.Trim()),
                AuditFlag    = false,
                Beneficiary  = this.luBeneficiary.SelectedValue(),
                DataType     = (int)EnumLibrary.DataType.Virtual,
                DealAmount   = decimal.Parse(this.txtDealAmount.Text.Trim()),
                DealFlag     = this.chkBuy.Checked,
                DealPrice    = decimal.Parse(this.txtDealPrice.Text.Trim()),
                DealVolume   = this.chkBuy.Checked ? dealVolume : -dealVolume,
                ImportTime   = now,
                ImportUser   = LoginInfo.CurrentUser.UserCode,
                OperatorCode = this.luInvestor.SelectedValue(),
                StockCode    = stockInfo.FullCode,
                StockName    = stockInfo.Name,
                TradeDate    = tradeTime.Date,
                TradeTime    = tradeTime.ToLongTimeString(),
                TradeType    = int.Parse(this.cbTradeType.SelectedValue()),
                UpdateTime   = now,
                UpdateUser   = LoginInfo.CurrentUser.UserCode,
            };

            this._dailyRecordService.InsertDailyRecord(virtualRecord);
        }
예제 #17
0
        /// <summary>
        /// 设置交易记录的共通字段
        /// </summary>
        /// <param name="dailyRecord"></param>
        /// <param name="recordImportOperationInfo"></param>
        public static void SetTradeRecordCommonFields(this DailyRecord dailyRecord, RecordImportOperationEntity recordImportOperationInfo)
        {
            if (dailyRecord == null)
            {
                throw new ArgumentNullException(nameof(dailyRecord));
            }

            if (recordImportOperationInfo == null)
            {
                throw new ArgumentNullException(nameof(recordImportOperationInfo));
            }

            dailyRecord.DataType     = (int)recordImportOperationInfo.DataType;
            dailyRecord.AccountId    = recordImportOperationInfo.AccountId;
            dailyRecord.OperatorCode = recordImportOperationInfo.OperatorCode;
            dailyRecord.ImportUser   = recordImportOperationInfo.ImportUserCode;
            dailyRecord.ImportTime   = recordImportOperationInfo.ImportTime;
            dailyRecord.UpdateUser   = recordImportOperationInfo.ImportUserCode;
            dailyRecord.UpdateTime   = recordImportOperationInfo.ImportTime;
            if (recordImportOperationInfo.TradeDate.HasValue)
            {
                dailyRecord.TradeDate = recordImportOperationInfo.TradeDate.Value;
            }
        }
예제 #18
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,DocumentDate,Title,Detail,CreatedBy,CreatedDate,UpdatedBy,UpdatedDate,IsDeleted")] DailyRecord dailyRecord)
        {
            // 投稿ロック判定
            var isLocked = ControllerHelper.GetSubmitLocked(_context);

            if (isLocked == "1")
            {
                return(NotFound());
            }
            if (id != dailyRecord.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(dailyRecord);
                    await _context.SaveChangesAsync(User.Identity.Name);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DailyRecordExists(dailyRecord.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(dailyRecord));
        }
예제 #19
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                this.btnOk.Enabled = false;
                var source = gridControl1.DataSource as DataTable;
                if (source == null)
                {
                    return;
                }

                if (DXMessage.ShowYesNoAndTips("是否确定导入?") == System.Windows.Forms.DialogResult.Yes)
                {
                    IList <DailyRecord> dailyRecords = new List <DailyRecord>();
                    var deliveryRecord = _deliveryService.GetDeliveryRecordById(DeliveryId);
                    foreach (DataRow dr in source.Rows)
                    {
                        var dailyRecord = new DailyRecord
                        {
                            AccountCode     = deliveryRecord.AccountCode,
                            AccountId       = deliveryRecord.AccountId,
                            ActualAmount    = CommonHelper.SetDecimalDigits(decimal.Parse(dr[this.colRate.FieldName].ToString()) * deliveryRecord.ActualAmount),
                            Beneficiary     = dr[this.colBeneficiary.FieldName].ToString(),
                            Commission      = deliveryRecord.Commission,
                            ContractNo      = deliveryRecord.ContractNo,
                            DataType        = deliveryRecord.DataType,
                            DealAmount      = 0,
                            DealFlag        = deliveryRecord.DealFlag,
                            DealNo          = deliveryRecord.DealNo,
                            DealPrice       = deliveryRecord.DealPrice,
                            DealVolume      = 0,
                            ImportTime      = DateTime.Now,
                            ImportUser      = LoginInfo.CurrentUser.UserCode,
                            Incidentals     = deliveryRecord.Incidentals,
                            OperatorCode    = dr[this.colBeneficiary.FieldName].ToString(),
                            Remarks         = "财务交割单利息分配",
                            StampDuty       = deliveryRecord.StampDuty,
                            StockCode       = deliveryRecord.StockCode,
                            StockHolderCode = deliveryRecord.StockHolderCode,
                            StockName       = deliveryRecord.StockName,
                            TradeDate       = deliveryRecord.TradeDate,
                            TradeTime       = deliveryRecord.TradeTime,
                            TradeType       = int.Parse(dr[this.colTradeType.FieldName].ToString()),
                            UpdateTime      = DateTime.Now,
                            UpdateUser      = LoginInfo.CurrentUser.UserCode
                        };

                        dailyRecords.Add(dailyRecord);
                    }
                    _dailyService.InsertDailyRecords(dailyRecords);
                    this.SplitFlag = true;
                    this.Close();
                    this.RefreshEvent?.Invoke();
                }
                else
                {
                    this.btnOk.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                DXMessage.ShowError(ex.Message);
            }
        }
예제 #20
0
 public bool InsertNewDailyResultFromSystem(DailyRecord dailyResult)
 {
     return(_dailyRecordRepository.InsertNewDailyResultFromSystem(dailyResult));
 }
예제 #21
0
 public bool UpdateDailyRecord(DailyRecord updatedDailyResult)
 {
     return(_dailyRecordRepository.UpdateDailyRecord(updatedDailyResult));
 }
예제 #22
0
        private bool DataImportProcess(out int importRecordNumber)
        {
            importRecordNumber = 0;

            var startDate = CommonHelper.StringToDateTime(this.deStart.EditValue.ToString());
            var endDate   = CommonHelper.StringToDateTime(this.deEnd.EditValue.ToString());

            string query = string.Format(@"select * from EntrustRecord where (cjQty>0 or cjAmount >0)  and FData >='{0}' and FData <='{1}' ", startDate, endDate);

            var ds = SqlHelper.ExecuteDataset(_oldSystemConnectionString, CommandType.Text, query);

            if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
            {
                return(true);
            }

            var tradeRecords   = new List <DailyRecord>();
            var historyRecords = ds.Tables[0];

            var dataType       = (int)EnumLibrary.DataType.History;
            var importUserCode = LoginInfo.CurrentUser.UserCode;
            var importTime     = _commonService.GetCurrentServerTime();

            foreach (DataRow row in historyRecords.Rows)
            {
                importRecordNumber++;

                var tradeRecord = new DailyRecord();

                tradeRecord.DataType   = dataType;
                tradeRecord.ImportUser = importUserCode;
                tradeRecord.ImportTime = importTime;
                tradeRecord.UpdateUser = importUserCode;
                tradeRecord.UpdateTime = importTime;

                tradeRecord.AccountId = int.Parse(row["zqzh"].ToString().Trim());

                tradeRecord.OperatorCode = GetUserCodeByName(row["Operator"].ToString().Trim());

                tradeRecord.StockName = row["zqmc"].ToString().Trim();

                tradeRecord.StockCode = GetStockFullCodeByCode(row["zqdm"].ToString().Trim());

                if (string.IsNullOrEmpty(tradeRecord.StockCode))
                {
                    DXMessage.ShowTips(string.Format("系统不存在股票信息【{0}】【{1}】,导入操作终止!", row["zqmc"].ToString().Trim(), row["zqdm"].ToString().Trim()));
                    return(false);
                }

                tradeRecord.SetTradeType(row["jyType"].ToString().Trim());

                tradeRecord.Beneficiary = GetBeneficiaryCodeByTradeType(row, tradeRecord.TradeType);

                tradeRecord.TradeDate = CommonHelper.StringToDateTime(row["FData"].ToString().Trim());

                tradeRecord.TradeTime = row["Ftime"].ToString().Trim();

                if (row["cz"].ToString().Trim().IndexOf("买") > -1)
                {
                    tradeRecord.DealFlag = true;
                }
                else
                {
                    tradeRecord.DealFlag = false;
                }

                tradeRecord.DealNo = string.Empty;

                tradeRecord.DealPrice = decimal.Parse(row["cjPrice"].ToString().Trim());

                tradeRecord.DealAmount = decimal.Parse(row["cjAmount"].ToString().Trim());

                //买入
                if (tradeRecord.DealFlag)
                {
                    tradeRecord.DealVolume = CommonHelper.ConvertToPositive(int.Parse(row["cjQty"].ToString().Trim()));

                    tradeRecord.ActualAmount = CommonHelper.ConvertToNegtive(decimal.Parse(row["fsAmount"].ToString().Trim()));
                }
                //卖出
                else
                {
                    tradeRecord.DealVolume = CommonHelper.ConvertToNegtive(int.Parse(row["cjQty"].ToString().Trim()));

                    tradeRecord.ActualAmount = CommonHelper.ConvertToPositive(decimal.Parse(row["fsAmount"].ToString().Trim()));
                }

                tradeRecord.StockHolderCode = row["gdzh"].ToString().Trim();

                tradeRecord.ContractNo = row["ContractID"].ToString().Trim();

                if (row["yj"] != DBNull.Value)
                {
                    tradeRecord.Commission = decimal.Parse(row["yj"].ToString().Trim());
                }

                if (row["yhs"] != DBNull.Value)
                {
                    tradeRecord.StampDuty = decimal.Parse(row["yhs"].ToString().Trim());
                }

                if (row["ghf"] != DBNull.Value)
                {
                    tradeRecord.Incidentals = decimal.Parse(row["ghf"].ToString().Trim());
                }

                tradeRecord.AuditFlag = row["gj"].ToString().Trim() == "1" ? true : false;

                if (row["gjtime"] != DBNull.Value)
                {
                    tradeRecord.AuditTime = CommonHelper.StringToDateTime(row["gjtime"].ToString().Trim());
                }

                tradeRecord.AuditNo = null;

                tradeRecord.Remarks = row["remark"].ToString().Trim();

                tradeRecords.Add(tradeRecord);
            }

            var tradeDateFrom = historyRecords.AsEnumerable().Select(x => x.Field <DateTime>("FData")).Min();
            var tradeDateTo   = historyRecords.AsEnumerable().Select(x => x.Field <DateTime>("FData")).Max();

            if (DeleteExistedRecords(tradeDateFrom, tradeDateTo))
            {
                _tradeRecordService.BatchInsertDailyRecords(tradeRecords);
            }

            return(true);
        }
예제 #23
0
 public void UpdateFinishInTimeBlock(DailyRecord dailyRecord, DateTime finishTime)
 {
     dailyRecord.Finish = finishTime;
     _dailyRecordRepository.UpdateDailyRecord(dailyRecord);
 }
예제 #24
0
        /// <summary>
        /// 添加日常记账
        /// </summary>
        /// <param name="dailyRecord"></param>
        /// <param name="hidBuckets"></param>
        /// <returns></returns>
        public ActionResult CreateDailyWrite(DailyRecord dailyRecord, string[] hidBuckets)
        {
            //MongoDB采取的是UTC时间,而通常系统用的是Local时间(中国)
            dailyRecord.VisitDate = DateTime.SpecifyKind(dailyRecord.VisitDate, DateTimeKind.Utc);
            string[] bucketPams = hidBuckets[0].Split(',');
            if (bucketPams.Length == 1)
            {
                if (dailyRecord.EarnMonthEndPrice >= 0 || dailyRecord.EarnWaterCardPrice >= 0)
                {
                    //添加日常记录
                    dailyRecord.Id = ObjectId.NewObjectId().ToString();
                    MongoBase.Insert(dailyRecord);

                    //添加公司下次送水日期
                    Customer customer = CustomerHelper.GetById(dailyRecord.CustomerId);
                    if (customer != null)
                    {
                        customer.NextDate   = dailyRecord.NextDate;
                        customer.NotifyFlag = 1;//开启通知
                        CustomerHelper.Update(customer);
                    }
                }
            }
            else
            {
                for (int i = 0; i < bucketPams.Length; i++)
                {
                    var t = i % 3;
                    if (t == 0)
                    {
                        dailyRecord.SendProductId = bucketPams[i];
                    }
                    else if (t == 1)
                    {
                        dailyRecord.SendBucketAmount = int.Parse(bucketPams[i]);
                    }
                    else
                    {
                        dailyRecord.ReceiveEmptyBucketAmount = int.Parse(bucketPams[i]);
                    }
                    if ((i + 1) % 3 == 0)
                    {
                        ////完成一个产品
                        //更新库存信息
                        var product = ProductHelper.GetById(dailyRecord.SendProductId);
                        product.StockRemain       += dailyRecord.SendBucketAmount;         //桶装水库存增加
                        product.BucketStockRemain += dailyRecord.ReceiveEmptyBucketAmount; //空桶库存增加
                        ProductHelper.Update(product);
                        //添加一条日常记录
                        dailyRecord.Id = ObjectId.NewObjectId().ToString();

                        //同一人在同一公司,资金交易只记一笔(避免汇总数据double);附属产品只记一笔
                        if (i > 2)
                        {
                            dailyRecord.EarnDeposit        = 0;
                            dailyRecord.PayDeposit         = 0;
                            dailyRecord.EarnMonthEndPrice  = 0;
                            dailyRecord.EarnWaterCardPrice = 0;
                            dailyRecord.WaterDispenser     = 0;
                            dailyRecord.WaterHolder        = 0;
                            dailyRecord.PushPump           = 0;
                            dailyRecord.WaterDispenserBack = 0;
                            dailyRecord.WaterHolderBack    = 0;
                            dailyRecord.PushPumpBack       = 0;
                        }
                        MongoBase.Insert(dailyRecord);
                    }
                }
            }

            return(RedirectToAction("DailyRecord"));
        }
예제 #25
0
        private void TransferProcess()
        {
            var holderAccountId   = _record.AccountId;
            var holderAccountInfo = _record.AccountName + "-" + _record.SecurityCompanyName + "-" + _record.AttributeName;
            var holder            = _record.DealerCode;
            var holderName        = _record.DealerName;
            var holderTradeType   = CTMHelper.GetTradeTypeByDepartment(_record.DepartmentId);

            var receiver = this.luReceiver.GetSelectedDataRow() as UserInfo;

            if (receiver == null)
            {
                return;
            }

            var receiverTradeType   = CTMHelper.GetTradeTypeByDepartment(receiver.DepartmentId);
            var transferVolume      = int.Parse(this.txtTransferVolume.Text.Trim());
            var transferPrice       = decimal.Parse(this.txtTransferPrice.Text.Trim());
            var stockFullCode       = this.txtStockCode.Text.Trim();
            var stockName           = this.txtStockName.Text.Trim();
            var receivedAccountId   = int.Parse(this.luReceivedAccount.SelectedValue());
            var receivedAccountInfo = (this.luReceivedAccount.GetSelectedDataRow() as AccountEntity).DisplayMember;

            var now       = _commonService.GetCurrentServerTime();
            var tradeDate = CommonHelper.GetPreviousWorkDay(now);

            var stockTransferInfo = new StockTransferInfo()
            {
                HolderAccountId     = holderAccountId,
                HolderAccountInfo   = holderAccountInfo,
                ReceivedAccountId   = receivedAccountId,
                ReceivedAccountInfo = receivedAccountInfo,
                StockFullCode       = stockFullCode,
                StockName           = stockName,
                Holder         = holder,
                HolderName     = holderName,
                Receiver       = receiver.Code,
                ReceiverName   = receiver.Name,
                OperatorCode   = LoginInfo.CurrentUser.UserCode,
                OperatorName   = LoginInfo.CurrentUser.UserName,
                TransferVolume = transferVolume,
                TransferPrice  = transferPrice,
                TransferTime   = now,
            };

            var holderRecord = new DailyRecord()
            {
                DataType     = (int)EnumLibrary.DataType.StockTransfer,
                AccountId    = holderAccountId,
                ActualAmount = transferPrice * transferVolume,
                Beneficiary  = holder,
                DealAmount   = Math.Abs(transferPrice * transferVolume),
                DealFlag     = transferVolume > 0 ? false : true,
                DealPrice    = transferPrice,
                DealVolume   = -transferVolume,
                ImportTime   = now,
                ImportUser   = LoginInfo.CurrentUser.UserCode,
                OperatorCode = holder,
                StockCode    = stockFullCode,
                StockName    = stockName,
                TradeDate    = tradeDate,
                TradeTime    = now.ToString("HH:mm:ss"),
                TradeType    = (int)holderTradeType,
                UpdateTime   = now,
                UpdateUser   = LoginInfo.CurrentUser.UserCode,
            };

            var receiverRecord = new DailyRecord()
            {
                DataType     = (int)EnumLibrary.DataType.StockTransfer,
                AccountId    = receivedAccountId,
                ActualAmount = transferPrice * (-transferVolume),
                Beneficiary  = receiver.Code,
                DealAmount   = Math.Abs(transferPrice * transferVolume),
                DealFlag     = transferVolume < 0 ? false : true,
                DealPrice    = transferPrice,
                DealVolume   = transferVolume,
                ImportTime   = now,
                ImportUser   = LoginInfo.CurrentUser.UserCode,
                OperatorCode = receiver.Code,
                StockCode    = stockFullCode,
                StockName    = stockName,
                TradeDate    = tradeDate,
                TradeTime    = now.ToString("HH:mm:ss"),
                TradeType    = (int)receiverTradeType,
                UpdateTime   = now,
                UpdateUser   = LoginInfo.CurrentUser.UserCode,
            };

            _stockService.AddStockTransferInfo(stockTransferInfo);

            _tradeRecordService.InsertDailyRecords(new List <DailyRecord> {
                holderRecord, receiverRecord
            });

            var stockTransferRecords = new List <StockTransferRecord>
            {
                new StockTransferRecord {
                    TransferId = stockTransferInfo.Id, RecordId = holderRecord.Id
                },
                new StockTransferRecord {
                    TransferId = stockTransferInfo.Id, RecordId = receiverRecord.Id
                }
            };

            _stockService.AddStockTransferRecord(stockTransferRecords);
        }
예제 #26
0
        /// <summary>
        /// Add Grid Irrigation Unit with all columns data
        /// Using DailyRecords for obtain Irrigation, Rain information.
        /// </summary>
        /// <param name="pDayOfReference"></param>
        /// <param name="pDayOfData"></param>
        /// <param name="pIrrigationList"></param>
        /// <param name="pRainList"></param>
        /// <param name="pDailyRecordList"></param>
        /// <returns></returns>
        private GridPivotDetailHome AddGridIrrigationUnit(DateTime pDayOfReference, DateTime pDayOfData, List <Models.Water.Irrigation> pIrrigationList,
                                                          List <Rain> pRainList, List <DailyRecord> pDailyRecordList)
        {
            #region local variables
            String lSomeData            = "";
            GridPivotDetailHome lReturn = null;

            Double   lIrrigationQuantity        = 0;
            Double   lRainQuantity              = 0;
            Double   lForcastIrrigationQuantity = 0;
            Double   lWaterQuantity             = 0;
            DateTime lDateOfData     = Utils.MIN_DATETIME;
            DateTime lDayOfReference = Utils.MIN_DATETIME;
            bool     lIsToday        = false;
            Utils.IrrigationStatus lIrrigationStatus = Utils.IrrigationStatus.Default;
            String lPhenology = "";

            Rain        lRain        = null;
            DailyRecord lDailyRecord = null;
            #endregion

            try
            {
                lDateOfData     = pDayOfData.Date;
                lDayOfReference = pDayOfReference.Date;
                lSomeData       = lSomeData + "DayOfReference: " + lDayOfReference.Date + "-";
                lSomeData       = lSomeData + "DateOfData: " + lDateOfData.Date + "-";

                //Find Daily Record of the Date of Data
                lDailyRecord = pDailyRecordList.Where(dr => dr.DailyRecordDateTime.Date == lDateOfData.Date).FirstOrDefault();

                #region Irrigation in the past
                if (lDailyRecord != null && lDateOfData < lDayOfReference)
                {
                    if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Input > 0)
                    {
                        lIrrigationQuantity += lDailyRecord.Irrigation.Input;
                    }
                    else if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.ExtraInput > 0)
                    {
                        lIrrigationQuantity += lDailyRecord.Irrigation.ExtraInput;
                    }
                }
                #endregion

                lWaterQuantity = lIrrigationQuantity;
                lSomeData      = lSomeData + "IrrigationQuantity: " + lIrrigationQuantity + "-";

                #region Rain
                //Find Rain of the Date of Data
                lRain = pRainList.Where(r => r.Date.Date == lDateOfData || r.ExtraDate.Date == lDateOfData).FirstOrDefault();
                if (lRain != null && lRain.GetTotalInput() > 0)
                {
                    lRainQuantity = lRain.GetTotalInput();
                }
                #endregion

                lWaterQuantity += lRainQuantity;
                lSomeData       = lSomeData + "RainQuantity: " + lRainQuantity + "-";

                #region Irrigation for today or in the future
                //Find Daily Record of the Date of Data
                lDailyRecord = pDailyRecordList.Where(dr => dr.DailyRecordDateTime.Date == lDateOfData).FirstOrDefault();
                if (lDailyRecord != null && lDateOfData >= lDayOfReference)
                {
                    if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Input > 0)
                    {
                        lForcastIrrigationQuantity += lDailyRecord.Irrigation.Input;
                    }
                    else if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.ExtraInput > 0)
                    {
                        lForcastIrrigationQuantity += lDailyRecord.Irrigation.ExtraInput;
                    }
                }
                #endregion

                lWaterQuantity += lForcastIrrigationQuantity;
                lSomeData       = lSomeData + "ForcastIrrigationQuantity: " + lForcastIrrigationQuantity + "-";

                lIsToday = lDateOfData == lDayOfReference;

                if (lIsToday && lDailyRecord != null)
                {
                    lPhenology = lDailyRecord.PhenologicalStage.Stage.ShortName;
                }

                #region IrrigationStatus
                if (lRainQuantity > 0 && lRainQuantity >= (lWaterQuantity - lRainQuantity))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Rain;
                }
                else if (lIrrigationQuantity > 0 && lIrrigationQuantity > lRainQuantity)
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Irrigated;
                }
                else if (lForcastIrrigationQuantity > 0 && lForcastIrrigationQuantity > lRainQuantity)
                {
                    lIrrigationStatus = Utils.IrrigationStatus.NextIrrigation;
                }
                else if (lDailyRecord != null && (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Type == Utils.WaterInputType.CantIrrigate))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.CantIrrigate;
                }
                else if (lDailyRecord != null && (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Type == Utils.WaterInputType.IrrigationWasNotDecided))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.IrrigationWasNotDecided;
                }
                else
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Default;
                }
                #endregion

                lSomeData = lSomeData + "IrrigationStatus: " + lIrrigationStatus.ToString() + "-";

                lReturn = new GridPivotDetailHome(lIrrigationQuantity, lRainQuantity, lForcastIrrigationQuantity,
                                                  lDateOfData, lIsToday, lIrrigationStatus,
                                                  lPhenology, lDailyRecord);
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in HomeController.AddGridIrrigationUnit \n {0}", lSomeData);
                throw ex;
            }

            return(lReturn);
        }
예제 #27
0
 public void ApplyDailyRecord(DailyRecord dailyRecord)
 {
     ChosenDateLabel.Text = String.Format("{0}.{1:00}.{2}", dailyRecord.Date.Day, dailyRecord.Date.Month, dailyRecord.Date.Year);
     FillSummaryGrid(dailyRecord);
     FillMealGrid(dailyRecord);
 }
예제 #28
0
        private void FillSummaryGrid(DailyRecord dailyRecord)
        {
            Dictionary <ComponentType, double> components = new Dictionary <ComponentType, double>();

            foreach (Meal meal in dailyRecord.Meals.Values)
            {
                foreach (Consumption consumption in meal.Consumptions)
                {
                    Nutrient nutrient = App.Database.GetItem(consumption.Id);
                    foreach (Component component in nutrient.Components)
                    {
                        double addition = component.Per100gramm * consumption.Weight / 100.0;
                        if (components.ContainsKey(component.Id))
                        {
                            components[component.Id] += addition;
                        }
                        else
                        {
                            components.Add(component.Id, addition);
                        }
                    }
                }
            }
            int rowIdx = 0;

            foreach (ComponentType componentType in components.Keys)
            {
                SummaryGrid.Children.Add(new Label()
                {
                    Text = componentType.ToString()
                }, 0, rowIdx);
                SummaryGrid.Children.Add(new Label()
                {
                    Text = components[componentType].ToString(), HorizontalTextAlignment = TextAlignment.End
                }, 1, rowIdx);
                SummaryGrid.Children.Add(new Label()
                {
                    Text = componentType.GetUnits()
                }, 2, rowIdx);

                SKCanvasView skCanvas = new SKCanvasView()
                {
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    HeightRequest     = 20
                };
                skCanvas.PaintSurface += (sender, args) => {
                    var surface       = args.Surface;
                    var surfaceWidth  = args.Info.Width;
                    var surfaceHeight = args.Info.Height;
                    var r             = Math.Min(surfaceHeight, surfaceWidth) / 2;

                    var canvas = surface.Canvas;

                    canvas.DrawCircle(new SKPoint(surfaceWidth - r, r),
                                      r,
                                      new SKPaint()
                    {
                        Color = Color.Red.ToSKColor(), IsAntialias = true, Style = SKPaintStyle.Fill
                    });
                    canvas.Flush();
                };

                SummaryGrid.Children.Add(skCanvas, 3, rowIdx);
                rowIdx++;
            }
        }
 /// <summary>
 /// update existing Daily Result
 /// </summary>
 /// <param name="updatedDailyResult"></param>
 /// <returns>true if update happend, otherwise false</returns>
 public bool UpdateDailyRecord(DailyRecord updatedDailyResult)
 {
     return(_logic.UpdateDailyRecord(updatedDailyResult));
 }