public async Task <Models.Transaction> SendTransaction(string ToUserAddress, Decimal Amount, string UserPrivateKey = "") { BigInteger gas = Web3.Convert.ToWei(3000000); BigInteger valueAmount = Web3.Convert.ToWei(4000000); BigInteger gasprice = Web3.Convert.ToWei(5000000000); Decimal EthAmount = UserControl.UserTypeID == 1 ? 0.0002m : 0.00015m; //Minimum gass cost is 0.000042 Ether, so send atleast 0.0002 string FromPrivateKey = UserControl.UserTypeID == 2 ? UserPrivateKey : MasterEthPrivateKey; string ToPublicKey = UserControl.UserTypeID == 2 ? MasterEthPublicKey : ToUserAddress; var account = new Account(FromPrivateKey); var web3 = new Web3(account, EthUrl); //TransactionInput ti = new TransactionInput(); //ti.Data = TransactionData; //ti.From = account.Address; //ti.To = ToAddress; //ti.Value = web3.Eth HexBigInteger //var TR = await web3.Eth.TransactionManager.SendTransactionAndWaitForReceiptAsync(ti,) var TR = await web3.Eth.GetEtherTransferService().TransferEtherAndWaitForReceiptAsync(ToPublicKey, EthAmount, 2); Models.Transaction trans = new Models.Transaction(); trans.TransactionHash = TR.TransactionHash; trans.GasUsed = TR.GasUsed.Value.ToString(); trans.BlockNumber = TR.BlockNumber.Value.ToString(); trans.EthAmount = EthAmount; trans.FromAddress = account.Address; trans.ToAddress = ToUserAddress; return(trans); }
public async Task <Models.Transaction> GetTransactionByHash(string TranHash) { var web3 = new Web3(EthUrl); Models.Transaction trans = new Models.Transaction(); try { GetTransDetail: var transReceipt = await web3.Eth.Transactions.GetTransactionByHash.SendRequestAsync(TranHash); if (transReceipt.BlockNumber.Value == 0) { System.Threading.Thread.Sleep(12000); goto GetTransDetail; } trans.FromAddress = transReceipt.From; trans.ToAddress = transReceipt.To; trans.BlockNumber = transReceipt.BlockNumber.Value.ToString(); trans.InputDataText = transReceipt.Input.HexToUTF8String(); trans.InputDataHex = transReceipt.Input; trans.GasUsed = transReceipt.Gas.Value.ToString(); trans.TransactionHash = transReceipt.TransactionHash; trans.EthAmount = Web3.Convert.FromWei(BigInteger.Parse(transReceipt.Value.ToString())); } catch (Exception ex) { trans.ErrorMessages = ex.Message; } return(trans); }
public async Task <Models.Transaction> SendTransactionAndData(string ToUserAddress, Decimal Amount, string TransactionData = "", string UserPrivateKey = "") { string FromPrivateKey = UserControl.UserTypeID == 2 ? UserPrivateKey : MasterEthPrivateKey; string ToPublicKey = UserControl.UserTypeID == 2 ? MasterEthPublicKey : ToUserAddress; Models.Transaction trans = new Models.Transaction(); var account = new Account(FromPrivateKey); var web3 = new Web3(account, EthUrl); var dataHex = TransactionData.ToHexUTF8(); TransactionInput Tinput = new TransactionInput(); Tinput.From = web3.TransactionManager.Account.Address; Tinput.To = ToPublicKey; Tinput.Value = new HexBigInteger(Web3.Convert.ToWei(Amount)); Tinput.Data = dataHex.ToString(); Tinput.Gas = await web3.TransactionManager.EstimateGasAsync(Tinput); var TransHash = await web3.TransactionManager.SendTransactionAndWaitForReceiptAsync(Tinput, new System.Threading.CancellationTokenSource()); //.SendTransactionAsync(Tinput); //trans = await GetTransactionByHash(TransHash); trans.FromAddress = account.Address; trans.ToAddress = ToUserAddress; trans.TransactionHash = TransHash.TransactionHash; trans.GasUsed = TransHash.GasUsed.Value.ToString(); trans.BlockNumber = TransHash.BlockNumber.Value.ToString(); trans.InputDataText = TransactionData; trans.EthAmount = Amount; return(trans); }
/// <summary> /// Initializes a new instance of the <see cref="ChargeResponse"/> class. /// </summary> /// <param name="errors">errors.</param> /// <param name="transaction">transaction.</param> public ChargeResponse( IList <Models.Error> errors = null, Models.Transaction transaction = null) { this.Errors = errors; this.Transaction = transaction; }
public void MapTQR_NormalTransaction_MapsAndMaskData() { const string lastFourDigit = "3333"; var mapper = new TransactionMapper(); Models.Transaction inputTransaction = new Models.Transaction { Amount = 1.0m, CardHolderName = string.Empty, CardNumber = $"0000-1111-2222-{lastFourDigit}", CurrencyISO4217Code = "EUR", CVVNumber = 123, ExperyDate = DateTime.SpecifyKind(new DateTime(2000, 1, 1), DateTimeKind.Local) }; PaymentRequest paymentRequest = mapper.Map(inputTransaction); Assert.AreEqual((decimal)paymentRequest.Amount, inputTransaction.Amount); Assert.AreEqual(paymentRequest.CardHolderName, inputTransaction.CardHolderName); Assert.AreEqual(paymentRequest.CurrencyISO4217Code, inputTransaction.CurrencyISO4217Code); Assert.IsNotNull(paymentRequest.ExperyDate); Assert.AreEqual(paymentRequest.CvvNumber, inputTransaction.CVVNumber); Assert.AreEqual(paymentRequest.CardNumber, inputTransaction.CardNumber); }
public async Task <ActionResult> Create(ViewModels.Transaction transaction) { if (ModelState.IsValid) { var currentUTCTime = DateTimeOffset.UtcNow; var computer = await db.Computers.Where(x => x.SKU == transaction.Computer).SingleOrDefaultAsync(); var stock = computer.Stock - transaction.Amount; var sale = new Models.Transaction() { IdTransaction = Guid.NewGuid().ToString(), Computer = computer, Notes = transaction.Notes, Created = currentUTCTime, Type = TransactionType.Debet, Amount = transaction.Amount }; db.Transactions.Add(sale); var result = await db.SaveChangesAsync(); if (result > 0) { computer.Stock = stock; db.Entry(computer).State = EntityState.Modified; var resultV2 = await db.SaveChangesAsync(); if (resultV2 > 0) { return(RedirectToAction("Index")); } } } return(View("Error")); }
private void Button1_Click(object sender, EventArgs e) { if (!chkVariz.Checked && !chkBardasht.Checked) { MessageBox.Show("لطفاً نوع واریز یا برداشت را مشخص کنید"); } else { using (Repository.TransactionRepository transactionRepository = new Repository.TransactionRepository()) { Models.Transaction transaction = new Models.Transaction(); transaction.DateTime = DateTime.Now; transaction.Disc = txtDisc.Text; transaction.Price = int.Parse(txtPrice.Text); if (chkVariz.Checked) { transaction.TransactionType_Id = 1; } else { transaction.TransactionType_Id = 2; } transaction.UserBargain_Id = _user_id; transactionRepository.Add(transaction); DialogResult = DialogResult.Yes; } } }
public async Task ValidateTransaction(Models.Transaction transaction) { var filter = Builders <Models.Transaction> .Filter.Eq(s => s.Id, transaction.Id); transaction.Validated = true; await _collection.ReplaceOneAsync(filter, transaction); }
/// <summary> /// Initializes a new instance of the <see cref="RetrieveTransactionResponse"/> class. /// </summary> /// <param name="errors">errors.</param> /// <param name="transaction">transaction.</param> public RetrieveTransactionResponse( IList <Models.Error> errors = null, Models.Transaction transaction = null) { this.Errors = errors; this.Transaction = transaction; }
public Models.Transaction GetProduct(string token) { var transaction = new Models.Transaction(); if (WebCache.Get($"Token_{token}") == null) { transaction.IsValid = false; transaction.Message = "Sessão expirada"; return(transaction); } transaction.IsValid = true; transaction.Products = new List <Models.Product> { new Models.Product { Id = Guid.NewGuid(), Name = "Frango", Price = 15.0m }, new Models.Product { Id = Guid.NewGuid(), Name = "Peixe", Price = 10.0m }, new Models.Product { Id = Guid.NewGuid(), Name = "Café", Price = 4.30m }, new Models.Product { Id = Guid.NewGuid(), Name = "Pão", Price = 1.70m } }; return(transaction); }
public void MapTransactionResult_NormalTransaction_MapsAndMaskData() { var mapper = new TransactionResultMapper(); var tansaction = new Models.Transaction { Amount = 1.0m, CardHolderName = string.Empty, CardNumber = "0000-1111-2222-3333", CurrencyISO4217Code = "EUR", CVVNumber = 123, ExperyDate = new DateTime(1, 1, 1) }; var paymentState = new PaymentState { Code = (PaymentStateCode)1, Id = string.Empty }; var result = mapper.Map(paymentState, tansaction); Assert.AreEqual(result.Code, PaymentStatusCode.Success); Assert.AreEqual(result.BankId, string.Empty); Assert.IsNull(result.PaymentId); Assert.IsNotNull(result.TransactionDetails); }
// // GET: /Transaction/Transaction/Edit/5 public ActionResult Edit(Guid id) { Models.Transaction transaction = _accountTransactionService.FindById(id); if (transaction == null) { return(HttpNotFound()); } return(View(transaction)); }
private Models.Transaction addTransaction(string accountNumber, string transactionType, decimal amount) { var newTransaction = new Models.Transaction(accountNumber, transactionType, amount); var numTransaction = getNumTransaction(); string newTransactionKey = String.Format("transaction{0}", numTransaction++); HttpContext.Session.SetObjectAsJson(newTransactionKey, newTransaction); HttpContext.Session.SetInt32("numTransaction", (Int32)numTransaction); return(newTransaction); }
public int AddTransaction(Models.Transaction transactions) { _logger.Log( $"[TransactionService::AddTransaction] Entering method successfully", LogLevel.Info); var repositoryTransactions = Mapper.Map(transactions, new Transaction()); return(_transactionRepository.AddTransaction(repositoryTransactions)); }
public Models.Transaction Get(string xml, int x) { xml = "http://financeisoswift.azurewebsites.net/uploads/" + xml + ".xml"; XDocument doc = XDocument.Load(xml); string xmlFile = doc.ToString(); Models.Transaction transaction = Models.transactionConstructor.Parse(doc); return(transaction); }
public IActionResult Transfer([Bind] Models.Transaction trans) { lock (transactionLock) { using (var ts = new TransactionScope()) { try { var sourceAccountNumber = Convert.ToInt64(HttpContext.User.Identity.Name); var user = _userDAL.GetUserData(sourceAccountNumber); if (_transactionDAL.GetBalance(sourceAccountNumber) < trans.Amount) { ViewData["Message"] = "Not enough funds."; } else { _transactionDAL.AddTransaction(new Models.Transaction { AccountNumber = sourceAccountNumber, Amount = -trans.Amount, Type = "TRANSFER", Source = sourceAccountNumber, Destination = trans.AccountNumber }); _transactionDAL.AddTransaction(new Models.Transaction { AccountNumber = trans.AccountNumber, Amount = trans.Amount, Type = "TRANSFER", Source = sourceAccountNumber, Destination = trans.AccountNumber }); ViewData["SuccessMessage"] = "Transfer success"; } ViewData["LoginName"] = user.LoginName; ViewData["AccountNumber"] = sourceAccountNumber; ViewData["Balance"] = _transactionDAL.GetBalance(sourceAccountNumber); ts.Complete(); return(View()); } catch (Exception e) { ViewData["Message"] = e.Message; ts.Dispose(); return(View()); } } } }
public ActionResult AddTransaction(int customerId, bool type, string firstName, string lastname, string email, int phone, string bill, int cc, int cvv, string exp, decimal total) { Customer customer = new Models.Customer(type, firstName, lastname, email, phone, bill, cc, cvv, exp); customer.Id = customerId; Transaction transaction = new Models.Transaction(customer, total, DateTime.Now); db.Transactions.Add(transaction); db.SaveChanges(); return(RedirectToAction("TransactionItems", "AddItems")); }
public static TransactionResponseViewModel ToTransactionResponseViewModel(this Models.Transaction transaction) { return(new TransactionResponseViewModel() { From = transaction.From, Id = transaction.Id, To = transaction.To, Value = transaction.Value, Validated = transaction.Validated, InvoiceId = transaction.InvoiceId }); }
public Transaction Convert(bcdb.Transaction transactionDB) { var newTransaction = new Models.Transaction() { Sender = transactionDB.Sender, Recipient = transactionDB.Recipient, Amount = transactionDB.Amount, Name = transactionDB.Name, BlockId = transactionDB.BlockId }; return(newTransaction); }
public static Domain.DomainModels.Transaction Convert(Models.Transaction transaction) { if (transaction == null) { throw new ArgumentNullException(nameof(transaction)); } return(new Domain.DomainModels.Transaction( Guid.Parse(transaction.Id), transaction.Date, transaction.Amount, transaction.Category == null ? null : CategoryConverter.Convert(transaction.Category))); }
private ResultModel BlockchainAndDB(ref ProductEthAddress_V prod_v) { string product_key = prod_v.Product_Key; string Private_key = prod_v.EthPrivateKey; string Public_key = prod_v.EthPublicKey; Decimal Amount = 0.00015m; ResultModel result = new ResultModel(); try { EthAddressesController ethac = new EthAddressesController(); Decimal GetBalance = Task.Run <Decimal>(async() => await ethac.GetAccountBalance(Public_key)).Result; if (Amount >= GetBalance) { result._Result = false; result._ResultError = "No Sufficient Balance in ETH Account"; return(result); } Models.Transaction TR = Task.Run <Models.Transaction>(async() => await ethac.SendTransactionAndData(ethac.MasterEthPublicKey, Amount, product_key, Private_key)).Result; //Task.Run<Models.Transaction>(async () => await ethac.SendTransaction(ethac.MasterEthPublicKey, 0.00015m, prod_v.EthPrivateKey)).Result; TR.ProductID = prod_v.Product_ID; TR.CreatedBy = UserControl.UserID; TR.UserTypeID = UserControl.UserTypeID; TR.EthAddressID = prod_v.EthAddressID ?? default(int); TR.CreatedDate = DateTime.Now; db.Transactions.Add(TR); db.SaveChanges(); var product_db = db.Products.Find(prod_v.Product_ID); product_db.UserID = UserControl.UserID; product_db.TransactionID = TR.TransactionID; db.SaveChanges(); result._ResultTransHash = TR.TransactionHash; result._Result = true; prod_v.UserID = product_db.UserID; prod_v.TransactionID = product_db.TransactionID; } catch (Exception ex) { result._Result = false; result._ResultError = ex.Message; return(result); } return(result); }
public List <Models.transactionError> Get(string xml) { xml = "http://financeisoswift.azurewebsites.net/uploads/" + xml + ".xml"; XDocument doc = XDocument.Load(xml); string xmlFile = doc.ToString(); Models.Transaction transaction = Models.transactionConstructor.Parse(doc); List <Models.transactionError> errorList = Models.transactionErrorConstructor.Validate(transaction); return(errorList); }
public ActionResult Create([Bind(Include = "ProductId,ProductName,ProductKey,SerialNumber,ProductType,ProductDetail,ProductIsActive,ImagePath,ImageFile")] ProductModel prodM) { if (ModelState.IsValid) { Decimal Amount = 0.0002m; EthAddressesController ethac = new EthAddressesController(); Decimal GetBalance = Task.Run <Decimal>(async() => await ethac.GetAccountBalance()).Result; if (Amount >= GetBalance) { return(View(prodM)); } var ethadd = ethac.GenerateEthAddress(); ethadd.CreatedBy = UserControl.UserID; ethadd.CreatedDate = DateTime.Now; db.EthAddresses.Add(ethadd); db.SaveChanges(); Models.Transaction TR = Task.Run <Models.Transaction>(async() => await ethac.SendTransactionAndData(ethadd.EthPublicKey, 0.0002m, prodM.ProductKey)).Result; //Task.Run<Models.Transaction>(async () => await ethac.SendTransaction(ethadd.EthPublicKey, 0.0002m)).Result; //TR.ProductID = product.Product_ID; TR.EthAddressID = ethadd.EthAddressID; TR.CreatedBy = UserControl.UserID; TR.CreatedDate = DateTime.Now; db.Transactions.Add(TR); db.SaveChanges(); Product product = new Product { Product_Name = prodM.ProductName, Product_Key = prodM.ProductKey, Serial_Num = prodM.SerialNumber, Product_Type = prodM.ProductType, Product_Detail = prodM.ProductDetail, IsActive = prodM.ProductIsActive, EthAddressID = ethadd.EthAddressID, FirstTransactionID = TR.TransactionID, CreatedBy = UserControl.UserID, CreatedDate = DateTime.Now }; db.Products.Add(product); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(prodM)); }
public IActionResult SendMoney(Models.Transaction transaction) { PopulateAccounts(); string userId = _userManager.GetUserId(User); ApplicationUser user = _dbContext .Users .Include("Accounts.Currency") .First(s => s.Id == userId); BankAccount from = user.Accounts.First(a => a.CurrencyId == transaction.SenderCurrencyId); BankAccount to = _dbContext .BankAccounts .Where(a => a.UserId != user.Id && a.CurrencyId == from.CurrencyId && a.Id == transaction.RecipientAccount) .FirstOrDefault(); if (to == null) { ViewData["Message"] = "Invalid recipient ID!"; return(View("Index")); } if (transaction.Amount > (double)from.Balance) { ViewData["Message"] = "Not enough resources!"; return(View("Index")); } if (_dbContext.Transactions .Where(t => t.AccountFrom.Id == from.Id && t.Status == TransactionStatus.PENDING) .Any()) { ViewData["Message"] = "Already exists pending transaction from that bank account!"; return(View("Index")); } Transaction t = new Transaction(); t.AccountFromId = from.Id; t.AccountToId = to.Id; t.Amount = transaction.Amount; t.Status = TransactionStatus.PENDING; _dbContext.Transactions.Add(t); _dbContext.SaveChanges(); ViewData["Message"] = "Transfer transaction has been successfully forwarded to the manager!"; return(View("Index")); }
public ActionResult <Models.Transaction> Post([FromBody] TransactionViewModel transaction) { var user = rocketDbContext.Users.Find(transaction.UserId); var newTransaction = new Models.Transaction { Id = transaction.Id, Type = transaction.Type, Amount = transaction.Amount, Comment = transaction.Comment, User = user }; rocketDbContext.Transactions.Add(newTransaction); rocketDbContext.SaveChanges(); return(CreatedAtAction(nameof(Post), new { id = newTransaction.Id }, newTransaction)); }
private void AddRewardTrnx(int amnt, string addrHolder) { var trns = new Models.Transaction { Id = new Guid(), CoinAmount = amnt, CreationDate = DateTime.UtcNow, FeeInCoinAmount = 0, FromKey = Admin.PublicKey, //wallet.PublicKey; Status = EnumType.Pending, ToKey = addrHolder, StatusType = EnumType.Reward }; _ctx.Transactions.Add(trns); }
//detailed search method for date public ActionResult DateSearch() { //create list for date List <Transaction> Transactions = db.TransactionsDbSet.ToList(); Transaction SelectNoDates = new Models.Transaction() { TransactionID = 0, TransactionName = "All Dates" }; Transactions.Add(SelectNoDates); //select list SelectList ALLDates = new SelectList(Transactions.OrderBy(t => t.TransactionID), "TransactionID", "Date"); ViewBag.Transactions = ALLDates; return(View("DetailedSearch")); }
public async Task <IActionResult> CreateTransaction([FromBody][Required] Models.Transaction transaction) { transaction.TimeStamp = DateTime.Now; var json = JsonConvert.SerializeObject(transaction); var httpContent = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); using (var response = await taxControlClient.PostAsync("api/v1/tax", httpContent)) { await response.Content.ReadAsStringAsync(); } _context.Transactions.Add(transaction); await _context.SaveChangesAsync(); return(Ok(transaction)); }
public Models.Transaction Get(string xml, string xsd) { xml = "http://financeisoswift.azurewebsites.net/uploads/" + xml + ".xml"; XDocument doc = XDocument.Load(xml); string xmlFile = doc.ToString(); Models.Transaction transaction = Models.transactionConstructor.Parse(doc); string nSpace = "http://financeisoswift.azurewebsites.net/uploads/" + xsd; xsd = nSpace + ".xsd"; bool hasErrors = false; XmlSchemaSet schemas = new XmlSchemaSet(); schemas.Add(null, xsd); XDocument doc1 = XDocument.Load(xml); doc1.Validate(schemas, (o, vea) => { Console.WriteLine(o.GetType().Name); Console.WriteLine(vea.Message); hasErrors = true; }, true); if (hasErrors) { transaction.validSchema = false; } else { transaction.validSchema = true; } List <Models.transactionError> errorList = Models.transactionErrorConstructor.Validate(transaction); transaction.errorList = errorList; return(transaction); }
public IActionResult Withdraw([Bind] Models.Transaction trans) { lock (transactionLock) { using (var ts = new TransactionScope()) { try { var accountNumber = Convert.ToInt64(HttpContext.User.Identity.Name); var user = _userDAL.GetUserData(accountNumber); if (_transactionDAL.GetBalance(accountNumber) < trans.Amount) { ViewData["Message"] = "Not enough funds."; } else { _transactionDAL.AddTransaction(new Models.Transaction { AccountNumber = accountNumber, Amount = -trans.Amount, Type = "WITHDRAW" }); ViewData["SuccessMessage"] = "Withdraw success"; } ViewData["LoginName"] = user.LoginName; ViewData["AccountNumber"] = accountNumber; ViewData["Balance"] = _transactionDAL.GetBalance(accountNumber); ts.Complete(); return(View()); } catch (Exception e) { ViewData["Message"] = e.Message; ts.Dispose(); return(View()); } } } }
public Models.Transaction LookupTransactionInfo(string transactionId) { if (string.IsNullOrEmpty(transactionId)) { throw new ArgumentException("Invalid Transaction Id"); } var blockExplorer = new BlockExplorer(); var tx = Retry.Do<Info.Blockchain.API.BlockExplorer.Transaction>(() => { return blockExplorer.GetTransaction(transactionId); }, new TimeSpan(0, 0, 2)); var result = new Models.Transaction { TransactionId = transactionId, Amount = (double)tx.Inputs.FirstOrDefault()?.PreviousOutput.Value/1000000, FromAddress = tx.Inputs.FirstOrDefault()?.PreviousOutput.Address, ToAddress = tx.Outputs.FirstOrDefault()?.Address, CurrencyType = CryptoCurrencyType.BitCoin, Timestamp = DateTime.Now }; return result; }
public bool PostDistribution(int distributionId) { var woredaStcokDistribution = _unitOfWork.WoredaStockDistributionRepository.FindById(distributionId); if (woredaStcokDistribution!=null) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var woredaStockDistributionDetail in woredaStcokDistribution.WoredaStockDistributionDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = woredaStcokDistribution.ProgramID, QuantityInMT = woredaStockDistributionDetail.DistributedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, FDPID = woredaStockDistributionDetail.FdpId, Month = woredaStcokDistribution.Month, LedgerID = 12 }; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = woredaStcokDistribution.ProgramID, QuantityInMT = woredaStockDistributionDetail.DistributedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, FDPID = woredaStockDistributionDetail.FdpId, Month = woredaStcokDistribution.Month, LedgerID = 18 }; _unitOfWork.TransactionRepository.Add(transaction); } woredaStcokDistribution.TransactionGroupID = transactionGroup; _unitOfWork.Save(); } return true; }
public bool PostDonationPlan(DonationPlanHeader donationPlanHeader) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var donationPlanDetail in donationPlanHeader.DonationPlanDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = donationPlanHeader.ProgramID, DonorID = donationPlanHeader.DonorID, CommoditySourceID = 1, QuantityInMT = donationPlanDetail.AllocatedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, CommodityID = donationPlanHeader.CommodityID, ShippingInstructionID = donationPlanHeader.ShippingInstructionId, HubID = donationPlanDetail.HubID, LedgerID = 10 }; _unitOfWork.TransactionRepository.Add(transaction); transaction= new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = donationPlanHeader.ProgramID, DonorID = donationPlanHeader.DonorID, CommoditySourceID = 1, QuantityInMT = donationPlanDetail.AllocatedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, CommodityID = donationPlanHeader.CommodityID, ShippingInstructionID = donationPlanHeader.ShippingInstructionId, HubID = donationPlanDetail.HubID, LedgerID = 4 }; _unitOfWork.TransactionRepository.Add(transaction); } var donationHeader = _unitOfWork.DonationPlanHeaderRepository.FindById(donationPlanHeader.DonationHeaderPlanID); if (donationHeader!=null) donationPlanHeader.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public bool PostDeliveryReconcileReceipt(int deliveryReconcileID) { var deliveryReconcile = _unitOfWork.DeliveryReconcileRepository.Get(t => t.DeliveryReconcileID == deliveryReconcileID, null, "Dispatch").FirstOrDefault(); if (deliveryReconcile == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); var reliefRequisition = _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionNo == deliveryReconcile.RequsitionNo).FirstOrDefault(); if (reliefRequisition != null) transaction.ProgramID = reliefRequisition.ProgramID; var orDefault = _unitOfWork.DispatchRepository.Get(t => t.DispatchID == deliveryReconcile.DispatchID).FirstOrDefault(); if (orDefault !=null) transaction.DonorID = orDefault.DispatchAllocation.DonorID; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; var dispatch = _unitOfWork.DispatchRepository.Get(t => t.DispatchID == deliveryReconcile.DispatchID).FirstOrDefault(); if (dispatch !=null) transaction.ShippingInstructionID = dispatch.DispatchAllocation.ShippingInstructionID; if (reliefRequisition != null) transaction.PlanId = reliefRequisition.RegionalRequest.PlanID; if (reliefRequisition != null) transaction.Round = reliefRequisition.RegionalRequest.Round; //transaction.LedgerID = Ledger.Constants.DELIVERY_RECEIPT; //transaction.FDPID = delivery.FDPID; //var firstOrDefault = delivery.DeliveryDetails.FirstOrDefault(); transaction.LedgerID = Models.Ledger.Constants.DELIVERY_RECEIPT; transaction.FDPID = deliveryReconcile.FDPID; var firstOrDefault = deliveryReconcile.Dispatch.DispatchAllocation; if (firstOrDefault != null) { transaction.CommodityID = firstOrDefault.CommodityID; } transaction.QuantityInMT = deliveryReconcile.ReceivedAmount / 10; transaction.QuantityInUnit = deliveryReconcile.ReceivedAmount; var @default = _unitOfWork.UnitRepository.Get(t => t.Name == "Quintal").FirstOrDefault(); transaction.UnitID = @default != null ? @default.UnitID : 1; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); //var reliefRequisition = _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionNo == distribution.RequisitionNo).FirstOrDefault(); if (reliefRequisition != null) transaction.ProgramID = reliefRequisition.ProgramID; //var orDefault = _unitOfWorkhub.DispatchRepository.Get(t => t.DispatchID == distribution.DispatchID).FirstOrDefault(); if (orDefault != null) transaction.DonorID = orDefault.DispatchAllocation.DonorID; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; //var dispatch = _unitOfWorkhub.DispatchRepository.Get(t => t.DispatchID == distribution.DispatchID).FirstOrDefault(); if (dispatch != null) transaction.ShippingInstructionID = dispatch.DispatchAllocation.ShippingInstructionID; if (reliefRequisition != null) transaction.PlanId = reliefRequisition.RegionalRequest.PlanID; if (reliefRequisition != null) transaction.Round = reliefRequisition.RegionalRequest.Round; //transaction.LedgerID = Ledger.Constants.GOODS_IN_TRANSIT; //transaction.HubID = delivery.HubID; //transaction.FDPID = delivery.FDPID; transaction.LedgerID = Models.Ledger.Constants.GOODS_IN_TRANSIT; transaction.HubID = deliveryReconcile.HubID; transaction.FDPID = deliveryReconcile.FDPID; //var firstOrDefault = distribution.DeliveryDetails.FirstOrDefault(); if (firstOrDefault != null) { transaction.CommodityID = firstOrDefault.CommodityID; } transaction.QuantityInMT = deliveryReconcile.ReceivedAmount / 10; transaction.QuantityInUnit = deliveryReconcile.ReceivedAmount; var @default1 = _unitOfWork.UnitRepository.Get(t => t.Name == "Quintal").FirstOrDefault(); transaction.UnitID = @default != null ? @default.UnitID : 1; _unitOfWork.TransactionRepository.Add(transaction); deliveryReconcile.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public bool PostGiftCertificate(int giftCertificateId) { var giftCertificate = _unitOfWork.GiftCertificateRepository.Get(t => t.GiftCertificateID == giftCertificateId, null,"GiftCertificateDetails").FirstOrDefault(); if(giftCertificate==null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var giftCertificateDetail in giftCertificate.GiftCertificateDetails) { var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.ProgramID = giftCertificate.ProgramID; transaction.DonorID = giftCertificate.DonorID; transaction.CommoditySourceID = giftCertificateDetail.DFundSourceID; transaction.GiftTypeID = giftCertificateDetail.DFundSourceID; transaction.QuantityInMT = giftCertificateDetail.WeightInMT; transaction.QuantityInUnit = giftCertificateDetail.WeightInMT; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.LedgerID = 5; transaction.CommodityID = giftCertificateDetail.CommodityID; // transaction.ShippingInstructionID = giftCertificate.SINumber; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.ProgramID = giftCertificate.ProgramID; transaction.DonorID = giftCertificate.DonorID; transaction.QuantityInMT = -giftCertificateDetail.WeightInMT; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.QuantityInUnit = giftCertificateDetail.WeightInMT; transaction.UnitID = 1; transaction.LedgerID = 4; _unitOfWork.TransactionRepository.Add(transaction); } giftCertificate.StatusID = 2; giftCertificate.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public bool PostDistribution(int distributionId) { var woredaStcokDistribution = _unitOfWork.WoredaStockDistributionRepository.FindById(distributionId); if (woredaStcokDistribution!=null) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var woredaStockDistributionDetail in woredaStcokDistribution.WoredaStockDistributionDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = woredaStcokDistribution.ProgramID, QuantityInMT = woredaStockDistributionDetail.DistributedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, FDPID = woredaStockDistributionDetail.FdpId, Month = woredaStcokDistribution.Month, PlanId = woredaStcokDistribution.PlanID, //add commodity LedgerID = Ledger.Constants.GOODS_UNDER_CARE }; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = woredaStcokDistribution.ProgramID, QuantityInMT = -woredaStockDistributionDetail.DistributedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, FDPID = woredaStockDistributionDetail.FdpId, Month = woredaStcokDistribution.Month, PlanId = woredaStcokDistribution.PlanID, //add commodity LedgerID = Ledger.Constants.DELIVERY_RECEIPT }; _unitOfWork.TransactionRepository.Add(transaction); } woredaStcokDistribution.TransactionGroupID = transactionGroup; _unitOfWork.Save(); } return true; }
public ActionResult Create([Bind(Include = "Id,Principal,Interest,Date,Cleared,AssetId,InitialInstallments")] Loan loan) { if (ModelState.IsValid) { loan.CreatedAt = DateTime.Now; loan.ModifiedAt = DateTime.Now; //try { // using (TransactionScope trans = new TransactionScope()) // { // db.Loans.Add(loan); // Models.Transaction transaction = new Models.Transaction() // { // Loan = loan, // Balance = loan.Principal + loan.Interest, // Credit = 0, // Debit = loan.Principal + loan.Interest, // Details = "Loan Disbursement", // Type = db.TransactionTypes.First(t => t.Description == "Loan Disbursement"), // }; // db.Transactions.Add(transaction); // DuePayment duepayment = new DuePayment() // { // Amount = transaction.Balance, // Loan = loan // }; // db.DuePayments.Add(duepayment); // db.SaveChanges(); // trans.Complete(); // } // return RedirectToAction("Index"); //} //catch(Exception ex) //{ } loan.PendingInstallments = loan.InitialInstallments; loan.Balance = loan.Principal + loan.Interest; // Add corresponding transaction var transaction = new Models.Transaction() { Type = db.TransactionTypes.First(tt => tt.Description.Contains("OPEN")), Loan = loan, Balance = loan.Balance, Debit = loan.Balance, Details = "Loan Disbursment", Timestamp = DateTime.Now }; db.Transactions.Add(transaction); // Record the next due payment var duePayment = new DuePayment() { Loan = loan, Amount = loan.Balance / loan.PendingInstallments }; db.DuePayments.Add(duePayment); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.AssetId = new SelectList(db.Assets, "Id", "AssetName", loan.AssetId); return View(loan); }
public List<Models.Transaction> PostHRDPlan(HRD hrd, Ration ration) { List<Models.Transaction> entries = new List<Models.Transaction>(); List<int> regionalBenCount = new List<int>(); ration = hrd.Ration; int RegionID=0; for (int r = 0; r < 12; r++) { regionalBenCount.Add(0); } foreach (HRDDetail fdp in hrd.HRDDetails) { for (int r = 0; r < fdp.DurationOfAssistance; r++) { regionalBenCount[r] += (int)fdp.NumberOfBeneficiaries; RegionID = fdp.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID; } } for (int r = 0; r < 12; r++) { int noben = regionalBenCount[r]; if (noben > 0) { Guid transactionGroupID = Guid.NewGuid(); DateTime transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroupID }); foreach (RationDetail rd in ration.RationDetails) { decimal amount = (rd.Amount/1000)*noben; var entry2 = new Models.Transaction { RegionID = RegionID, CommodityID = rd.CommodityID, Round = r + 1, ProgramID = TransactionConstants.Constants.HRD_PROGRAM_ID, QuantityInUnit = amount, UnitID = 1, QuantityInMT = amount, LedgerID = Cats.Models.Ledger.Constants.REQUIRMENT_DOCUMENT_PALN, // previously 200 TransactionDate = transactionDate, TransactionGroupID = transactionGroupID, PlanId = hrd.PlanID, TransactionID = Guid.NewGuid(), }; var entry1 = new Models.Transaction { RegionID = RegionID, CommodityID = rd.CommodityID, Round = r + 1, ProgramID = TransactionConstants.Constants.HRD_PROGRAM_ID, QuantityInUnit = -amount, UnitID = 1, QuantityInMT = -amount, LedgerID = Cats.Models.Ledger.Constants.REQUIRMENT_DOCUMENT, //previously 100 TransactionDate = transactionDate, TransactionGroupID = transactionGroupID, PlanId = hrd.PlanID, TransactionID = Guid.NewGuid(), }; _unitOfWork.TransactionRepository.Add(entry1); _unitOfWork.TransactionRepository.Add(entry2); entries.Add(entry1); entries.Add(entry2); //hrd.TransactionGroupID = transactionGroupID; //_unitOfWork.HRDRepository.Edit(hrd); _unitOfWork.Save(); } } } return entries; }
//RRD //TODO: check if this is called for PSNP. It must be called for both programs public bool PostRequestAllocation(int requestId) { var result = new List<Models.Transaction>(); var allocationDetails = _unitOfWork.ReliefRequisitionDetailRepository.FindBy(r => r.ReliefRequisition.RequisitionID == requestId); if (allocationDetails == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var detail in allocationDetails) { var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.QuantityInMT = - detail.Amount; transaction.QuantityInUnit = - detail.Amount; transaction.LedgerID = Models.Ledger.Constants.PLEDGED_TO_FDP; transaction.CommodityID = detail.CommodityID; if (detail.Commodity.ParentID!=null) transaction.ParentCommodityID = detail.Commodity.ParentID; transaction.FDPID = detail.FDPID; transaction.ProgramID = detail.ReliefRequisition.ProgramID; transaction.RegionID = detail.ReliefRequisition.RegionID; transaction.PlanId = detail.ReliefRequisition.RegionalRequest.PlanID; transaction.Round = detail.ReliefRequisition.RegionalRequest.Round; transaction.Month = detail.ReliefRequisition.RegionalRequest.Month; _unitOfWork.TransactionRepository.Add(transaction); //for Register Doc transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.QuantityInMT = detail.Amount; transaction.QuantityInUnit = detail.Amount; transaction.LedgerID = Models.Ledger.Constants.REQUIRMENT_DOCUMENT; transaction.CommodityID = detail.CommodityID; if (detail.Commodity.ParentID != null) transaction.ParentCommodityID = detail.Commodity.ParentID; transaction.FDPID = detail.FDPID; transaction.ProgramID = detail.ReliefRequisition.ProgramID; transaction.RegionID = detail.ReliefRequisition.RegionID; transaction.PlanId = detail.ReliefRequisition.RegionalRequest.PlanID; transaction.Round = detail.ReliefRequisition.RegionalRequest.Round; transaction.Month = detail.ReliefRequisition.RegionalRequest.Month; _unitOfWork.TransactionRepository.Add(transaction); } _unitOfWork.Save(); return true; }
private bool PostSIAllocation(int requisitionID, int commoditySource=5) { var allocationDetails = _unitOfWork.SIPCAllocationRepository.Get(t => t.ReliefRequisitionDetail.RequisitionID == requisitionID); if (allocationDetails == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup { PartitionID = 0, TransactionGroupID = transactionGroup }); //ProjectCodeID ShippingInstructionID ProgramID QuantityInMT QuantityInUnit UnitID TransactionDate RegionID Month Round DonorID CommoditySourceID GiftTypeID FDP foreach (var allocationDetail in allocationDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), TransactionGroupID = transactionGroup, TransactionDate = transactionDate, UnitID = 1 }; var allocation = allocationDetail; transaction.QuantityInMT = -allocationDetail.AllocatedAmount; transaction.QuantityInUnit = -allocationDetail.AllocatedAmount; transaction.LedgerID = Ledger.Constants.COMMITED_TO_FDP; transaction.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; transaction.CommoditySourceID = commoditySource;// commodity source transfer and swap //transaction.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; //transaction.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; int hubID1 = 0; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { transaction.ShippingInstructionID = allocationDetail.Code; hubID1 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ShippingInstructionID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } else { transaction.ProjectCodeID = allocationDetail.Code; hubID1 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ProjectCodeID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } if (hubID1 != 0) { transaction.HubID = hubID1; } else { transaction.HubID = _unitOfWork.HubAllocationRepository.FindBy(r => r.RequisitionID == allocation.ReliefRequisitionDetail.RequisitionID).Select( h => h.HubID).FirstOrDefault(); } _unitOfWork.TransactionRepository.Add(transaction); // result.Add(transaction); /*post Debit-Pledged To FDP*/ var transaction2 = new Models.Transaction { TransactionID = Guid.NewGuid(), TransactionGroupID = transactionGroup, TransactionDate = transactionDate, UnitID = 1 }; transaction2.QuantityInMT = allocationDetail.AllocatedAmount; transaction2.QuantityInUnit = allocationDetail.AllocatedAmount; transaction2.LedgerID = Ledger.Constants.PLEDGED_TO_FDP; transaction2.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction2.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction2.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction2.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; transaction2.CommoditySourceID = commoditySource; //transaction2.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; //transaction2.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; int hubID2 = 0; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; hubID2 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ShippingInstructionID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } else { var detail = allocationDetail; var code = detail.Code.ToString(); var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == code). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; hubID2 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ProjectCodeID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } if (hubID2 != 0) { transaction2.HubID = hubID2; } else { transaction2.HubID = _unitOfWork.HubAllocationRepository.FindBy(r => r.RequisitionID == allocation.ReliefRequisitionDetail.RequisitionID).Select( h => h.HubID).FirstOrDefault(); } _unitOfWork.TransactionRepository.Add(transaction2); allocationDetail.TransactionGroupID = transactionGroup; _unitOfWork.SIPCAllocationRepository.Edit(allocationDetail); //result.Add(transaction); } var requisition = _unitOfWork.ReliefRequisitionRepository.FindById(requisitionID); requisition.Status = 4; _unitOfWork.ReliefRequisitionRepository.Edit(requisition); _unitOfWork.Save(); //return result; return true; }
public List<Models.Transaction> PostSIAllocation(int requisitionID) { List<Models.Transaction> result = new List<Models.Transaction>(); var allocationDetails = _unitOfWork.SIPCAllocationRepository.Get(t => t.ReliefRequisitionDetail.RequisitionID == requisitionID); if (allocationDetails == null) return result; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); //ProjectCodeID ShippingInstructionID ProgramID QuantityInMT QuantityInUnit UnitID TransactionDate RegionID Month Round DonorID CommoditySourceID GiftTypeID FDP foreach (var allocationDetail in allocationDetails) { var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.QuantityInMT = -allocationDetail.AllocatedAmount; transaction.QuantityInUnit = -allocationDetail.AllocatedAmount; transaction.LedgerID = Models.Ledger.Constants.COMMITED_TO_FDP; transaction.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; if (allocationDetail.AllocationType == "SI") { transaction.ShippingInstructionID = allocationDetail.Code; } else { transaction.ProjectCodeID = allocationDetail.Code; } _unitOfWork.TransactionRepository.Add(transaction); // result.Add(transaction); /*post Debit-Pledged To FDP*/ var transaction2 = new Models.Transaction(); transaction2.TransactionID = Guid.NewGuid(); transaction2.TransactionGroupID = transactionGroup; transaction2.TransactionDate = transactionDate; transaction2.UnitID = 1; transaction2.QuantityInMT = allocationDetail.AllocatedAmount; transaction2.QuantityInUnit = allocationDetail.AllocatedAmount; transaction2.LedgerID = Models.Ledger.Constants.PLEDGED_TO_FDP; transaction2.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction2.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction2.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction2.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; _unitOfWork.TransactionRepository.Add(transaction2); //result.Add(transaction); } ReliefRequisition requisition = _unitOfWork.ReliefRequisitionRepository.FindById(requisitionID); requisition.Status = 4; _unitOfWork.Save(); return result; }
public bool PostDonationPlan(DonationPlanHeader donationPlanHeader) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var donationPlanDetail in donationPlanHeader.DonationPlanDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = donationPlanHeader.ProgramID, DonorID = donationPlanHeader.DonorID, CommoditySourceID = 1, QuantityInMT = donationPlanDetail.AllocatedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, CommodityID = donationPlanHeader.CommodityID, ShippingInstructionID = donationPlanHeader.ShippingInstructionId, HubID = donationPlanDetail.HubID, LedgerID = Ledger.Constants.GOODS_RECIEVABLE }; _unitOfWork.TransactionRepository.Add(transaction); transaction= new Models.Transaction { TransactionID = Guid.NewGuid(), ProgramID = donationPlanHeader.ProgramID, DonorID = donationPlanHeader.DonorID, CommoditySourceID = 1, QuantityInMT = -donationPlanDetail.AllocatedAmount, TransactionGroupID = transactionGroup, TransactionDate = transactionDate, CommodityID = donationPlanHeader.CommodityID, ShippingInstructionID = donationPlanHeader.ShippingInstructionId, HubID = donationPlanDetail.HubID, LedgerID = Ledger.Constants.GOODS_PROMISSED_GIFT_CERTIFICATE_COMMITED //good promissed - pledged is not in ledger list // Former LedgerID = 4 }; _unitOfWork.TransactionRepository.Add(transaction); } var donationHeader = _unitOfWork.DonationPlanHeaderRepository.FindById(donationPlanHeader.DonationHeaderPlanID); if (donationHeader!=null) donationPlanHeader.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public bool PostSIAllocation(int requisitionID) { var result = new List<Models.Transaction>(); var allocationDetails = _unitOfWork.SIPCAllocationRepository.Get(t => t.ReliefRequisitionDetail.RequisitionID == requisitionID); if (allocationDetails == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); //ProjectCodeID ShippingInstructionID ProgramID QuantityInMT QuantityInUnit UnitID TransactionDate RegionID Month Round DonorID CommoditySourceID GiftTypeID FDP foreach (var allocationDetail in allocationDetails) { var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.QuantityInMT = -allocationDetail.AllocatedAmount; transaction.QuantityInUnit = -allocationDetail.AllocatedAmount; transaction.LedgerID = Models.Ledger.Constants.COMMITED_TO_FDP; transaction.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; transaction.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; transaction.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; } else { var detail = allocationDetail; var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == detail.Code.ToString()). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; } _unitOfWork.TransactionRepository.Add(transaction); // result.Add(transaction); /*post Debit-Pledged To FDP*/ var transaction2 = new Models.Transaction(); transaction2.TransactionID = Guid.NewGuid(); transaction2.TransactionGroupID = transactionGroup; transaction2.TransactionDate = transactionDate; transaction2.UnitID = 1; transaction2.QuantityInMT = allocationDetail.AllocatedAmount; transaction2.QuantityInUnit = allocationDetail.AllocatedAmount; transaction2.LedgerID = Models.Ledger.Constants.PLEDGED_TO_FDP; transaction2.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction2.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction2.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction2.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; transaction.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; transaction.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; } else { var detail = allocationDetail; var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == detail.Code.ToString()). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; } _unitOfWork.TransactionRepository.Add(transaction2); allocationDetail.TransactionGroupID = transactionGroup; _unitOfWork.SIPCAllocationRepository.Edit(allocationDetail); //result.Add(transaction); } ReliefRequisition requisition = _unitOfWork.ReliefRequisitionRepository.FindById(requisitionID); requisition.Status = 4; _unitOfWork.Save(); //return result; return true; }
public List<Models.Transaction> PostPSNPPlan(RegionalPSNPPlan plan, Ration ration) { List<Models.Transaction> entries = new List<Models.Transaction>(); List<int> regionalBenCount = new List<int>(); for (int r = 0; r < plan.Duration; r++) { regionalBenCount.Add(0); } foreach (RegionalPSNPPlanDetail fdp in plan.RegionalPSNPPlanDetails) { for (int r = 0; r < fdp.FoodRatio; r++) { regionalBenCount[r] += (int)fdp.BeneficiaryCount; } } for (int r = 0; r < plan.Duration; r++) { int noben = regionalBenCount[r]; if (noben > 0) { Guid transactionGroupID = Guid.NewGuid(); DateTime transactionDate = DateTime.Now; foreach (RationDetail rd in ration.RationDetails) { decimal amount = rd.Amount * noben; Models.Transaction entry2 = new Models.Transaction { CommodityID = rd.CommodityID, Round = r + 1, ProgramID = TransactionConstants.Constants.PSNP_PROGRAM_ID, QuantityInUnit = amount, UnitID=1, QuantityInMT = amount, LedgerID = Cats.Models.Ledger.Constants.REQUIRMENT_DOCUMENT_PALN, // previously 200 TransactionDate = transactionDate, TransactionGroupID = transactionGroupID, PlanId = plan.PlanId, TransactionID = Guid.NewGuid(), }; Models.Transaction entry1 = new Models.Transaction { CommodityID = rd.CommodityID, Round = r + 1, ProgramID = TransactionConstants.Constants.PSNP_PROGRAM_ID, QuantityInUnit = -amount, UnitID = 1, QuantityInMT = -amount, LedgerID = Cats.Models.Ledger.Constants.REQUIRMENT_DOCUMENT, //previously 100 TransactionDate = transactionDate, TransactionGroupID = transactionGroupID, PlanId = plan.PlanId, TransactionID = Guid.NewGuid(), }; _unitOfWork.TransactionRepository.Add(entry1); _unitOfWork.TransactionRepository.Add(entry2); _unitOfWork.Save(); entries.Add(entry1); entries.Add(entry2); } plan.TransactionGroupID = transactionGroupID; _unitOfWork.RegionalPSNPPlanRepository.Edit(plan); } } return entries; }
public bool PostDeliveryReceipt(Guid deliveryID) { var delivery = _unitOfWork.DeliveryRepository.Get(t => t.DeliveryID == deliveryID, null, "DeliveryDetails").FirstOrDefault(); if (delivery == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); var reliefRequisition = _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionNo == delivery.RequisitionNo).FirstOrDefault(); if (reliefRequisition != null) transaction.ProgramID = reliefRequisition.ProgramID; var orDefault = _unitOfWork.DispatchRepository.Get(t => t.DispatchID == delivery.DispatchID).FirstOrDefault(); if (orDefault !=null) transaction.DonorID = orDefault.DispatchAllocation.DonorID; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; var dispatch = _unitOfWork.DispatchRepository.Get(t => t.DispatchID == delivery.DispatchID).FirstOrDefault(); if (dispatch !=null) transaction.ShippingInstructionID = dispatch.DispatchAllocation.ShippingInstructionID; transaction.LedgerID = 18; transaction.FDPID = delivery.FDPID; var firstOrDefault = delivery.DeliveryDetails.FirstOrDefault(); if (firstOrDefault != null) { transaction.CommodityID = firstOrDefault.CommodityID; transaction.QuantityInMT = firstOrDefault.ReceivedQuantity; transaction.QuantityInUnit = firstOrDefault.ReceivedQuantity; transaction.UnitID = firstOrDefault.UnitID; } _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); //var reliefRequisition = _unitOfWork.ReliefRequisitionRepository.Get(t => t.RequisitionNo == distribution.RequisitionNo).FirstOrDefault(); if (reliefRequisition != null) transaction.ProgramID = reliefRequisition.ProgramID; //var orDefault = _unitOfWorkhub.DispatchRepository.Get(t => t.DispatchID == distribution.DispatchID).FirstOrDefault(); if (orDefault != null) transaction.DonorID = orDefault.DispatchAllocation.DonorID; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; //var dispatch = _unitOfWorkhub.DispatchRepository.Get(t => t.DispatchID == distribution.DispatchID).FirstOrDefault(); if (dispatch != null) transaction.ShippingInstructionID = dispatch.DispatchAllocation.ShippingInstructionID; transaction.LedgerID = 17; transaction.HubID = delivery.HubID; transaction.FDPID = delivery.FDPID; //var firstOrDefault = distribution.DeliveryDetails.FirstOrDefault(); if (firstOrDefault != null) { transaction.CommodityID = firstOrDefault.CommodityID; transaction.QuantityInMT = firstOrDefault.ReceivedQuantity; transaction.QuantityInUnit = firstOrDefault.ReceivedQuantity; transaction.UnitID = firstOrDefault.UnitID; } _unitOfWork.TransactionRepository.Add(transaction); delivery.Status = 2; delivery.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public List<Models.Transaction> PostPSNPPlan(RegionalPSNPPlan plan, Ration ration) { List<Models.Transaction> entries = new List<Models.Transaction>(); List<int> regionalBenCount = new List<int>(); for (int r = 0; r < plan.Duration; r++) { regionalBenCount.Add(0); } foreach (RegionalPSNPPlanDetail fdp in plan.RegionalPSNPPlanDetails) { for (int r = 0; r < fdp.FoodRatio; r++) { regionalBenCount[r] += (int)fdp.BeneficiaryCount; } } for (int r = 0; r < plan.Duration; r++) { int noben = regionalBenCount[r]; if (noben > 0) { foreach (RationDetail rd in ration.RationDetails) { decimal amount = rd.Amount * noben; Models.Transaction entry2 = new Models.Transaction { CommodityID = rd.CommodityID, Round = r + 1, ProgramID = 2, QuantityInUnit = -amount, UnitID=1, QuantityInMT = -amount, LedgerID = 200 }; Models.Transaction entry1 = new Models.Transaction { CommodityID = rd.CommodityID, Round = r + 1, ProgramID = 2, QuantityInUnit = amount, UnitID = 1, QuantityInMT = amount, LedgerID = 100 }; entries.Add(entry1); entries.Add(entry2); } } } PostTransaction(entries); return entries; }
public bool PostGiftCertificate(int giftCertificateId) { var giftCertificate = _unitOfWork.GiftCertificateRepository.Get(t => t.GiftCertificateID == giftCertificateId, null,"GiftCertificateDetails").FirstOrDefault(); if(giftCertificate==null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var giftCertificateDetail in giftCertificate.GiftCertificateDetails) { var transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.ProgramID = giftCertificate.ProgramID; transaction.DonorID = giftCertificate.DonorID; transaction.CommoditySourceID = giftCertificateDetail.DFundSourceID; transaction.GiftTypeID = giftCertificateDetail.DFundSourceID; transaction.QuantityInMT = giftCertificateDetail.WeightInMT; transaction.QuantityInUnit = giftCertificateDetail.WeightInMT; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.UnitID = 1; transaction.LedgerID = Ledger.Constants.GOODS_PROMISSED_GIFT_CERTIFICATE_COMMITED;//Goods Promised - Gift Certificate - Commited not found in ledger list transaction.CommodityID = giftCertificateDetail.CommodityID; // transaction.ShippingInstructionID = giftCertificate.SINumber; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction(); transaction.TransactionID = Guid.NewGuid(); transaction.ProgramID = giftCertificate.ProgramID; transaction.DonorID = giftCertificate.DonorID; transaction.QuantityInMT = -giftCertificateDetail.WeightInMT; transaction.TransactionGroupID = transactionGroup; transaction.TransactionDate = transactionDate; transaction.QuantityInUnit = giftCertificateDetail.WeightInMT; transaction.UnitID = 1; transaction.LedgerID = Ledger.Constants.GOODS_PROMISSED_PLEDGE;//Goods Promised - Pledge not found in ledger list _unitOfWork.TransactionRepository.Add(transaction); } giftCertificate.StatusID = 2; giftCertificate.TransactionGroupID = transactionGroup; _unitOfWork.Save(); return true; }
public bool PostSIAllocationUncommit(int requisitionID) { var allocationDetails = _unitOfWork.SIPCAllocationRepository.Get(t => t.ReliefRequisitionDetail.RequisitionID == requisitionID); if (allocationDetails == null) return false; var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup { PartitionID = 0, TransactionGroupID = transactionGroup }); //ProjectCodeID ShippingInstructionID ProgramID QuantityInMT QuantityInUnit UnitID TransactionDate RegionID Month Round DonorID CommoditySourceID GiftTypeID FDP foreach (var allocationDetail in allocationDetails) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), TransactionGroupID = transactionGroup, TransactionDate = transactionDate, UnitID = 1 }; var allocation = allocationDetail; // I see some logical error here // what happens when hub x was selected and the allocation was made from hub y? //TOFIX: // Hub is required for this transaction // Try catch is danger!! Either throw the exception or use conditional statement. int hubID = 0; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; hubID = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ShippingInstructionID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } else { var detail = allocationDetail; var code = detail.Code.ToString(); var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == code). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; hubID = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ProjectCodeID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } if (hubID != 0) { transaction.HubID = hubID; } else { transaction.HubID = _unitOfWork.HubAllocationRepository.FindBy(r => r.RequisitionID == allocation.ReliefRequisitionDetail.RequisitionID).Select( h => h.HubID).FirstOrDefault(); } transaction.QuantityInMT = allocationDetail.AllocatedAmount; transaction.QuantityInUnit = allocationDetail.AllocatedAmount; transaction.LedgerID = Ledger.Constants.COMMITED_TO_FDP; transaction.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; if (allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest!=null) { transaction.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; } transaction.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { transaction.ShippingInstructionID = allocationDetail.Code; } else { transaction.ProjectCodeID = allocationDetail.Code; } _unitOfWork.TransactionRepository.Add(transaction); // result.Add(transaction); /*post Debit-Pledged To FDP*/ var transaction2 = new Models.Transaction { TransactionID = Guid.NewGuid(), TransactionGroupID = transactionGroup, TransactionDate = transactionDate, UnitID = 1 }; //TOFIX: do not use try catch int hubID2 = 0; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; hubID2 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ShippingInstructionID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } else { var detail = allocationDetail; var code = detail.Code.ToString(); var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == code). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; hubID2 = (int)_unitOfWork.TransactionRepository.FindBy(m => m.ProjectCodeID == allocationDetail.Code && m.LedgerID == Ledger.Constants.GOODS_ON_HAND).Select(m => m.HubID).FirstOrDefault(); } if (hubID2 != 0) { transaction2.HubID = hubID2; } else { transaction2.HubID = _unitOfWork.HubAllocationRepository.FindBy(r => r.RequisitionID == allocation.ReliefRequisitionDetail.RequisitionID).Select( h => h.HubID).FirstOrDefault(); } transaction2.QuantityInMT = -allocationDetail.AllocatedAmount; transaction2.QuantityInUnit = -allocationDetail.AllocatedAmount; transaction2.LedgerID = Ledger.Constants.PLEDGED_TO_FDP; transaction2.CommodityID = allocationDetail.ReliefRequisitionDetail.CommodityID; transaction2.FDPID = allocationDetail.ReliefRequisitionDetail.FDPID; transaction2.ProgramID = (int)allocationDetail.ReliefRequisitionDetail.ReliefRequisition.ProgramID; transaction2.RegionID = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionID; if (allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest != null) { transaction2.PlanId = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.RegionalRequest.PlanID; } transaction2.Round = allocationDetail.ReliefRequisitionDetail.ReliefRequisition.Round; if (allocationDetail.AllocationType == TransactionConstants.Constants.SHIPPNG_INSTRUCTION) { var siCode = allocationDetail.Code.ToString(); var shippingInstruction = _unitOfWork.ShippingInstructionRepository.Get(t => t.Value == siCode). FirstOrDefault(); if (shippingInstruction != null) transaction.ShippingInstructionID = shippingInstruction.ShippingInstructionID; } else { var detail = allocationDetail; var code = detail.Code.ToString(); var projectCode = _unitOfWork.ProjectCodeRepository.Get(t => t.Value == code). FirstOrDefault(); if (projectCode != null) transaction.ProjectCodeID = projectCode.ProjectCodeID; } _unitOfWork.TransactionRepository.Add(transaction2); _unitOfWork.SIPCAllocationRepository.Delete(allocationDetail); //result.Add(transaction); } var requisition = _unitOfWork.ReliefRequisitionRepository.FindById(requisitionID); requisition.Status = (int) Cats.Models.Constant.ReliefRequisitionStatus.Approved; _unitOfWork.ReliefRequisitionRepository.Edit(requisition); _unitOfWork.Save(); //return result; return true; }
public List<Models.Transaction> PostHRDPlan(HRD hrd, Ration ration) { List<Models.Transaction> entries = new List<Models.Transaction>(); List<int> regionalBenCount = new List<int>(); ration = hrd.Ration; int RegionID=0; for (int r = 0; r < 12; r++) { regionalBenCount.Add(0); } foreach (HRDDetail fdp in hrd.HRDDetails) { for (int r = 0; r < fdp.DurationOfAssistance; r++) { regionalBenCount[r] += (int)fdp.NumberOfBeneficiaries; RegionID = fdp.AdminUnit.AdminUnit2.AdminUnit2.AdminUnitID; } } for (int r = 0; r < 12; r++) { int noben = regionalBenCount[r]; if (noben > 0) { foreach (RationDetail rd in ration.RationDetails) { decimal amount = rd.Amount * noben; Models.Transaction entry2 = new Models.Transaction { RegionID = RegionID, CommodityID = rd.CommodityID, Round = r + 1, ProgramID = 2, QuantityInUnit = -amount, UnitID = 1, QuantityInMT = -amount, LedgerID = 200 }; Models.Transaction entry1 = new Models.Transaction { RegionID = RegionID, CommodityID = rd.CommodityID, Round = r + 1, ProgramID = 2, QuantityInUnit = amount, UnitID = 1, QuantityInMT = amount, LedgerID = 100 }; entries.Add(entry1); entries.Add(entry2); } } } return entries; }
public bool PostLoan(LoanReciptPlan loanReciptPlan) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); foreach (var loan in loanReciptPlan.LoanReciptPlanDetails) { var transaction = new Models.Transaction() { TransactionID = Guid.NewGuid(), CommoditySourceID =Models.Constant.CommoditySourceConst.Constants.LOAN, CommodityID = loan.LoanReciptPlan.CommodityID, ParentCommodityID = loan.LoanReciptPlan.Commodity.ParentID, ShippingInstructionID = loanReciptPlan.ShippingInstruction.ShippingInstructionID, QuantityInMT = loan.RecievedQuantity, HubID = loan.HubID, TransactionDate = transactionDate, TransactionGroupID = transactionGroup // LedgerID = Cats.Models.Ledger.Constants }; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction() { TransactionID = Guid.NewGuid(), CommoditySourceID = Models.Constant.CommoditySourceConst.Constants.LOAN, CommodityID = loan.LoanReciptPlan.CommodityID, ParentCommodityID = loan.LoanReciptPlan.Commodity.ParentID, ShippingInstructionID = loanReciptPlan.ShippingInstruction.ShippingInstructionID, QuantityInMT = loan.RecievedQuantity, HubID = loan.HubID, TransactionDate = transactionDate, TransactionGroupID = transactionGroup // LedgerID = Cats.Models.Ledger.Constants }; _unitOfWork.TransactionRepository.Add(transaction); } try { _unitOfWork.Save(); return true; } catch (Exception) { return false; } return true; }
public bool PostLocalPurchase(List<LocalPurchaseDetail> localPurchaseDetail) { var transactionGroup = Guid.NewGuid(); var transactionDate = DateTime.Now; _unitOfWork.TransactionGroupRepository.Add(new TransactionGroup() { PartitionID = 0, TransactionGroupID = transactionGroup }); if (localPurchaseDetail != null) foreach (var detail in localPurchaseDetail) { var transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), CommoditySourceID = Models.Constant.CommoditySourceConst.Constants.LOCALPURCHASE, CommodityID = detail.LocalPurchase.CommodityID, ParentCommodityID = detail.LocalPurchase.Commodity.ParentID, DonorID = detail.LocalPurchase.DonorID, HubID = detail.HubID, ProgramID = detail.LocalPurchase.ProgramID, QuantityInMT = detail.AllocatedAmount, QuantityInUnit = detail.AllocatedAmount, ShippingInstructionID = detail.LocalPurchase.ShippingInstructionID, TransactionDate = transactionDate, TransactionGroupID = transactionGroup //LedgerID = Models.Ledger.Constants }; _unitOfWork.TransactionRepository.Add(transaction); transaction = new Models.Transaction { TransactionID = Guid.NewGuid(), CommoditySourceID = Models.Constant.CommoditySourceConst.Constants.LOCALPURCHASE, CommodityID = detail.LocalPurchase.CommodityID, ParentCommodityID = detail.LocalPurchase.Commodity.ParentID, DonorID = detail.LocalPurchase.DonorID, HubID = detail.HubID, ProgramID = detail.LocalPurchase.ProgramID, QuantityInMT = detail.AllocatedAmount, QuantityInUnit = detail.AllocatedAmount, ShippingInstructionID = detail.LocalPurchase.ShippingInstructionID, TransactionDate = transactionDate, TransactionGroupID = transactionGroup //LedgerID = Models.Ledger.Constants }; _unitOfWork.TransactionRepository.Add(transaction); } try { _unitOfWork.Save(); return true; } catch (Exception) { return false; } }