/// <summary> /// 日结操作 /// </summary> /// <param name="dailyBalance">日结号</param> /// <param name="unCheckDeviceNo">未结账的设备号</param> /// <returns></returns> public Int32 CreateDailyBalance(DailyBalance dailyBalance, out string unCheckDeviceNo) { string json = JsonConvert.SerializeObject(dailyBalance); byte[] jsonByte = Encoding.UTF8.GetBytes(json); int cByte = ParamFieldLength.PACKAGE_HEAD + jsonByte.Length; byte[] sendByte = new byte[cByte]; int byteOffset = 0; Array.Copy(BitConverter.GetBytes((int)Command.ID_CREATE_DAILYBALANCE), sendByte, BasicTypeLength.INT32); byteOffset = BasicTypeLength.INT32; Array.Copy(BitConverter.GetBytes(cByte), 0, sendByte, byteOffset, BasicTypeLength.INT32); byteOffset += BasicTypeLength.INT32; Array.Copy(jsonByte, 0, sendByte, byteOffset, jsonByte.Length); byteOffset += jsonByte.Length; int result = 0; unCheckDeviceNo = string.Empty; using (SocketClient socket = new SocketClient(ConstantValuePool.BizSettingConfig.IPAddress, ConstantValuePool.BizSettingConfig.Port)) { Byte[] receiveData = null; Int32 operCode = socket.SendReceive(sendByte, out receiveData); if (operCode == (int)RET_VALUE.SUCCEEDED) { result = BitConverter.ToInt32(receiveData, ParamFieldLength.PACKAGE_HEAD); unCheckDeviceNo = Encoding.UTF8.GetString(receiveData, ParamFieldLength.PACKAGE_HEAD + BasicTypeLength.INT32, receiveData.Length - ParamFieldLength.PACKAGE_HEAD - BasicTypeLength.INT32).Trim('\0'); } socket.Close(); } return(result); }
public void DailyBalance_ReturnsExpectedToString(double startingValue) { // Arrange IDailyBalance dailyBalance = new DailyBalance(DateTime.Parse("01/20/2020 00:00:00"), startingValue); // Act string result = dailyBalance.ToString(); // Assert result.ShouldEqual($"2020-01-20 {startingValue:0.00}"); }
public void AddToDailyTotalTransactionSum_WithCombinationsOfStartAndTransactValues_ReturnsExpectedTotalTransactionSum(double startingValue, double transactionValue, double expectedValue) { // Arrange IDailyBalance dailyBalance = new DailyBalance(DateTime.Parse("01/01/2020 00:00:00"), startingValue); // Act dailyBalance.AddToDailyTotalTransactionSum(transactionValue); // Assert dailyBalance.TotalTransactionSum.ShouldEqual(expectedValue); }
public void AdjustStartingBalance_WithCombinationOfValues_ReturnsExpectedTransactionSum(double originalStartingValue, double transactionValue, double newStartingValue, double expectedValue) { // Arrange IDailyBalance dailyBalance = new DailyBalance(DateTime.Parse("01/01/2020 00:00:00"), originalStartingValue); dailyBalance.AddToDailyTotalTransactionSum(transactionValue); // Act dailyBalance.AdjustStartingBalance(newStartingValue); // Assert dailyBalance.TotalTransactionSum.ShouldEqual(expectedValue); }
public void Add(DailyBalanceDTO dto) { var dailyBalance = new DailyBalance() { BalanceDate = dto.BalanceDate.Date, ProductId = dto.Product.Id.Value, Quantity = dto.Quantity, WorkPlaceId = dto.WorkPlaceId, }; db.DailyBalances.InsertOnSubmit(dailyBalance); db.SubmitChanges(); }
public void Add(List <DailyBalanceDTO> dtos) { var result = new List <DailyBalance>(); foreach (var dto in dtos) { var dailyBalance = new DailyBalance() { BalanceDate = dto.BalanceDate.Date, ProductId = dto.ProductId, Quantity = dto.Quantity, WorkPlaceId = dto.WorkPlaceId, }; result.Add(dailyBalance); } db.DailyBalances.InsertAllOnSubmit(result); db.SubmitChanges(); }
public static byte[] CreateDailyBalance(byte[] itemBuffer) { byte[] objRet = null; string strReceive = Encoding.UTF8.GetString(itemBuffer, ParamFieldLength.PACKAGE_HEAD, itemBuffer.Length - ParamFieldLength.PACKAGE_HEAD).Trim('\0'); DailyBalance dailyBalance = JsonConvert.DeserializeObject <DailyBalance>(strReceive); string unCheckDeviceNo = string.Empty; //未结账的设备号 int result = DailyBalanceService.GetInstance().CreateDailyBalance(dailyBalance, out unCheckDeviceNo); byte[] strBuffer = Encoding.UTF8.GetBytes(unCheckDeviceNo); int transCount = BasicTypeLength.INT32 + BasicTypeLength.INT32 + BasicTypeLength.INT32 + ParamFieldLength.UNCHECK_DEVICE_NO; objRet = new byte[transCount]; Array.Copy(BitConverter.GetBytes((int)RET_VALUE.SUCCEEDED), 0, objRet, 0, BasicTypeLength.INT32); Array.Copy(BitConverter.GetBytes(transCount), 0, objRet, BasicTypeLength.INT32, BasicTypeLength.INT32); Array.Copy(BitConverter.GetBytes(result), 0, objRet, 2 * BasicTypeLength.INT32, BasicTypeLength.INT32); Array.Copy(strBuffer, 0, objRet, 3 * BasicTypeLength.INT32, strBuffer.Length); return(objRet); }
public void RemunerateAccounts() { var dailyBalancesToday = _dailyBalanceRepository.GetDailyBalances(DateTime.Now); var bankAccounts = _bankAccountRepository.GetBankAccountsAvailableForRemunerate(); var bankAccountForUpdate = new List <BankAccount>(); var dailyBalances = new List <DailyBalance>(); var transactions = new List <Transaction>(); var bankAccountId = dailyBalancesToday.Select(x => x.BankAccountId).ToList(); foreach (var item in bankAccounts.Where(x => !bankAccountId.Contains(x.Id)).ToList()) { var dailyBalance = new DailyBalance { BankAccountId = item.Id, Balance = item.Balance, Date = DateTime.Now, RemuneratedAmount = GetRemunerateAmount(item.Balance) }; var transaction = new Transaction { BankAccountId = item.Id, Amount = dailyBalance.RemuneratedAmount, Type = TransactionType.Interest }; if (dailyBalance.RemuneratedAmount > 0) { dailyBalances.Add(dailyBalance); transactions.Add(transaction); item.Balance += dailyBalance.RemuneratedAmount; bankAccountForUpdate.Add(item); } } _dailyBalanceRepository.AddRange(dailyBalances); _bankAccountRepository.UpdateRange(bankAccountForUpdate); }
public Int32 CreateDailyBalance(DailyBalance dailyBalance, out string unCheckDeviceNo) { unCheckDeviceNo = string.Empty; int returnValue; //日结失败 _daoManager.BeginTransaction(); try { //日结号 string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo(); //更新日结信息 DailyStatement dailyStatement = dailyBalance.dailyStatement; dailyStatement.DailyStatementNo = dailyStatementNo; returnValue = _dailyStatementDao.UpdateDailyStatement(dailyStatement, out unCheckDeviceNo); if (returnValue == 1) { //插入日结金额 DailyTurnover dailyTurnover = dailyBalance.dailyTurnover; dailyTurnover.DailyStatementNo = dailyStatementNo; _dailyTurnoverDao.CreateDailyTurnover(dailyTurnover); //创建新的日结 DailyStatement item = new DailyStatement(); item.DailyStatementID = Guid.NewGuid(); item.DailyStatementNo = DateTime.Now.ToString("yyMMddHHmmssff"); _dailyStatementDao.CreateDailyStatement(item); } _daoManager.CommitTransaction(); } catch (Exception exception) { _daoManager.RollBackTransaction(); returnValue = 0; LogHelper.GetInstance().Error(string.Format("[CreateDailyBalance]参数:dailyBalance_{0}", JsonConvert.SerializeObject(dailyBalance)), exception); } return(returnValue); }
private void btnSalesReport_Click(object sender, EventArgs e) { if (bizReport != null && bizReport.BillTotalQty > 0) { if (m_ModelType == 1) { //判断是否存在退款失败的账单 CardRefundPayService refundPayService = new CardRefundPayService(); List <CardRefundPay> cardRefundPayList = refundPayService.GetCardRefundPayList(); if (cardRefundPayList != null && cardRefundPayList.Count > 0) { FormVIPCardRefundPay refundPayForm = new FormVIPCardRefundPay(cardRefundPayList); refundPayForm.ShowDialog(); } Guid handoverRecordId = Guid.NewGuid(); HandoverRecord handoverRecord = new HandoverRecord(); handoverRecord.HandoverRecordID = handoverRecordId; handoverRecord.DeviceNo = ConstantValuePool.BizSettingConfig.DeviceNo; handoverRecord.EmployeeID = ConstantValuePool.CurrentEmployee.EmployeeID; IList <HandoverTurnover> handoverTurnoverList = new List <HandoverTurnover>(); foreach (OrderPayoffSum item in bizReport.orderPayoffSumList) { HandoverTurnover handoverTurnover = new HandoverTurnover(); handoverTurnover.HandoverRecordID = handoverRecordId; handoverTurnover.PayoffID = item.PayoffID; handoverTurnover.SalesTurnover = item.PayoffMoney; handoverTurnoverList.Add(handoverTurnover); } HandoverInfo handover = new HandoverInfo(); handover.handoverRecord = handoverRecord; handover.handoverTurnoverList = handoverTurnoverList; bool result = HandoverService.GetInstance().CreateHandover(handover); if (result) { MessageBox.Show("交班成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); m_HandleSuccess = true; this.Close(); } else { MessageBox.Show("出现异常错误,请重新交班!"); } } else if (m_ModelType == 2) { //判断是否存在退款失败的账单 CardRefundPayService refundPayService = new CardRefundPayService(); List <CardRefundPay> cardRefundPayList = refundPayService.GetCardRefundPayList(); if (cardRefundPayList != null && cardRefundPayList.Count > 0) { FormVIPCardRefundPay refundPayForm = new FormVIPCardRefundPay(cardRefundPayList); refundPayForm.ShowDialog(); } FormChooseDate form = new FormChooseDate(bizReport.LastDailyStatementTime); form.ShowDialog(); if (form.DailyStatementDate != null) { string weather = this.cmbWeather.Text; if (string.IsNullOrEmpty(weather)) { MessageBox.Show("请先选择当天天气情况!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DateTime belongToDate = (DateTime)form.DailyStatementDate; DailyStatement dailyStatement = new DailyStatement(); dailyStatement.DeviceNo = ConstantValuePool.BizSettingConfig.DeviceNo; dailyStatement.BelongToDate = belongToDate; dailyStatement.Weather = weather; dailyStatement.EmployeeID = ConstantValuePool.CurrentEmployee.EmployeeID; DailyTurnover dailyTurnover = new DailyTurnover(); dailyTurnover.TotalRevenue = bizReport.TotalRevenue; dailyTurnover.CutOffTotalPrice = bizReport.CutOffTotalPrice; dailyTurnover.DiscountTotalPrice = bizReport.DiscountTotalPrice; dailyTurnover.ActualTotalIncome = bizReport.ActualTotalIncome; dailyTurnover.TotalServiceFee = bizReport.TotalServiceFee; dailyTurnover.StoredTotalPrice = 0; DailyBalance dailyBalance = new DailyBalance(); dailyBalance.dailyStatement = dailyStatement; dailyBalance.dailyTurnover = dailyTurnover; string unCheckDeviceNo; //未结账的设备号 int result = DailyBalanceService.GetInstance().CreateDailyBalance(dailyBalance, out unCheckDeviceNo); if (result == 1) { MessageBox.Show("日结成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); m_HandleSuccess = true; this.Close(); } else if (result == 2) { MessageBox.Show("存在未结账单据,请先结完账!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (result == 3) { if (string.IsNullOrEmpty(unCheckDeviceNo)) { MessageBox.Show("存在未交班的POS,请先交班!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (unCheckDeviceNo.IndexOf(',') == -1 && unCheckDeviceNo.IndexOf(ConstantValuePool.BizSettingConfig.DeviceNo) >= 0) { MessageBox.Show("当前设备未交班,请交班后进行日结!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show(string.Format("设备【{0}】未交班,请先交班!", unCheckDeviceNo), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show("出现异常错误,请重新日结!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
public void Update(DailyBalance entity) { throw new NotImplementedException(); }
public void Add(DailyBalance entity) { _context.DailyBalances.Add(entity); _context.SaveChanges(); }