/// <summary> /// Inserts the account balance. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <param name="suTransferDetail">The su transfer detail.</param> public void InsertAccountBalance(SUTransferEntity suTransfer, SUTransferDetailEntity suTransferDetail) { //insert AccountBalance for debit account var accountBalanceForDebit = AddAccountBalanceForDebit(suTransfer, suTransferDetail); var accountBalanceForDebitExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForDebit); if (accountBalanceForDebitExit != null) { UpdateAccountBalance(accountBalanceForDebitExit, accountBalanceForDebit.MovementDebitAmountOC, accountBalanceForDebit.MovementDebitAmount, true, 1); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForDebit); } //insert AccountBalance for credit account var accountBalanceForCredit = AddAccountBalanceForCredit(suTransfer, suTransferDetail); var accountBalanceForCreditExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForCredit); if (accountBalanceForCreditExit != null) { UpdateAccountBalance(accountBalanceForCreditExit, accountBalanceForCredit.MovementCreditAmountOC, accountBalanceForCredit.MovementCreditAmount, true, 2); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForCredit); } }
/// <summary> /// Deletes the sUIncrementDecrement. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <returns> /// System.String. /// </returns> public string DeleteSUTransfer(SUTransferEntity suTransfer) { const string sql = @"uspDelete_SUTransfer"; object[] parms = { "@RefID", suTransfer.RefId }; return(Db.Delete(sql, true, parms)); }
/// <summary> /// Updates the account balance. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <returns></returns> public string UpdateAccountBalance(SUTransferEntity suTransfer) { var paymentDetails = SUTransferDetailDao.GetSUTransferDetailsByRefId(suTransfer.RefId); foreach (var paymentDetail in paymentDetails) { string message; var accountBalanceForDebit = AddAccountBalanceForDebit(suTransfer, paymentDetail); var accountBalanceForDebitExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForDebit); if (accountBalanceForDebitExit != null) { message = UpdateAccountBalance(accountBalanceForDebitExit, accountBalanceForDebit.MovementDebitAmountOC, accountBalanceForDebit.MovementDebitAmount, false, 1); if (message != null) { return(message); } } var accountBalanceForCredit = AddAccountBalanceForCredit(suTransfer, paymentDetail); var accountBalanceForCreditExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForCredit); if (accountBalanceForCreditExit != null) { message = UpdateAccountBalance(accountBalanceForCreditExit, accountBalanceForCredit.MovementCreditAmountOC, accountBalanceForCredit.MovementCreditAmount, false, 2); if (message != null) { return(message); } } } return(null); }
/// <summary> /// Gets the sUIncrementDecrement by refdate and reftype. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <returns></returns> public SUTransferEntity GetSUTransferByRefdateAndReftype(SUTransferEntity suTransfer) { const string procedures = @"uspGet_SUTransfer_ByRefdateAndReftype"; object[] parms = { "@RefType", suTransfer.RefType, "@RefDate", suTransfer.RefDate, "@RefNo", suTransfer.RefNo }; return(Db.Read(procedures, true, Make, parms)); }
/// <summary> /// Takes the specified s u increment decrement entity. /// </summary> /// <param name="suTransferEntity">The su transfer entity.</param> /// <returns></returns> private static object[] Take(SUTransferEntity suTransferEntity) { return(new object[] { "@RefID", suTransferEntity.RefId, "@RefType", suTransferEntity.RefType, "@RefDate", suTransferEntity.RefDate, "@PostedDate", suTransferEntity.PostedDate, "@RefNo", suTransferEntity.RefNo, "@ParalellRefNo", suTransferEntity.ParalellRefNo, "@JournalMemo", suTransferEntity.JournalMemo, "@TotalAmount", suTransferEntity.TotalAmount, "@EditVersion", suTransferEntity.EditVersion }); }
/// <summary> /// Adds the account balance for debit. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <param name="suTransferDetail">The su transfer detail.</param> /// <returns></returns> public AccountBalanceEntity AddAccountBalanceForDebit(SUTransferEntity suTransfer, SUTransferDetailEntity suTransferDetail) { return(new AccountBalanceEntity { AccountBalanceId = Guid.NewGuid().ToString(), AccountNumber = suTransferDetail.DebitAccount, CurrencyCode = "VND", ExchangeRate = 1, BalanceDate = suTransfer.PostedDate, MovementDebitAmountOC = suTransferDetail.Amount, MovementDebitAmount = suTransferDetail.Amount, MovementCreditAmountOC = 0, MovementCreditAmount = 0, BudgetChapterCode = suTransferDetail.BudgetChapterCode }); }
//private List<BankInfo> banks; public List <SUTransferEntity> GetSUTransfers(string connectionString) { List <SUTransferEntity> buentity = new List <SUTransferEntity>(); using (var context = new MISAEntity(connectionString)) { var querry = context.SUTransferDetails.ToList(); //var projects = context.Projects.ToList(); //var currencys = context.CCies.ToList(); //var budgetsource = context.BudgetSources.ToList(); var listitems = context.ListItems.ToList(); //var funds = context.Funds.ToList(); //var fundstructures = context.FundStructures.ToList(); //var budgetproviders = context.BudgetProvidences.ToList(); //var accountingobject = context.AccountingObjects.ToList(); //var projectexpenses = context.ProjectExpenses.ToList(); //var activity = context.Activities.ToList(); //var tasks = context.Tasks.ToList(); //var stocks = context.Stocks.ToList(); //var topics = context.Topics.ToList(); //var fixedassets = context.FixedAssets.ToList(); var departments = context.Departments.ToList(); //var purchasepurposes = context.PurchasePurposes.ToList(); var inventoryitems = context.InventoryItems.ToList(); //banks = context.BankInfoes.ToList(); var resultcontext = context.SUTransfers.ToList(); foreach (var result in resultcontext) { var newresult = new SUTransferEntity(); newresult.RefId = result.RefID.ToString(); newresult.RefType = ConvRefType.ConvRefType(result.RefType); newresult.RefDate = result.RefDate; newresult.PostedDate = result.PostedDate; newresult.RefNo = result.RefNo; newresult.ParalellRefNo = result.ParalellRefNo; newresult.JournalMemo = result.JournalMemo; newresult.TotalAmount = result.TotalAmount; newresult.Posted = result.Posted; newresult.PostVersion = result.PostVersion; newresult.EditVersion = result.EditVersion; newresult.SUTransferDetails = result.SUTransferDetails.Count <= 0 ? null : SUTransferDetails(result.SUTransferDetails.ToList(), result.RefID.ToString()); buentity.Add(newresult); } } return(buentity); }
/// <summary> /// Updates the sUIncrementDecrement. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <returns> /// System.String. /// </returns> public string UpdateSUTransfer(SUTransferEntity suTransfer) { const string sql = @"uspUpdate_SUTransfer"; return(Db.Update(sql, true, Take(suTransfer))); }
/// <summary> /// Inserts the sUIncrementDecrement. /// </summary> /// <param name="suTransfer">The su transfer.</param> /// <returns> /// System.Int32. /// </returns> public string InsertSUTransfer(SUTransferEntity suTransfer) { const string sql = @"uspInsert_SUTransfer"; return(Db.Insert(sql, true, Take(suTransfer))); }
/// <summary> /// Updates the ba deposit. /// </summary> /// <param name="suTransferEntity">The su transfer entity.</param> /// <returns></returns> public SUTransferResponse UpdateSUTransfer(SUTransferEntity suTransferEntity) { var response = new SUTransferResponse { Acknowledge = AcknowledgeType.Success }; try { if (!suTransferEntity.Validate()) { foreach (var error in suTransferEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } using (var scope = new TransactionScope()) { var suTransfer = SUTransferDao.GetSUTransfer(suTransferEntity.RefNo.Trim(), suTransferEntity.PostedDate); if (suTransfer != null && suTransfer.PostedDate.Year == suTransferEntity.PostedDate.Year) { if (suTransfer.RefId != suTransferEntity.RefId) { response.Acknowledge = AcknowledgeType.Failure; response.Message = @"Số chứng từ " + suTransferEntity.RefNo + @" đã tồn tại !"; return(response); } } response.Message = SUTransferDao.UpdateSUTransfer(suTransferEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region Update account balance //Trừ đi số tiền của chứng từ cũ trước khi cộng thêm số tiền mới UpdateAccountBalance(suTransferEntity); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion #region Delete detail and insert detail // Xóa bảng SUTransferDetail response.Message = SUTransferDetailDao.DeleteSUTransferDetailByRefId(suTransferEntity.RefId); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } // Xóa bảng OriginalGeneralLedger response.Message = OriginalGeneralLedgerDao.DeleteOriginalGeneralLedger(suTransferEntity.RefId); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } // Xóa bảng SupplyLedger response.Message = SupplyLedgerDao.DeleteSupplyLedgerByRefId(suTransferEntity.RefId, suTransferEntity.RefType); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } if (suTransferEntity.SUTransferDetails != null) { foreach (var suTransferDetail in suTransferEntity.SUTransferDetails) { if (suTransferEntity.RefType == (int)BuCA.Enum.RefType.SUTransfer) { AutoMapper(GetUnitsInDepartment(suTransferDetail.InventoryItemId, suTransferDetail.FromDepartmentId, suTransferDetail.Quantity, suTransferDetail.Description), response); if (response.Acknowledge == AcknowledgeType.Failure) { return(response); } } suTransferDetail.RefDetailId = Guid.NewGuid().ToString(); suTransferDetail.RefId = suTransferEntity.RefId; response.Message = SUTransferDetailDao.InsertSUTransferDetail(suTransferDetail); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region Insert into AccountBalance // Cộng thêm số tiền mới sau khi sửa chứng từ InsertAccountBalance(suTransferEntity, suTransferDetail); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion #region Insert OriginalGeneralLedger var originalGeneralLedgerEntity = new OriginalGeneralLedgerEntity { OriginalGeneralLedgerId = Guid.NewGuid().ToString(), RefType = suTransferEntity.RefType, RefId = suTransferEntity.RefId, RefDetailId = suTransferDetail.RefDetailId, RefDate = suTransferEntity.RefDate, RefNo = suTransferEntity.RefNo, Amount = suTransferDetail.Amount, BudgetChapterCode = suTransferDetail.BudgetChapterCode, CreditAccount = suTransferDetail.CreditAccount, DebitAccount = suTransferDetail.DebitAccount, Description = suTransferDetail.Description, JournalMemo = suTransferEntity.JournalMemo, SortOrder = suTransferDetail.SortOrder, PostedDate = suTransferEntity.PostedDate, // Không có Currency trong db : mặc định VNĐ và 1 CurrencyCode = "VND", ExchangeRate = 1, }; response.Message = OriginalGeneralLedgerDao.InsertOriginalGeneralLedger(originalGeneralLedgerEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #endregion #region Insert SupplyLedger if (suTransferDetail.InventoryItemId != null) { var supplyLedgerEntity = new SupplyLedgerEntity { SupplyLedgerId = Guid.NewGuid().ToString(), RefId = suTransferEntity.RefId, RefType = suTransferEntity.RefType, RefNo = suTransferEntity.RefNo, RefDate = suTransferEntity.RefDate, PostedDate = suTransferEntity.PostedDate, DepartmentId = suTransferDetail.FromDepartmentId, InventoryItemId = suTransferDetail.InventoryItemId, Unit = suTransferDetail.Unit, UnitPrice = suTransferDetail.UnitPrice, IncrementQuantity = 0, DecrementQuantity = suTransferDetail.Quantity, IncrementAmount = 0, DecrementAmount = suTransferDetail.Amount, JournalMemo = suTransferEntity.JournalMemo, Description = suTransferDetail.Description, AccountNumber = suTransferDetail.DebitAccount, RefDetailId = suTransferDetail.RefDetailId }; response.Message = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } //insert lan 2 supplyLedgerEntity.SupplyLedgerId = Guid.NewGuid().ToString(); supplyLedgerEntity.AccountNumber = suTransferDetail.CreditAccount; supplyLedgerEntity.DepartmentId = suTransferDetail.ToDepartmentId; supplyLedgerEntity.IncrementQuantity = suTransferDetail.Quantity; supplyLedgerEntity.DecrementQuantity = 0; supplyLedgerEntity.IncrementAmount = suTransferDetail.Amount; supplyLedgerEntity.DecrementAmount = 0; response.Message = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } } #endregion } } #endregion scope.Complete(); } response.RefId = suTransferEntity.RefId; return(response); } catch (Exception ex) { response.Message = ex.Message; return(response); } }