public long SaveSupply(Supply supply, string userId) { var amount = (supply.Price * supply.Quantity); var supplyDTO = new DTO.SupplyDTO() { Quantity = supply.Quantity, SupplyDate = supply.SupplyDate, SupplyNumber = supply.SupplyNumber, BranchId = supply.BranchId, SupplierId = supply.SupplierId, Amount = amount, TruckNumber = supply.TruckNumber, Used = supply.Used, SupplyId = supply.SupplyId, WeightNoteNumber = supply.WeightNoteNumber, MoistureContent = supply.MoistureContent, NormalBags = supply.NormalBags, BagsOfStones = supply.BagsOfStones, Price = supply.Price, IsPaid = supply.IsPaid, StatusId = supply.StatusId, CreatedOn = supply.CreatedOn, TimeStamp = supply.TimeStamp, CreatedBy = supply.CreatedBy, Deleted = supply.Deleted, StoreId = supply.StoreId, }; var supplyId = this._dataService.SaveSupply(supplyDTO, userId); var storeMaizeStock = new StoreMaizeStock() { SupplyId = supplyId, Quantity = supply.Quantity, StoreId = supply.StoreId, BranchId = supply.BranchId, SectorId = Convert.ToInt64(sectorId), }; SaveStoreMaizeStock(storeMaizeStock, true); var notes = "Maize supply"; var accountActivity = new AccountTransactionActivity() { AspNetUserId = supply.SupplierId, Amount = amount, Notes = notes, Action = "+", BranchId = supply.BranchId, TransactionSubTypeId = Convert.ToInt64(supplyTransactionSubTypeId), SectorId = Convert.ToInt64(sectorId), Deleted = supply.Deleted, CreatedBy = userId, }; var accountActivityId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivity, userId); return(supplyId); }
public long SaveAccountTransactionActivity(AccountTransactionActivityDTO accountTransactionActivityDTO, string userId) { long accountTransactionActivityId = 0; if (accountTransactionActivityDTO.AccountTransactionActivityId == 0) { var accountTransactionActivity = new AccountTransactionActivity() { AspNetUserId = accountTransactionActivityDTO.AspNetUserId, CasualWorkerId = accountTransactionActivityDTO.CasualWorkerId, Amount = accountTransactionActivityDTO.Amount, StartAmount = accountTransactionActivityDTO.StartAmount, Notes = accountTransactionActivityDTO.Notes, Action = accountTransactionActivityDTO.Action, Balance = accountTransactionActivityDTO.Balance, SupplyId = accountTransactionActivityDTO.SupplyId, TransactionSubTypeId = accountTransactionActivityDTO.TransactionSubTypeId, BranchId = accountTransactionActivityDTO.BranchId, SectorId = accountTransactionActivityDTO.SectorId, CreatedOn = DateTime.Now, TimeStamp = DateTime.Now, CreatedBy = userId, Deleted = false, }; this.UnitOfWork.Get <AccountTransactionActivity>().AddNew(accountTransactionActivity); this.UnitOfWork.SaveChanges(); accountTransactionActivityId = accountTransactionActivity.AccountTransactionActivityId; return(accountTransactionActivityId); } else { var result = this.UnitOfWork.Get <AccountTransactionActivity>().AsQueryable() .FirstOrDefault(e => e.AccountTransactionActivityId == accountTransactionActivityDTO.AccountTransactionActivityId); if (result != null) { result.Action = accountTransactionActivityDTO.Action; result.Amount = accountTransactionActivityDTO.Amount; result.AspNetUserId = accountTransactionActivityDTO.AspNetUserId; result.CasualWorkerId = accountTransactionActivityDTO.CasualWorkerId; result.StartAmount = accountTransactionActivityDTO.StartAmount; result.Balance = accountTransactionActivityDTO.Balance; result.Notes = accountTransactionActivityDTO.Notes; result.SupplyId = accountTransactionActivityDTO.SupplyId; result.TransactionSubTypeId = accountTransactionActivityDTO.TransactionSubTypeId; result.BranchId = accountTransactionActivityDTO.BranchId; result.SectorId = accountTransactionActivityDTO.SectorId; result.TimeStamp = DateTime.Now; result.Deleted = accountTransactionActivityDTO.Deleted; result.DeletedBy = accountTransactionActivityDTO.DeletedBy; result.DeletedOn = accountTransactionActivityDTO.DeletedOn; this.UnitOfWork.Get <AccountTransactionActivity>().Update(result); this.UnitOfWork.SaveChanges(); } return(accountTransactionActivityDTO.AccountTransactionActivityId); } }
public long MakeSupplyPayment(MultipleSupplies model, AccountTransactionActivity accountActivity, string userId) { long accountActivityId = 0; string supplierId = ""; if (model.Supplies.Any()) { foreach (var supply in model.Supplies) { supplierId = supply.SupplierId; var supplyObject = new SupplyDTO() { SupplyId = supply.SupplyId, SupplierId = supply.SupplierId, SupplyNumber = supply.SupplyNumber, Price = supply.Price, Amount = supply.Amount, StoreId = supply.StoreId, BranchId = supply.BranchId, SupplyDate = supply.SupplyDate, TruckNumber = supply.TruckNumber, WeightNoteNumber = supply.WeightNoteNumber, Used = supply.Used, IsPaid = true, StatusId = supply.StatusId, Deleted = supply.Deleted, MoistureContent = supply.MoistureContent, BagsOfStones = supply.BagsOfStones, NormalBags = supply.NormalBags, Quantity = supply.Quantity, }; _dataService.SaveSupply(supplyObject, userId); } UpdateCreditorRecords(supplierId, accountActivity.Amount, userId, accountActivity.BranchId); var accountActivityObject = new AccountTransactionActivity() { AspNetUserId = accountActivity.AspNetUserId, CasualWorkerId = accountActivity.CasualWorkerId, Amount = accountActivity.Amount, Notes = accountActivity.Notes, AccountTransactionActivityId = accountActivity.AccountTransactionActivityId, Action = accountActivity.Action, BranchId = accountActivity.BranchId, TransactionSubTypeId = accountActivity.TransactionSubTypeId, SectorId = accountActivity.SectorId, Deleted = accountActivity.Deleted, CreatedBy = accountActivity.CreatedBy, CreatedOn = accountActivity.CreatedOn }; accountActivityId = _accountTransactionActivityService.SaveAccountTransactionActivity(accountActivityObject, userId); } return(accountActivityId); }
public AccountTransactionActivity GetLatestAccountTransactionActivitiesForAParticularCasualWorker(long casualWorkerId) { AccountTransactionActivity accountTransactionActivity = new AccountTransactionActivity(); var accountTransactionActivities = this.UnitOfWork.Get <AccountTransactionActivity>().AsQueryable().Where(e => e.CasualWorkerId == casualWorkerId); if (accountTransactionActivities.Any()) { accountTransactionActivity = accountTransactionActivities.AsQueryable().OrderByDescending(e => e.CreatedOn).First(); return(accountTransactionActivity); } else { return(accountTransactionActivity); } }
public long SaveCasualActivity(CasualActivity casualActivity, string userId) { var casualActivityDTO = new DTO.CasualActivityDTO() { CasualActivityId = casualActivity.CasualActivityId, BatchId = casualActivity.BatchId, CasualWorkerId = casualActivity.CasualWorkerId, Quantity = casualActivity.Quantity, ActivityId = casualActivity.ActivityId, BranchId = casualActivity.BranchId, Amount = casualActivity.Amount, Notes = casualActivity.Notes, Deleted = casualActivity.Deleted, CreatedBy = casualActivity.CreatedBy, CreatedOn = casualActivity.CreatedOn, SectorId = casualActivity.SectorId, }; var casualActivityId = this._dataService.SaveCasualActivity(casualActivityDTO, userId); var activityBatchCasualDTO = new DTO.ActivityBatchCasualDTO() { CasualWorkerId = casualActivity.CasualWorkerId, BatchId = casualActivity.BatchId, ActivityId = casualActivity.ActivityId, Amount = casualActivity.Amount, CreatedBy = userId, }; this._dataService.SaveActivityBatchCasual(activityBatchCasualDTO, userId); var accountActivityDTO = new AccountTransactionActivity() { TransactionSubTypeId = casualActivity.TransactionSubTypeId, Action = casualActivity.Action, Amount = casualActivity.Amount, Notes = casualActivity.Notes, CasualWorkerId = casualActivity.CasualWorkerId, BranchId = casualActivity.BranchId, SectorId = casualActivity.SectorId, Deleted = casualActivity.Deleted, CreatedBy = casualActivity.CreatedBy, CreatedOn = Convert.ToDateTime(casualActivity.CreatedOn) }; var accountActivityId = _accountTransactionActivityService.SaveAccountTransactionActivity(accountActivityDTO, userId); return(casualActivityId); }
public AccountTransactionActivity MapEFToModel(EF.Models.AccountTransactionActivity data) { var accountName = string.Empty; if (data.AspNetUser != null) { accountName = _userService.GetUserFullName(data.AspNetUser); } else { accountName = data.CasualWorker.FirstName + ' ' + data.CasualWorker.LastName; } var accountTransactionActivity = new AccountTransactionActivity() { AspNetUserId = data.AspNetUserId, CasualWorkerId = data.CasualWorkerId, Action = data.Action, StartAmount = data.StartAmount, Balance = data.Balance, Amount = data.Amount, Notes = data.Notes, AccountTransactionActivityId = data.AccountTransactionActivityId, BranchId = data.BranchId, BranchName = data.Branch != null?data.Branch.Name:"", SectorId = data.SectorId, SectorName = data.Sector != null?data.Sector.Name:"", TransactionSubTypeId = data.TransactionSubTypeId, TransactionSubTypeName = data.TransactionSubType != null?data.TransactionSubType.Name:"", CreatedOn = data.CreatedOn, TimeStamp = data.TimeStamp, Deleted = data.Deleted, CreatedBy = _userService.GetUserFullName(data.AspNetUser), AccountName = accountName, }; return(accountTransactionActivity); }
public long MakeSupplyPayment(MultipleSupplies model, AccountTransactionActivity accountActivity, string userId) { long accountActivityId = 0; //long defaultBranchId = 2; string supplierId = ""; if (model.Supplies.Any()) { foreach (var supply in model.Supplies) { supplierId = supply.SupplierId; var supplyObject = new SupplyDTO() { SupplyId = supply.SupplyId, SupplierId = supply.SupplierId, //SupplyNumber = supply.SupplyNumber, Price = supply.Price, Amount = supply.Amount, AmountToPay = supply.AmountToPay, StoreId = supply.StoreId, BranchId = supply.BranchId, SupplyDate = supply.SupplyDate, TruckNumber = supply.TruckNumber, WeightNoteNumber = supply.WeightNoteNumber, Used = supply.Used, IsPaid = true, StatusId = supply.StatusId, Deleted = supply.Deleted, MoistureContent = supply.MoistureContent, BagsOfStones = supply.BagsOfStones, NormalBags = supply.NormalBags, Quantity = supply.Quantity, Offloading = supply.Offloading, }; _dataService.SaveSupply(supplyObject, userId); } UpdateCreditorRecords(supplierId, accountActivity.Amount, userId); var accountActivityObject = new AccountTransactionActivity() { AspNetUserId = accountActivity.AspNetUserId, CasualWorkerId = accountActivity.CasualWorkerId, Amount = accountActivity.Amount, Notes = accountActivity.Notes, AccountTransactionActivityId = accountActivity.AccountTransactionActivityId, Action = accountActivity.Action, BranchId = accountActivity.BranchId, TransactionSubTypeId = accountActivity.TransactionSubTypeId, SectorId = accountActivity.SectorId, Deleted = accountActivity.Deleted, CreatedBy = accountActivity.CreatedBy, CreatedOn = accountActivity.CreatedOn }; accountActivityId = _accountTransactionActivityService.SaveAccountTransactionActivity(accountActivityObject, userId); if (accountActivity.PaymentModeId == 2) { if (accountActivity.BranchId == 0 || accountActivity.BranchId == null) { Cash cash = new Cash() { Amount = accountActivity.Amount, Notes = accountActivity.Notes, Action = accountActivity.Action, BranchId = Convert.ToInt64(accountActivity.BranchId), TransactionSubTypeId = accountActivity.TransactionSubTypeId, SectorId = accountActivity.SectorId, }; _cashService.SaveApplicationCash(cash, userId); } else { Cash cash = new Cash() { Amount = accountActivity.Amount, Notes = accountActivity.Notes, Action = accountActivity.Action, BranchId = Convert.ToInt64(accountActivity.BranchId), TransactionSubTypeId = accountActivity.TransactionSubTypeId, SectorId = accountActivity.SectorId, }; _cashService.SaveCash(cash, userId); } } } return(accountActivityId); }
public long SaveSupply(Supply supply, string userId) { double amount = 0, totalBags = 0, offloadingFee = 0, amountToPay = 0; amount = (supply.Price * supply.Quantity); var supplies = GetAllSuppliesForAParticularSupplier(supply.SupplierId); if (supplies.Any()) { foreach (var supplierSupply in supplies) { bool equals = supplierSupply.WeightNoteNumber.Equals(supply.WeightNoteNumber, StringComparison.OrdinalIgnoreCase); if (equals) { return(-1); } } } if (supply.Offloading == "NO") { totalBags = supply.NormalBags + supply.BagsOfStones; offloadingFee = totalBags * (Convert.ToDouble(offloadingRate)); amountToPay = amount - offloadingFee; } else { amountToPay = amount; } var supplyDTO = new DTO.SupplyDTO() { Quantity = supply.Quantity, SupplyDate = supply.SupplyDate, //SupplyNumber = supply.SupplyNumber, BranchId = supply.BranchId, SupplierId = supply.SupplierId, Amount = amount, TruckNumber = supply.TruckNumber, AmountToPay = amountToPay, Used = supply.Used, SupplyId = supply.SupplyId, WeightNoteNumber = supply.WeightNoteNumber, MoistureContent = supply.MoistureContent, NormalBags = supply.NormalBags, BagsOfStones = supply.BagsOfStones, Price = supply.Price, IsPaid = supply.IsPaid, StatusId = supply.StatusId, CreatedOn = supply.CreatedOn, TimeStamp = supply.TimeStamp, CreatedBy = supply.CreatedBy, Deleted = supply.Deleted, StoreId = supply.StoreId, Offloading = supply.Offloading, }; var supplyId = this._dataService.SaveSupply(supplyDTO, userId); var storeMaizeStock = new StoreMaizeStock() { SupplyId = supplyId, Quantity = supply.Quantity, StoreId = supply.StoreId, BranchId = supply.BranchId, SectorId = Convert.ToInt64(sectorId), }; SaveStoreMaizeStock(storeMaizeStock, true); var notes = "Maize supply"; var accountActivity = new AccountTransactionActivity() { AspNetUserId = supply.SupplierId, Amount = amount, Notes = notes, Action = "+", BranchId = supply.BranchId, TransactionSubTypeId = Convert.ToInt64(supplyTransactionSubTypeId), SectorId = Convert.ToInt64(sectorId), Deleted = supply.Deleted, CreatedBy = userId, SupplyId = supplyId, }; var accountActivityId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivity, userId); var offLoadingNotes = "Offloading fee"; var accountActivityOffloading = new AccountTransactionActivity() { AspNetUserId = supply.SupplierId, Amount = offloadingFee, Notes = offLoadingNotes, Action = "-", BranchId = supply.BranchId, TransactionSubTypeId = Convert.ToInt64(offLoadingTransactionSubTypeId), SectorId = Convert.ToInt64(sectorId), Deleted = supply.Deleted, CreatedBy = userId, SupplyId = supplyId, }; var accountActivityOffloadingId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivityOffloading, userId); return(supplyId); }
public long Save(AccountTransactionActivity model) { var accountTransactionActivityId = _accountTransactionActivityService.SaveAccountTransactionActivity(model, userId); return(accountTransactionActivityId); }
public long SaveAccountTransactionActivity(AccountTransactionActivity accountTransactionActivity, string userId) { long accountTransactionActivityId = 0; double startAmount = 0; double OldBalance = 0; double NewBalance = 0; if (accountTransactionActivity.AspNetUserId != null) { OldBalance = GetBalanceForLastAccountAccountTransactionActivity(accountTransactionActivity.AspNetUserId); startAmount = OldBalance; } else { OldBalance = GetBalanceForLastAccountAccountTransactionActivity(Convert.ToString(accountTransactionActivity.CasualWorkerId)); startAmount = OldBalance; } if (accountTransactionActivity.Action == "-") { NewBalance = OldBalance - accountTransactionActivity.Amount; } else { NewBalance = OldBalance + accountTransactionActivity.Amount; } var accountTransactionActivityDTO = new DTO.AccountTransactionActivityDTO() { AspNetUserId = accountTransactionActivity.AspNetUserId, CasualWorkerId = accountTransactionActivity.CasualWorkerId, Amount = accountTransactionActivity.Amount, StartAmount = startAmount, Balance = NewBalance, Notes = accountTransactionActivity.Notes, AccountTransactionActivityId = accountTransactionActivity.AccountTransactionActivityId, Action = accountTransactionActivity.Action, BranchId = accountTransactionActivity.BranchId, TransactionSubTypeId = accountTransactionActivity.TransactionSubTypeId, SectorId = accountTransactionActivity.SectorId, Deleted = accountTransactionActivity.Deleted, CreatedBy = accountTransactionActivity.CreatedBy, CreatedOn = accountTransactionActivity.CreatedOn }; accountTransactionActivityId = this._dataService.SaveAccountTransactionActivity(accountTransactionActivityDTO, userId); long transactionTypeId = 0; List <string> transactionSubTypeNames = new List <string>(); var transactionSubType = _transactionSubTypeService.GetTransactionSubType(accountTransactionActivity.TransactionSubTypeId); if (transactionSubType != null) { transactionTypeId = transactionSubType.TransactionTypeId; if (transactionSubType.Name == "Credit" || transactionSubType.Name == "Advance" || accountTransactionActivity.PaymentMode == "Credit") { var debtorDTO = new DTO.DebtorDTO() { AspNetUserId = accountTransactionActivity.AspNetUserId, Action = false, Amount = accountTransactionActivity.Amount, CasualWorkerId = accountTransactionActivity.CasualWorkerId, BranchId = Convert.ToInt64(accountTransactionActivity.BranchId), SectorId = accountTransactionActivity.SectorId, Deleted = accountTransactionActivity.Deleted, CreatedBy = accountTransactionActivity.CreatedBy, CreatedOn = accountTransactionActivity.CreatedOn }; var debtorId = _debtorDataService.SaveDebtor(debtorDTO, userId); } else if (transactionSubType.Name == "Deposit" || transactionSubType.Name == "maize purchase" || transactionSubType.Name == "Casual labour") { var creditorDTO = new DTO.CreditorDTO() { AspNetUserId = accountTransactionActivity.AspNetUserId, Action = false, Amount = accountTransactionActivity.Amount, CasualWorkerId = accountTransactionActivity.CasualWorkerId, BranchId = Convert.ToInt64(accountTransactionActivity.BranchId), SectorId = accountTransactionActivity.SectorId, Deleted = accountTransactionActivity.Deleted, CreatedBy = accountTransactionActivity.CreatedBy, CreatedOn = accountTransactionActivity.CreatedOn }; var creditorId = _creditorDataService.SaveCreditor(creditorDTO, userId); } else if (transactionSubType.Name == "OffLoading") { double offloadingAmount = 0; if (accountTransactionActivity.Amount > 0) { offloadingAmount = accountTransactionActivity.Amount * -1; } var creditorDTO = new DTO.CreditorDTO() { AspNetUserId = accountTransactionActivity.AspNetUserId, Action = false, Amount = offloadingAmount, CasualWorkerId = accountTransactionActivity.CasualWorkerId, BranchId = Convert.ToInt64(accountTransactionActivity.BranchId), SectorId = accountTransactionActivity.SectorId, Deleted = accountTransactionActivity.Deleted, CreatedBy = accountTransactionActivity.CreatedBy, CreatedOn = accountTransactionActivity.CreatedOn }; var creditorId = _creditorDataService.SaveCreditor(creditorDTO, userId); } var transaction = new TransactionDTO() { BranchId = Convert.ToInt64(accountTransactionActivity.BranchId), SectorId = accountTransactionActivity.SectorId, Amount = accountTransactionActivity.Amount, TransactionSubTypeId = accountTransactionActivity.TransactionSubTypeId, TransactionTypeId = transactionTypeId, CreatedOn = DateTime.Now, TimeStamp = DateTime.Now, CreatedBy = userId, Deleted = false, }; var transactionId = _transactionDataService.SaveTransaction(transaction, userId); } return(accountTransactionActivityId); }
public long SaveDelivery(Delivery delivery, string userId) { long deliveryId = 0; MakeDelivery makeDelivery = new MakeDelivery(); if (delivery.OrderId != 0) { //var order = _orderService.GetOrder(delivery.OrderId); if (delivery.ProductId == 2) { var deliveryDTO = new DTO.DeliveryDTO() { StoreId = delivery.StoreId, CustomerId = delivery.CustomerId, DeliveryCost = delivery.DeliveryCost, OrderId = delivery.OrderId, VehicleNumber = delivery.VehicleNumber, BranchId = delivery.BranchId, SectorId = delivery.SectorId, PaymentModeId = delivery.PaymentModeId, BatchId = delivery.BatchId, Price = delivery.Price, Quantity = delivery.Quantity, ProductId = delivery.ProductId, Amount = delivery.Amount, Location = delivery.Location, TransactionSubTypeId = delivery.TransactionSubTypeId, MediaId = delivery.MediaId, DeliveryId = delivery.DeliveryId, DriverName = delivery.DriverName, DriverNIN = delivery.DriverNIN, Deleted = delivery.Deleted, CreatedBy = delivery.CreatedBy, CreatedOn = delivery.CreatedOn, }; makeDelivery = MakeBrandDeliveryRecord(delivery.StoreId, delivery, userId); if (makeDelivery.StockReduced && (makeDelivery.OrderQuantityBalance == 0 || makeDelivery.OrderQuantityBalance > 0)) { deliveryId = this._dataService.SaveDelivery(deliveryDTO, userId); //StringBuilder sb = new StringBuilder(); //string strNewPath = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["MbaleReceipt"]); //using (StreamReader sr = new StreamReader(strNewPath)) //{ // while (!sr.EndOfStream) // { // sb.Append(sr.ReadLine()); // } //} //string body = sb.ToString().Replace("#CUSTOMERNAME#", deliveryDTO.CustomerId); //body = body.Replace("#AMOUNT#", deliveryDTO.Amount); //try //{ //} //catch (Exception ex) //{ // logger.Debug("receipt Not generated: " + ex.Message); //} var deliveryStockDTO = new DeliveryStockDTO() { StockId = makeDelivery.StockId, DeliveryId = deliveryId, }; _dataService.SaveDeliveryStock(deliveryStockDTO); _orderService.UpdateOrderWithCompletedStatus(delivery.OrderId, orderStatusIdComplete, userId); } else if (makeDelivery.StockReduced && makeDelivery.OrderQuantityBalance < 0) { deliveryId = this._dataService.SaveDelivery(deliveryDTO, userId); if (makeDelivery.OrderQuantityBalance != 0) { var deliveryStockDTO = new DeliveryStockDTO() { StockId = makeDelivery.StockId, DeliveryId = deliveryId, }; _dataService.SaveDeliveryStock(deliveryStockDTO); _orderService.UpdateOrderWithInProgressStatus(delivery.OrderId, orderStatusIdInProgress, userId); } } } else { //if order.ProductId == 1 var deliveryDTO = new DTO.DeliveryDTO() { StoreId = delivery.StoreId, CustomerId = delivery.CustomerId, DeliveryCost = delivery.DeliveryCost, OrderId = delivery.OrderId, VehicleNumber = delivery.VehicleNumber, BranchId = delivery.BranchId, SectorId = delivery.SectorId, PaymentModeId = delivery.PaymentModeId, BatchId = delivery.BatchId, Price = delivery.Price, ProductId = delivery.ProductId, Amount = delivery.Amount, Quantity = delivery.Quantity, Location = delivery.Location, TransactionSubTypeId = delivery.TransactionSubTypeId, MediaId = delivery.MediaId, DeliveryId = delivery.DeliveryId, DriverName = delivery.DriverName, DriverNIN = delivery.DriverNIN, Deleted = delivery.Deleted, CreatedBy = delivery.CreatedBy, CreatedOn = delivery.CreatedOn, }; makeDelivery = MakeFlourDeliveryRecord(delivery.StoreId, delivery, userId); if (makeDelivery.StockReduced && makeDelivery.OrderQuantityBalance == 0) { deliveryId = this._dataService.SaveDelivery(deliveryDTO, userId); var deliveryStockDTO = new DeliveryStockDTO() { StockId = makeDelivery.StockId, DeliveryId = deliveryId, }; _dataService.SaveDeliveryStock(deliveryStockDTO); _orderService.UpdateOrderWithCompletedStatus(delivery.OrderId, orderStatusIdComplete, userId); List <DeliveryGradeSize> deliveryGradeSizeList = new List <DeliveryGradeSize>(); foreach (var grade in delivery.Grades) { long sizeId = 0; double amount = 0, price = 0, quantity = 0; foreach (var denomination in grade.Denominations) { sizeId = denomination.DenominationId; price = denomination.Price; quantity = denomination.Quantity; amount = (denomination.Quantity * denomination.Price); var deliveryGradeSize = new DeliveryGradeSize() { DeliveryId = deliveryId, GradeId = grade.GradeId, SizeId = sizeId, Quantity = quantity, Price = price, Amount = amount, TimeStamp = DateTime.Now, }; deliveryGradeSizeList.Add(deliveryGradeSize); } } this._dataService.PurgeDeliveryGradeSize(deliveryId); this.SaveDeliveryGradeSizeList(deliveryGradeSizeList); } else { deliveryId = this._dataService.SaveDelivery(deliveryDTO, userId); if (makeDelivery.OrderQuantityBalance != 0) { var deliveryStockDTO = new DeliveryStockDTO() { StockId = makeDelivery.StockId, DeliveryId = deliveryId, }; _dataService.SaveDeliveryStock(deliveryStockDTO); _orderService.UpdateOrderWithInProgressStatus(delivery.OrderId, orderStatusIdInProgress, userId); List <DeliveryGradeSize> deliveryGradeSizeList = new List <DeliveryGradeSize>(); foreach (var grade in delivery.Grades) { long sizeId = 0; double amount = 0, price = 0, quantity = 0; foreach (var denomination in grade.Denominations) { sizeId = denomination.DenominationId; price = denomination.Price; quantity = denomination.Quantity; amount = (denomination.Quantity * denomination.Price); var deliveryGradeSize = new DeliveryGradeSize() { DeliveryId = deliveryId, GradeId = grade.GradeId, SizeId = sizeId, Quantity = quantity, Price = price, Amount = amount, TimeStamp = DateTime.Now, }; deliveryGradeSizeList.Add(deliveryGradeSize); } } this._dataService.PurgeDeliveryGradeSize(deliveryId); this.SaveDeliveryGradeSizeList(deliveryGradeSizeList); } } long transactionSubTypeId = 0; var notes = string.Empty; if (delivery.ProductId == 1) { transactionSubTypeId = flourTransactionSubTypeId; notes = "Maize Flour Sale"; } else if (delivery.ProductId == 2) { transactionSubTypeId = branTransactionSubTypeId; notes = "Bran Sale"; } var paymentMode = _accountTransactionActivityService.GetPaymentMode(delivery.PaymentModeId); var paymentModeName = paymentMode.Name; if (paymentModeName == "Credit") { var accountActivity = new AccountTransactionActivity() { AspNetUserId = delivery.CustomerId, Amount = delivery.Amount, Notes = notes, Action = "-", BranchId = delivery.BranchId, TransactionSubTypeId = transactionSubTypeId, SectorId = delivery.SectorId, Deleted = delivery.Deleted, CreatedBy = userId, PaymentMode = paymentModeName, }; var accountActivityId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivity, userId); } if (delivery.Amount == 0) { return(deliveryId); } else { long transactionTypeId = 0; var transactionSubtype = _transactionSubTypeService.GetTransactionSubType(delivery.TransactionSubTypeId); if (transactionSubtype != null) { transactionTypeId = transactionSubtype.TransactionTypeId; } var transaction = new TransactionDTO() { BranchId = delivery.BranchId, SectorId = delivery.SectorId, Amount = delivery.DeliveryCost, TransactionSubTypeId = delivery.TransactionSubTypeId, TransactionTypeId = transactionTypeId, CreatedOn = DateTime.Now, TimeStamp = DateTime.Now, CreatedBy = userId, Deleted = false, }; var transactionId = _transactionDataService.SaveTransaction(transaction, userId); return(deliveryId); } } } return(deliveryId); }