public string DeleteSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrement) { const string sql = @"uspDelete_SUIncrementDecrement"; object[] parms = { "@RefID", sUIncrementDecrement.RefId }; return(Db.Delete(sql, true, parms)); }
/// <summary> /// Inserts the account balance. /// </summary> /// <param name="suIncrementDecrement">The su increment decrement.</param> /// <param name="suIncrementDecrementDetail">The su increment decrement detail.</param> public void InsertAccountBalance(SUIncrementDecrementEntity suIncrementDecrement, SUIncrementDecrementDetailEntity suIncrementDecrementDetail) { //insert AccountBalance for debit account var accountBalanceForDebit = AddAccountBalanceForDebit(suIncrementDecrement, suIncrementDecrementDetail); 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(suIncrementDecrement, suIncrementDecrementDetail); var accountBalanceForCreditExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForCredit); if (accountBalanceForCreditExit != null) { UpdateAccountBalance(accountBalanceForCreditExit, accountBalanceForCredit.MovementCreditAmountOC, accountBalanceForCredit.MovementCreditAmount, true, 2); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForCredit); } }
private SupplyLedgerEntity MakeSupplyLedger(SUIncrementDecrementEntity suIncrementDecrement, SUIncrementDecrementDetailEntity suIncrementDecrementDetail) { var result = new SupplyLedgerEntity(); result.SupplyLedgerId = 0; result.RefId = suIncrementDecrement.RefId; result.RefDetailId = suIncrementDecrementDetail.RefDetailId; result.RefType = suIncrementDecrement.RefType; result.RefNo = suIncrementDecrement.RefNo; result.RefDate = suIncrementDecrement.RefDate; result.PostedDate = suIncrementDecrement.PostedDate; result.Description = suIncrementDecrementDetail.Description; result.JournalMemo = suIncrementDecrement.JournalMemo; result.InventoryItemId = suIncrementDecrementDetail.InventoryItemId; result.DepartmentId = suIncrementDecrementDetail.DepartmentId; result.CurrencyCode = suIncrementDecrement.CurrencyCode; result.ExchangeRate = suIncrementDecrement.ExchangeRate; result.Unit = InventoryItemDao.GetInventoryItem(suIncrementDecrementDetail.InventoryItemId)?.Unit ?? null; result.Quantity = suIncrementDecrementDetail.Quantity; result.UnitPriceOc = suIncrementDecrementDetail.UnitPriceOc; result.UnitPriceExchange = suIncrementDecrementDetail.UnitPriceExchange; result.AmountOc = suIncrementDecrementDetail.AmountOc; result.AmountExchange = suIncrementDecrementDetail.AmountExchange; return(result); }
/// <summary> /// Updates the account balance. /// </summary> /// <param name="suIncrementDecrement">The su increment decrement.</param> /// <returns></returns> public string UpdateAccountBalance(SUIncrementDecrementEntity suIncrementDecrement) { var suIncrementDecrementDetails = SUIncrementDecrementDetailDao.GetSUIncrementDecrementDetailsByRefId(suIncrementDecrement.RefId); foreach (var suIncrementDecrementDetail in suIncrementDecrementDetails) { string message; var accountBalanceForDebit = AddAccountBalanceForDebit(suIncrementDecrement, suIncrementDecrementDetail); 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(suIncrementDecrement, suIncrementDecrementDetail); var accountBalanceForCreditExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForCredit); if (accountBalanceForCreditExit != null) { message = UpdateAccountBalance(accountBalanceForCreditExit, accountBalanceForCredit.MovementCreditAmountOC, accountBalanceForCredit.MovementCreditAmount, false, 2); if (message != null) { return(message); } } } return(null); }
public SUIncrementDecrementEntity GetSUIncrementDecrementByRefdateAndReftype(SUIncrementDecrementEntity sUIncrementDecrement) { const string procedures = @"uspGet_SUIncrementDecrement_ByRefdateAndReftype"; object[] parms = { "@RefType", sUIncrementDecrement.RefType, "@RefDate", sUIncrementDecrement.RefDate, "@RefNo", sUIncrementDecrement.RefNo }; return(Db.Read(procedures, true, Make, parms)); }
/// <summary> /// Takes the specified s u increment decrement entity. /// </summary> /// <param name="sUIncrementDecrementEntity">The s u increment decrement entity.</param> /// <returns></returns> private static object[] Take(SUIncrementDecrementEntity sUIncrementDecrementEntity) { return(new object[] { "@RefID", sUIncrementDecrementEntity.RefId, "@RefType", sUIncrementDecrementEntity.RefType, "@RefDate", sUIncrementDecrementEntity.RefDate, "@PostedDate", sUIncrementDecrementEntity.PostedDate, "@RefNo", sUIncrementDecrementEntity.RefNo, "@ParalellRefNo", sUIncrementDecrementEntity.ParalellRefNo, "@JournalMemo", sUIncrementDecrementEntity.JournalMemo, "@TotalAmount", sUIncrementDecrementEntity.TotalAmount, "@EditVersion", sUIncrementDecrementEntity.EditVersion }); }
private object[] Take(SUIncrementDecrementEntity sUIncrementDecrementDetail) { return(new object[] { "@RefID", sUIncrementDecrementDetail.RefId, "@RefType", sUIncrementDecrementDetail.RefType, "@RefDate", sUIncrementDecrementDetail.RefDate, "@PostedDate", sUIncrementDecrementDetail.PostedDate, "@RefNo", sUIncrementDecrementDetail.RefNo, "@JournalMemo", sUIncrementDecrementDetail.JournalMemo, "@CurrencyCode", sUIncrementDecrementDetail.CurrencyCode, "@ExchangeRate", sUIncrementDecrementDetail.ExchangeRate, "@TotalAmountOc", sUIncrementDecrementDetail.TotalAmountOc, "@TotalAmountExchange", sUIncrementDecrementDetail.TotalAmountExchange }); }
//private List<BankInfo> banks; public List <SUIncrementDecrementEntity> GetSUIncrementDecrements(string connectionString) { List <SUIncrementDecrementEntity> buentity = new List <SUIncrementDecrementEntity>(); using (var context = new MISAEntity(connectionString)) { var querry = context.SUIncrementDecrementDetails.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.SUIncrementDecrements.ToList(); foreach (var result in resultcontext) { var newresult = new SUIncrementDecrementEntity(); 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.EditVersion = result.EditVersion; newresult.SUIncrementDecrementDetails = result.SUIncrementDecrementDetails.Count <= 0 ? null : SUIncrementDecrementDetails(result.SUIncrementDecrementDetails.ToList(), result.RefID.ToString()); buentity.Add(newresult); } } return(buentity); }
/// <summary> /// Adds the account balance for debit. /// </summary> /// <param name="suIncrementDecrement">The su increment decrement.</param> /// <param name="suIncrementDecrementDetail">The su increment decrement detail.</param> /// <returns></returns> public AccountBalanceEntity AddAccountBalanceForDebit(SUIncrementDecrementEntity suIncrementDecrement, SUIncrementDecrementDetailEntity suIncrementDecrementDetail) { return(new AccountBalanceEntity { AccountBalanceId = Guid.NewGuid().ToString(), AccountNumber = suIncrementDecrementDetail.DebitAccount, CurrencyCode = "VND", ExchangeRate = 1, BalanceDate = suIncrementDecrement.PostedDate, MovementDebitAmountOC = suIncrementDecrementDetail.Amount, MovementDebitAmount = suIncrementDecrementDetail.Amount, MovementCreditAmountOC = 0, MovementCreditAmount = 0, BudgetSourceId = suIncrementDecrementDetail.BudgetSourceId, BudgetChapterCode = suIncrementDecrementDetail.BudgetChapterCode, BudgetKindItemCode = suIncrementDecrementDetail.BudgetKindItemCode, BudgetSubKindItemCode = suIncrementDecrementDetail.BudgetSubKindItemCode }); }
public string UpdateSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrement) { const string sql = @"uspUpdate_SUIncrementDecrement"; return(Db.Update(sql, true, Take(sUIncrementDecrement))); }
public long InsertSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrement) { const string sql = @"uspInsert_SUIncrementDecrement"; return(Db.Insert(sql, true, Take(sUIncrementDecrement))); }
internal static SUIncrementDecrementModel FromDataTransferObject(SUIncrementDecrementEntity entity) { return(entity == null ? null : AutoMapper.Mapper.Map <SUIncrementDecrementEntity, SUIncrementDecrementModel>(entity)); }
public SUIncrementDecrementResponse InsertSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrementEntity, bool isconvertDB) { var response = new SUIncrementDecrementResponse { Acknowledge = AcknowledgeType.Success }; try { if (!sUIncrementDecrementEntity.Validate()) { foreach (var error in sUIncrementDecrementEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } using (var scope = new TransactionScope()) { var sUIncrementDecrementByRefNo = SUIncrementDecrementDao.GetSUIncrementDecrementByRefNo(sUIncrementDecrementEntity.RefNo, sUIncrementDecrementEntity.PostedDate); if (sUIncrementDecrementByRefNo != null && sUIncrementDecrementByRefNo.PostedDate.Year == sUIncrementDecrementEntity.PostedDate.Year) { response.Acknowledge = AcknowledgeType.Failure; response.Message = "Mã chứng từ đã tồn tại!"; return(response); } sUIncrementDecrementEntity.RefId = SUIncrementDecrementDao.InsertSUIncrementDecrement(sUIncrementDecrementEntity); if (sUIncrementDecrementEntity.RefId <= 0) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region Insert Detail & SupplyLedger if (sUIncrementDecrementEntity.SUIncrementDecrementDetails != null) { foreach (var sUIncrementDecrementDetailEntity in sUIncrementDecrementEntity.SUIncrementDecrementDetails) { sUIncrementDecrementDetailEntity.RefId = sUIncrementDecrementEntity.RefId; sUIncrementDecrementDetailEntity.RefDetailId = SUIncrementDecrementDetailDao.InsertSUIncrementDecrementDetail(sUIncrementDecrementDetailEntity); if (sUIncrementDecrementDetailEntity.RefDetailId <= 0) { response.Acknowledge = AcknowledgeType.Failure; return(response); } var supplyLedgerEntity = MakeSupplyLedger(sUIncrementDecrementEntity, sUIncrementDecrementDetailEntity); supplyLedgerEntity.SupplyLedgerId = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (supplyLedgerEntity.SupplyLedgerId <= 0) { response.Acknowledge = AcknowledgeType.Failure; return(response); } } } #endregion #region Auto Number var autoNumber = AutoNumberDao.GetAutoNumberByRefType(sUIncrementDecrementEntity.RefType); if (sUIncrementDecrementEntity.CurrencyCode == "USD") { autoNumber.Value += 1; } else { autoNumber.ValueLocalCurency += 1; } response.Message = AutoNumberDao.UpdateAutoNumber(autoNumber); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion scope.Complete(); } response.RefId = sUIncrementDecrementEntity.RefId; return(response); } catch (Exception ex) { response.Message = ex.Message; return(response); } }
public SUIncrementDecrementResponse UpdateSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrementEntity) { var response = new SUIncrementDecrementResponse { Acknowledge = AcknowledgeType.Success }; try { if (!sUIncrementDecrementEntity.Validate()) { foreach (var error in sUIncrementDecrementEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } using (var scope = new TransactionScope()) { var sUIncrementDecrementByRefNo = SUIncrementDecrementDao.GetSUIncrementDecrementByRefNo(sUIncrementDecrementEntity.RefNo, sUIncrementDecrementEntity.PostedDate); if (sUIncrementDecrementByRefNo != null && sUIncrementDecrementByRefNo.RefId != sUIncrementDecrementEntity.RefId) { response.Acknowledge = AcknowledgeType.Failure; response.Message = "Mã chứng từ đã tồn tại!"; return(response); } response.Message = SUIncrementDecrementDao.UpdateSUIncrementDecrement(sUIncrementDecrementEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region Delete Detail & SupplyLedger response.Message = SUIncrementDecrementDetailDao.DeleteSUIncrementDecrementDetailByRefId(sUIncrementDecrementEntity.RefId); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } response.Message = SupplyLedgerDao.DeleteSupplyLedgerByRefId(sUIncrementDecrementEntity.RefId, sUIncrementDecrementEntity.RefType); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion #region Insert Detail & SupplyLedger if (sUIncrementDecrementEntity.SUIncrementDecrementDetails != null) { foreach (var sUIncrementDecrementDetailEntity in sUIncrementDecrementEntity.SUIncrementDecrementDetails) { sUIncrementDecrementDetailEntity.RefId = sUIncrementDecrementEntity.RefId; sUIncrementDecrementDetailEntity.RefDetailId = SUIncrementDecrementDetailDao.InsertSUIncrementDecrementDetail(sUIncrementDecrementDetailEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } var supplyLedgerEntity = MakeSupplyLedger(sUIncrementDecrementEntity, sUIncrementDecrementDetailEntity); supplyLedgerEntity.SupplyLedgerId = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (supplyLedgerEntity.SupplyLedgerId <= 0) { response.Acknowledge = AcknowledgeType.Failure; return(response); } } } #endregion scope.Complete(); } response.RefId = sUIncrementDecrementEntity.RefId; return(response); } catch (Exception ex) { response.Message = ex.Message; return(response); } }
/// <summary> /// Updates the ba deposit. /// </summary> /// <param name="sUIncrementDecrementEntity">The b a deposit entity.</param> /// <returns></returns> public SUIncrementDecrementResponse UpdateSUIncrementDecrement( SUIncrementDecrementEntity sUIncrementDecrementEntity) { var response = new SUIncrementDecrementResponse { Acknowledge = AcknowledgeType.Success }; try { if (!sUIncrementDecrementEntity.Validate()) { foreach (var error in sUIncrementDecrementEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } using (var scope = new TransactionScope()) { var sUIncrementDecrementByRefNo = SUIncrementDecrementDao.GetSUIncrementDecrementByRefNo(sUIncrementDecrementEntity.RefNo, sUIncrementDecrementEntity.PostedDate); if (sUIncrementDecrementByRefNo != null && sUIncrementDecrementByRefNo.RefId != sUIncrementDecrementEntity.RefId) { response.Acknowledge = AcknowledgeType.Failure; response.Message = "Mã chứng từ đã tồn tại!"; return(response); } response.Message = SUIncrementDecrementDao.UpdateSUIncrementDecrement(sUIncrementDecrementEntity); 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(sUIncrementDecrementEntity); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion #region Delete detail and insert detail // Xóa bảng SUIncrementDecrementDetail response.Message = SUIncrementDecrementDetailDao.DeleteSUIncrementDecrementDetailByRefId(sUIncrementDecrementEntity.RefId); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } // Xóa bảng SupplyLedger response.Message = SupplyLedgerDao.DeleteSupplyLedgerByRefId(sUIncrementDecrementEntity.RefId, sUIncrementDecrementEntity.RefType); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } if (sUIncrementDecrementEntity.SUIncrementDecrementDetails != null) { foreach (var sUIncrementDecrementDetailEntity in sUIncrementDecrementEntity.SUIncrementDecrementDetails) { if (sUIncrementDecrementEntity.RefType == (int)BuCA.Enum.RefType.SUDecrement) { AutoMapper(GetUnitsInDepartment(sUIncrementDecrementDetailEntity.InventoryItemId, sUIncrementDecrementDetailEntity.DepartmentId, sUIncrementDecrementDetailEntity.Quantity, sUIncrementDecrementDetailEntity.Description), response); if (response.Acknowledge == AcknowledgeType.Failure) { return(response); } } sUIncrementDecrementDetailEntity.RefDetailId = Guid.NewGuid().ToString(); sUIncrementDecrementDetailEntity.RefId = sUIncrementDecrementEntity.RefId; response.Message = SUIncrementDecrementDetailDao.InsertSUIncrementDecrementDetail(sUIncrementDecrementDetailEntity); 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(sUIncrementDecrementEntity, sUIncrementDecrementDetailEntity); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } #endregion #region Insert OriginalGeneralLedger // Xóa bảng OriginalGeneralLedger response.Message = OriginalGeneralLedgerDao.DeleteOriginalGeneralLedger(sUIncrementDecrementEntity.RefId); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } var originalGeneralLedgerEntity = new OriginalGeneralLedgerEntity { OriginalGeneralLedgerId = Guid.NewGuid().ToString(), RefType = sUIncrementDecrementEntity.RefType, RefId = sUIncrementDecrementEntity.RefId, RefDetailId = sUIncrementDecrementDetailEntity.RefDetailId, RefDate = sUIncrementDecrementEntity.RefDate, RefNo = sUIncrementDecrementEntity.RefNo, Amount = sUIncrementDecrementDetailEntity.Amount, BudgetChapterCode = sUIncrementDecrementDetailEntity.BudgetChapterCode, CreditAccount = sUIncrementDecrementDetailEntity.CreditAccount, DebitAccount = sUIncrementDecrementDetailEntity.DebitAccount, Description = sUIncrementDecrementDetailEntity.Description, JournalMemo = sUIncrementDecrementEntity.JournalMemo, SortOrder = sUIncrementDecrementDetailEntity.SortOrder, PostedDate = sUIncrementDecrementEntity.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 if (sUIncrementDecrementEntity.RefType == 205 || sUIncrementDecrementEntity.RefType == 206) { #region Insert SupplyLedger if (sUIncrementDecrementDetailEntity.InventoryItemId != null) { var supplyLedgerEntity = new SupplyLedgerEntity { SupplyLedgerId = Guid.NewGuid().ToString(), RefId = sUIncrementDecrementEntity.RefId, RefType = sUIncrementDecrementEntity.RefType, RefNo = sUIncrementDecrementEntity.RefNo, RefDate = sUIncrementDecrementEntity.RefDate, PostedDate = sUIncrementDecrementEntity.PostedDate, DepartmentId = sUIncrementDecrementDetailEntity.DepartmentId, InventoryItemId = sUIncrementDecrementDetailEntity.InventoryItemId, Unit = null, UnitPrice = sUIncrementDecrementDetailEntity.UnitPrice, IncrementQuantity = sUIncrementDecrementEntity.RefType == 205 ? sUIncrementDecrementDetailEntity.Quantity : 0, DecrementQuantity = sUIncrementDecrementEntity.RefType == 205 ? 0 : sUIncrementDecrementDetailEntity.Quantity, IncrementAmount = sUIncrementDecrementEntity.RefType == 205 ? sUIncrementDecrementDetailEntity.Amount : 0, DecrementAmount = sUIncrementDecrementEntity.RefType == 205 ? 0 : sUIncrementDecrementDetailEntity.Amount, JournalMemo = sUIncrementDecrementEntity.JournalMemo, Description = sUIncrementDecrementDetailEntity.Description, AccountNumber = sUIncrementDecrementDetailEntity.DebitAccount, RefDetailId = sUIncrementDecrementDetailEntity.RefDetailId }; response.Message = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } } #endregion } } } #endregion scope.Complete(); } response.RefId = sUIncrementDecrementEntity.RefId; return(response); } catch (Exception ex) { response.Message = ex.Message; return(response); } }
/// <summary> /// Inserts the ba deposit. /// </summary> /// <param name="sUIncrementDecrementEntity">The b a deposit entity.</param> /// <returns></returns> public SUIncrementDecrementResponse InsertSUIncrementDecrement(SUIncrementDecrementEntity sUIncrementDecrementEntity, bool isconvertDB) { var response = new SUIncrementDecrementResponse { Acknowledge = AcknowledgeType.Success }; try { if (!sUIncrementDecrementEntity.Validate()) { foreach (var error in sUIncrementDecrementEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } using (var scope = new TransactionScope()) { var sUIncrementDecrementByRefNo = SUIncrementDecrementDao.GetSUIncrementDecrementByRefNo(sUIncrementDecrementEntity.RefNo, sUIncrementDecrementEntity.PostedDate); if (sUIncrementDecrementByRefNo != null && sUIncrementDecrementByRefNo.PostedDate.Year == sUIncrementDecrementEntity.PostedDate.Year) { response.Acknowledge = AcknowledgeType.Failure; response.Message = "Mã chứng từ đã tồn tại!"; return(response); } sUIncrementDecrementEntity.RefId = Guid.NewGuid().ToString(); response.Message = SUIncrementDecrementDao.InsertSUIncrementDecrement(sUIncrementDecrementEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region insert SUIncrementDecrementDetails if (sUIncrementDecrementEntity.SUIncrementDecrementDetails != null) { foreach (var sUIncrementDecrementDetailEntity in sUIncrementDecrementEntity.SUIncrementDecrementDetails) { if (!isconvertDB)//AnhNT: Nếu không phải convert dữ liệu thì mới check số lượng tồn { if (sUIncrementDecrementEntity.RefType == (int)BuCA.Enum.RefType.SUDecrement) { AutoMapper( GetUnitsInDepartment(sUIncrementDecrementDetailEntity.InventoryItemId, sUIncrementDecrementDetailEntity.DepartmentId, sUIncrementDecrementDetailEntity.Quantity, sUIncrementDecrementDetailEntity.Description), response); if (response.Acknowledge == AcknowledgeType.Failure) { return(response); } } } sUIncrementDecrementDetailEntity.RefDetailId = Guid.NewGuid().ToString(); sUIncrementDecrementDetailEntity.RefId = sUIncrementDecrementEntity.RefId; response.Message = SUIncrementDecrementDetailDao.InsertSUIncrementDecrementDetail(sUIncrementDecrementDetailEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } #region Insert to AccountBalance InsertAccountBalance(sUIncrementDecrementEntity, sUIncrementDecrementDetailEntity); #endregion #region Insert OriginalGeneralLedger var originalGeneralLedgerEntity = new OriginalGeneralLedgerEntity { OriginalGeneralLedgerId = Guid.NewGuid().ToString(), RefType = sUIncrementDecrementEntity.RefType, RefId = sUIncrementDecrementEntity.RefId, RefDetailId = sUIncrementDecrementDetailEntity.RefDetailId, RefDate = sUIncrementDecrementEntity.RefDate, RefNo = sUIncrementDecrementEntity.RefNo, Amount = sUIncrementDecrementDetailEntity.Amount, BudgetChapterCode = sUIncrementDecrementDetailEntity.BudgetChapterCode, CreditAccount = sUIncrementDecrementDetailEntity.CreditAccount, DebitAccount = sUIncrementDecrementDetailEntity.DebitAccount, Description = sUIncrementDecrementDetailEntity.Description, JournalMemo = sUIncrementDecrementEntity.JournalMemo, SortOrder = sUIncrementDecrementDetailEntity.SortOrder, PostedDate = sUIncrementDecrementEntity.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 if (sUIncrementDecrementEntity.RefType == 205 || sUIncrementDecrementEntity.RefType == 206) { #region Insert SupplyLedger if (sUIncrementDecrementDetailEntity.InventoryItemId != null) { var supplyLedgerEntity = new SupplyLedgerEntity { SupplyLedgerId = Guid.NewGuid().ToString(), RefId = sUIncrementDecrementEntity.RefId, RefType = sUIncrementDecrementEntity.RefType, RefNo = sUIncrementDecrementEntity.RefNo, RefDate = sUIncrementDecrementEntity.RefDate, PostedDate = sUIncrementDecrementEntity.PostedDate, DepartmentId = sUIncrementDecrementDetailEntity.DepartmentId, InventoryItemId = sUIncrementDecrementDetailEntity.InventoryItemId, Unit = null, UnitPrice = sUIncrementDecrementDetailEntity.UnitPrice, IncrementQuantity = sUIncrementDecrementEntity.RefType == 205 ? sUIncrementDecrementDetailEntity.Quantity : 0, DecrementQuantity = sUIncrementDecrementEntity.RefType == 205 ? 0 : sUIncrementDecrementDetailEntity.Quantity, IncrementAmount = sUIncrementDecrementEntity.RefType == 205 ? sUIncrementDecrementDetailEntity.Amount : 0, DecrementAmount = sUIncrementDecrementEntity.RefType == 205 ? 0 : sUIncrementDecrementDetailEntity.Amount, JournalMemo = sUIncrementDecrementEntity.JournalMemo, Description = sUIncrementDecrementDetailEntity.Description, AccountNumber = sUIncrementDecrementDetailEntity.DebitAccount, RefDetailId = sUIncrementDecrementDetailEntity.RefDetailId }; response.Message = SupplyLedgerDao.InsertSupplyLedger(supplyLedgerEntity); if (!string.IsNullOrEmpty(response.Message)) { response.Acknowledge = AcknowledgeType.Failure; return(response); } } #endregion } } } #endregion scope.Complete(); } response.RefId = sUIncrementDecrementEntity.RefId; return(response); } catch (Exception ex) { response.Message = ex.Message; return(response); } }