public void Payment(String type = null) { List <string> temp = new List <string> { "credit", "transfer", "internaltransfer" }; int index = (type == null)? GenericUtils.GetRandomNumber(0, temp.Count() - 1) :temp.FindIndex(s => s.ToLower().Contains(type)); switch (temp[index]) { case "credit": EnterCreditCard(); break; case "transfer": True.ClickCustom("Transfer", driver); FiRoutingNumber.SendKeysWrapper(Configuration.Parameter.Get <string>("RoutingNumber"), "RoutingNumber", driver); acctNumber.SendKeysWrapper(Configuration.Parameter.Get <string>("AccountNumber"), "AccountNumber", driver); break; case "internaltransfer": InternalTransfer.ClickCustom("InternalTransfer", driver); acctNumber.SendKeysWrapper(Configuration.Parameter.Get <string>("AccountNumber"), "AccountNumber", driver); break; } submitApplicationButton.ClickCustom("Submit", driver); }
private void ConfirmStockMovement(object sender, EventArgs e) { for (int i = 0; i < gridConfirmationView.RowCount; i++) { DataRow dr = gridConfirmationView.GetDataRow(i); if (Convert.ToBoolean(dr["IsSelected"])) { InternalTransfer it = new InternalTransfer(); it.LoadByPrimaryKey(Convert.ToInt32(dr["ID"])); it.Status = 1; it.Save(); } } BindConfirmationGrid(); }
private void btnConfirm2_Click(object sender, EventArgs e) { for (int i = 0; i < gridView1.RowCount; i++) { DataRow dr = gridView1.GetDataRow(i); if (Convert.ToBoolean(dr["IsSelected"])) { InternalTransfer it = new InternalTransfer(); it.LoadByPrimaryKey(Convert.ToInt32(dr["ID"])); it.Status = 1; it.Save(); } } XtraMessageBox.Show("Confirmation Successful", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); gridControl1.DataSource = BLL.InternalTransfer.GetAllTransfers(radioGroup1.EditValue.ToString()); }
private void returnToBulkStoreToolStripMenuItem_Click(object sender, EventArgs e) { DataRow dr = gridPickFaceDetailView.GetFocusedDataRow(); if (dr != null) { int ReceivePalletID = Convert.ToInt32(dr["ID"]); ReceivePallet rp = new ReceivePallet(); rp.LoadByPrimaryKey(ReceivePalletID); ReceiveDoc rd = new ReceiveDoc(); rd.LoadByPrimaryKey(rp.ReceiveID); BLL.ItemManufacturer imf = new BLL.ItemManufacturer(); imf.LoadIMbyLevel(rd.ItemID, rd.ManufacturerId, rp.BoxSize); int QuantityToReturn = Convert.ToInt32(((rp.Balance - rp.ReservedStock) / imf.QuantityInBasicUnit) * imf.QuantityInBasicUnit); InternalTransfer itfr = new InternalTransfer(); } }
public async Task<CreateInternalTransferResponse> Handle(CreateInternalTransferRequest request, CancellationToken cancellationToken) { var result = new CreateInternalTransferResponse(); var fromPocket = _context.Pockets .Where(x => x.PocketID == request.FromPocketID) .Include(a => a.Wallet) .ThenInclude(b => b.Owner) .ThenInclude(c => c.Provider) .SingleOrDefault(); if (fromPocket == null) throw new NotFoundException(nameof(Pocket), request.FromPocketID); var toPocket = _context.Pockets .Where(x => x.PocketID == request.ToPocketID) .Include(a => a.Wallet) .ThenInclude(b => b.Owner) .ThenInclude(c => c.Provider) .SingleOrDefault(); if (toPocket == null) throw new NotFoundException(nameof(Pocket), request.ToPocketID); var currency = _context.Currencies .Where(x => x.CurrencyID == fromPocket.CurrencyID) .SingleOrDefault(); if (currency == null) throw new NotFoundException(nameof(Currency), fromPocket.CurrencyID); Transaction transactionFromPocket = new Transaction { PocketID = fromPocket.PocketID, Amount = -request.Amount, UnitPriceInUSD = currency.UnitPriceInUSD, TransactionHash = string.Empty, PairWalletName = $"{toPocket.Wallet.Owner.Provider.Name} - {toPocket.Wallet.Name}", PairWalletAddress = toPocket.Wallet.Address, TransactionType = TransactionType.InternalTransferOUT, TransactionDateTime = request.TransactionDateTime, Created = _dateTimeOffset.Now, LastModified = _dateTimeOffset.Now }; Transaction transactionToPocket = new Transaction { PocketID = toPocket.PocketID, Amount = request.Amount, UnitPriceInUSD = currency.UnitPriceInUSD, TransactionHash = string.Empty, PairWalletName = $"{fromPocket.Wallet.Owner.Provider.Name} - {fromPocket.Wallet.Name}", PairWalletAddress = fromPocket.Wallet.Address, TransactionType = TransactionType.InternalTransferIN, TransactionDateTime = request.TransactionDateTime, Created = _dateTimeOffset.Now, LastModified = _dateTimeOffset.Now }; _context.Transactions.Add(transactionFromPocket); _context.Transactions.Add(transactionToPocket); await _context.SaveChangesAsync(cancellationToken); InternalTransfer internalTransfer = new InternalTransfer { FromTransactionID = transactionFromPocket.TransactionID, ToTransactionID = transactionToPocket.TransactionID, }; _context.InternalTransfers.Add(internalTransfer); await _context.SaveChangesAsync(cancellationToken); result.InternalTransferID = internalTransfer.InternalTransferID; result.WalletID = fromPocket.WalletID; result.IsSuccessful = true; return result; }
private void OnReplenishClicked(object sender, EventArgs e) { PalletLocation pl = new PalletLocation(); PickFace pf = new PickFace(); DataRow dr = gridPickFaceStockLevelView.GetFocusedDataRow(); DataRow dr2 = gridReplenishmentChoiceView.GetFocusedDataRow(); if (dr2 != null) { // check if the replenishment is from allowed location. // if (!Convert.ToBoolean(dr2["CanReplenish"])) { XtraMessageBox.Show("Please choose replenishment from the first to expire items", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } pl.LoadByPrimaryKey(_palletLocationID); pf.LoadByPrimaryKey(_pickFaceID); if (pf.IsColumnNull("Balance")) { pf.Balance = 0; } if (pl.IsColumnNull("PalletID")) { Pallet pallet = new Pallet(); pallet.AddNew(); pallet.StorageTypeID = Convert.ToInt32(StorageType.PickFace); pallet.Save(); pl.PalletID = pallet.ID; pl.Save(); } ReceivePallet rp = new ReceivePallet(); ReceivePallet rp2 = new ReceivePallet(); ReceiveDoc rd = new ReceiveDoc(); rp.LoadByPrimaryKey(Convert.ToInt32(dr2["ReceivePalletID"])); rp2.AddNew(); rp2.IsOriginalReceive = false; rp2.PalletID = pl.PalletID; rp2.ReceiveID = rp.ReceiveID; rp2.BoxSize = rp.BoxSize; // calculate the new balance BLL.ItemManufacturer im = new BLL.ItemManufacturer(); im.LoadIMbyLevel(_designatedItemID, Convert.ToInt32(dr2["ManufacturerID"]), Convert.ToInt32(dr2["BoxSize"])); if (rp.IsColumnNull("ReservedStock")) { rp.ReservedStock = 0; } //if (rp.Balance - rp.ReservedStock < im.QuantityInBasicUnit ) //{ // XtraMessageBox.Show("You cannot replenish the pick face from this location because the items are reserved for Issue. Please replenish from another receive.","Warning",MessageBoxButtons.OK,MessageBoxIcon.Warning); // return; //} BLL.ItemManufacturer imff = new BLL.ItemManufacturer(); imff.LoadOuterBoxForItemManufacturer(im.ItemID, im.ManufacturerID); if (imff.PackageLevel > im.PackageLevel && rp.Balance < imff.QuantityInBasicUnit) { rp2.Balance = rp.Balance; } else if (rp.Balance - rp.ReservedStock > im.QuantityInBasicUnit) { rp2.ReceivedQuantity = rp2.Balance = im.QuantityInBasicUnit; } else { rp2.Balance = rp.Balance; } rp2.ReservedStock = 0; rp.Balance -= rp2.Balance; if (rp.IsColumnNull("ReceivedQuantity")) { rp.ReceivedQuantity = rp.Balance + rp2.Balance; } rp.ReceivedQuantity -= rp2.Balance; rp.Save(); rp2.Save(); pl.Confirmed = false; pl.Save(); pf.Balance += Convert.ToInt32(rp2.Balance); pf.Save(); PalletLocation pl2 = new PalletLocation(); pl2.LoadLocationForPallet(rp.PalletID); rd.LoadByPrimaryKey(rp2.ReceiveID); // Now update the screen accordingly. dr["Balance"] = pf.Balance;// Convert.ToInt32(dr["Balance"]) + rp2.Balance; InternalTransfer it = new InternalTransfer(); it.AddNew(); it.ItemID = _designatedItemID; it.BoxLevel = im.PackageLevel; it.ExpireDate = rd.ExpDate; it.BatchNumber = rd.BatchNo; it.ManufacturerID = im.ManufacturerID; it.FromPalletLocationID = pl2.ID; it.ToPalletLocationID = _palletLocationID; it.IssuedDate = DateTimeHelper.ServerDateTime; it.QtyPerPack = im.QuantityInBasicUnit; it.Packs = 1; it.ReceiveDocID = rp.ReceiveID; it.QuantityInBU = it.Packs * it.QtyPerPack; it.Type = "PickFace"; it.Status = 0; it.Save(); BindPickFaceDetailAndReplenismehmnent(); XtraMessageBox.Show("Your Pick Face is updated, please print the replenishment list and confirm the stock movement", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void btnCommit_Click(object sender, EventArgs e) { if (ValidateQuarantine()) { MyGeneration.dOOdads.TransactionMgr transaction = MyGeneration.dOOdads.TransactionMgr.ThreadTransactionMgr(); transaction.BeginTransaction(); if (DialogResult.Yes == XtraMessageBox.Show("Are you sure you want to commit the Loss and Adjustment on this screen?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { // do the actual commit here. int printNubmer = InternalTransfer.GetNewPrintNumber() + 1; PalletLocation pl = new PalletLocation(); Pallet p = new Pallet(); ReceiveDoc rdoc = new ReceiveDoc(); ReceivePallet rp = new ReceivePallet(); for (int i = 0; i < gridView1.RowCount; i++) { DataRow dr = gridView1.GetDataRow(i); Double writeoff = 0; Double reLocate = 0; try { if (dr["WriteOff"] != DBNull.Value) { writeoff = Double.Parse(dr["WriteOff"].ToString()); } if (dr["ReLocate"] != DBNull.Value) { reLocate = Double.Parse(dr["ReLocate"].ToString()); } } catch (Exception exc) { } if (dr["WriteOff"] != DBNull.Value & writeoff > 0) { if (Double.Parse(dr["WriteOff"].ToString()) > Double.Parse(dr["Balance"].ToString())) { XtraMessageBox.Show("Couldn't commit to the numbers you specified. Please specify number less than the balance.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } int writeoffAmout = Convert.ToInt32(dr["WriteOff"]); int qtyPerPack = Convert.ToInt32(dr["QtyPerPack"]); writeoffAmout *= qtyPerPack; rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rdoc.LoadByPrimaryKey(rp.ReceiveID); string x = dr["NewPalletLocation"].ToString(); rp.Balance -= writeoffAmout; try { // rp.ReceivedQuantity -= writeoffAmout; } catch { } rdoc.QuantityLeft -= writeoffAmout; ReceivePallet nrp = new ReceivePallet(); nrp.AddNew(); nrp.ReceiveID = rp.ReceiveID; nrp.PalletID = pl.GetpalletidbyPalletLocationOrgetnew(int.Parse(dr["NewPalletLocation"].ToString())); //nrp.ReceivedQuantity = rp.ReceivedQuantity; nrp.Balance = writeoffAmout; nrp.ReservedStock = 0; //nrp.ReserveOrderID = rp.ReserveOrderID; nrp.BoxSize = rp.BoxSize; nrp.PalletLocationID = int.Parse(dr["NewPalletLocation"].ToString()); nrp.IsOriginalReceive = rp.IsOriginalReceive; BLL.LossAndAdjustment d = new BLL.LossAndAdjustment(); d.AddNew(); d.GenerateRefNo(); d.ItemID = Convert.ToInt32(dr["ItemID"]); d.ReasonId = Convert.ToInt32(dr["Reason"]); d.RecID = rdoc.ID; d.Quantity = writeoffAmout; d.BatchNo = rdoc.BatchNo; CalendarLib.DateTimePickerEx edate = new CalendarLib.DateTimePickerEx(); edate.Value = DateTime.Today; //TODO: fix to an ethiopian date here edate.CustomFormat = "MM/dd/yyyy"; d.Date = ConvertDate.DateConverter(edate.Text); d.EurDate = DateTime.Today; d.Cost = rdoc.IsColumnNull("Cost")? 0: Math.Abs(rdoc.Cost * writeoffAmout); d.StoreId = rdoc.StoreID; d.Losses = true; //todo: d.ApprovedBy = CurrentContext.UserId.ToString(); //d.Remarks InternalTransfer it = new InternalTransfer(); it.AddNew(); it.ItemID = d.ItemID; it.FromPalletLocationID = pl.GetPalletLocationIDByPalletID(int.Parse(dr["PalletID"].ToString())); it.ToPalletLocationID = nrp.PalletLocationID; it.BatchNumber = d.BatchNo; if (!rdoc.IsColumnNull("ExpDate")) { it.ExpireDate = rdoc.ExpDate; } it.ReceiveDocID = rdoc.ID; it.ManufacturerID = rdoc.ManufacturerId; it.QtyPerPack = Convert.ToInt32(dr["QtyPerPack"]); it.Packs = rdoc.NoOfPack; it.QuantityInBU = nrp.Balance; LossAndAdjustmentReason r = new LossAndAdjustmentReason(); it.Type = r.GetReasonByID(d.ReasonId); // d.Save(); rdoc.Save(); rp.Save(); rdoc.QuantityLeft += writeoffAmout; rdoc.Save(); nrp.Save(); it.Save(); int xs = it.ID; } else if (dr["ReLocate"] != DBNull.Value & reLocate > 0) { if (dr["ReLocate"] != DBNull.Value) { int amount = Convert.ToInt32(dr["ReLocate"]); int qtyPerPack = Convert.ToInt32(dr["QtyPerPack"]); amount *= qtyPerPack; rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rdoc.LoadByPrimaryKey(rp.ReceiveID); int palletLocationID = Convert.ToInt32(dr["PalletLocationID"]); int qPalletLocationID = PalletLocation.GetQuaranteenPalletLocationByPalletLocationID(palletLocationID); //PalletLocation.GetQuaranteenPalletLocation(Convert.ToInt32(dr["ID"])); pl.LoadByPrimaryKey(qPalletLocationID); ReceivePallet rp2 = new ReceivePallet(); ReceiveDoc rd = new ReceiveDoc(); Pallet pallet = new Pallet(); rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rd.LoadByPrimaryKey(rp.ReceiveID); pallet.AddNew(); Item item = new Item(); item.LoadByPrimaryKey(rdoc.ItemID); if (item.StorageTypeID.ToString() == StorageType.BulkStore) { pallet.PalletNo = Pallet.GetLastPanelNumber(); } pallet.Save(); rp2.AddNew(); rp2.PalletID = pl.GetpalletidbyPalletLocationOrgetnew(int.Parse(dr["NewPalletLocation"].ToString()));//pallet.ID; rp2.ReceiveID = rp.ReceiveID; rp2.IsOriginalReceive = rp.IsOriginalReceive; // calculate the new balance BLL.ItemManufacturer im = new BLL.ItemManufacturer(); //im.LoadDefaultReceiving(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"])); //im.LoadIMbyLevel(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"]), Convert.ToInt32(dr["BoxLevel"])); //int packqty = (amount / im.QuantityInBasicUnit); rd.QuantityLeft -= amount; rp.Balance -= amount; rd.Save(); rp.Save(); rd.QuantityLeft += amount; rp2.Balance = amount;//packqty * im.QuantityInBasicUnit; rd.Save(); rp2.BoxSize = rp.BoxSize; rp2.ReservedStock = 0; rp2.PalletLocationID = int.Parse(dr["NewPalletLocation"].ToString()); rp2.Save(); pl.Confirmed = false; pl.Save(); // select the new pallet location here. /* XtraForm xdb = new XtraForm(); * xdb.Controls.Add(panelControl2); * Item itms= new Item(); * itms.GetItemByPrimaryKey(Convert.ToInt32(dr["ItemID"])); * lblItemName.Text = itms.FullItemName; * panelControl2.Visible = true; * panelControl2.Dock = DockStyle.Fill; * xdb.Text = "Select Location for relocated Item"; * lkLocation.Properties.DataSource = PalletLocation.GetAllFreeFor(Convert.ToInt32(dr["ItemID"])); * xdb.ShowDialog(); * * PalletLocation pl2 = new PalletLocation(); * pl2.LoadByPrimaryKey(Convert.ToInt32(lkLocation.EditValue)); * pl2.PalletID = pallet.ID; * pl2.Confirmed = false; * pl2.Save(); */ InternalTransfer it = new InternalTransfer(); it.AddNew(); it.ItemID = rd.ItemID; it.BoxLevel = 0; // im.PackageLevel; //it.ExpireDate = rd.ExpDate; if (!rd.IsColumnNull("ExpDate")) { it.ExpireDate = rd.ExpDate; } it.BatchNumber = rd.BatchNo; it.ManufacturerID = Convert.ToInt32(dr["ManufacturerID"]); //im.ManufacturerID; it.FromPalletLocationID = qPalletLocationID; it.ToPalletLocationID = int.Parse(dr["NewPalletLocation"].ToString()); //pl2.ID; it.QtyPerPack = 1; //it.Packs = pack qty; it.ReceiveDocID = rp.ReceiveID; it.QuantityInBU = amount; // it.QtyPerPack; it.Type = "ReLocation"; it.IssuedDate = DateTime.Today; it.Status = 0; it.PrintNumber = printNubmer; it.Save(); } } } transaction.CommitTransaction(); BindQuarantine(); XtraMessageBox.Show("Quarantine Write off/Adjustment was commitd.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
private void btnAdjustments_Click(object sender, EventArgs e) { if (ValidateMoveToAdjustments()) { if (DialogResult.Yes == XtraMessageBox.Show("Are you sure you would like to commit this adjustment?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { PalletLocation pl = new PalletLocation(); Pallet p = new Pallet(); ReceiveDoc rdoc = new ReceiveDoc(); ReceivePallet rp = new ReceivePallet(); int printNubmer = InternalTransfer.GetNewPrintNumber() + 1; for (int i = 0; i < gridView3.RowCount; i++) { DataRow dr = gridView3.GetDataRow(i); if (dr["Adjust"] != DBNull.Value) { int amount = Convert.ToInt32(dr["Adjust"]); rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rdoc.LoadByPrimaryKey(rp.ReceiveID); rdoc.NoOfPack += amount; amount *= rdoc.QtyPerPack; rp.Balance += amount; if (rp.IsColumnNull("ReceivedQuantity")) { rp.ReceivedQuantity = 0; } rp.ReceivedQuantity += amount; rdoc.QuantityLeft += amount; rdoc.Quantity += amount; BLL.LossAndAdjustment d = new BLL.LossAndAdjustment(); d.AddNew(); d.GenerateRefNo(); d.ItemID = Convert.ToInt32(dr["ItemID"]); d.ReasonId = Convert.ToInt32(dr["Reason"]); d.RecID = rdoc.ID; d.Quantity = amount; d.BatchNo = rdoc.BatchNo; CalendarLib.DateTimePickerEx edate = new CalendarLib.DateTimePickerEx(); edate.Value = DateTime.Today; edate.CustomFormat = "MM/dd/yyyy"; d.Date = ConvertDate.DateConverter(edate.Text); d.EurDate = DateTime.Today; if (!rdoc.IsColumnNull("Cost")) { d.Cost = Math.Abs(rdoc.Cost * amount); } d.StoreId = rdoc.StoreID; d.Losses = false; d.ApprovedBy = CurrentContext.UserId.ToString(); d.Save(); rdoc.Save(); rp.Save(); } } PopulateItemDetails(); XtraMessageBox.Show("Items adjusted successfully.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
private void btnMoveToQuaranteen_Click(object sender, EventArgs e) { if (ValidateMoveToQuaranteen()) { if (DialogResult.Yes == XtraMessageBox.Show("Are you sure you want to move the items to Quarantine", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { InternalItemMovements ims = new InternalItemMovements(); PalletLocation pl = new PalletLocation(); int printNubmer = InternalTransfer.GetNewPrintNumber() + 1; for (int i = 0; i < gridView3.RowCount; i++) { DataRow dr = gridView3.GetDataRow(i); if (dr["Loss"] != DBNull.Value) { int amount = Convert.ToInt32(dr["Loss"]); int palletLocationID = Convert.ToInt32(dr["PalletLocationID"]); ReceivePallet rp = new ReceivePallet(); ReceiveDoc rdoc = new ReceiveDoc(); rp.LoadByPrimaryKey(Convert.ToInt32(dr["ReceivePalletID"])); rdoc.LoadByPrimaryKey(rp.ReceiveID); amount *= rdoc.QtyPerPack; if (rp.Balance - amount < rp.ReservedStock) { //Item has been reserved for a facility. This needs to be handled. DataTable dtble = rp.GetFacilitiesItemsReservedFor(); string facilities = ""; foreach (DataRow dRow in dtble.Rows) { if (dr != null) { facilities += dRow["Name"].ToString() + System.Environment.NewLine; } } XtraMessageBox.Show("You cannot fill in a loss because the item in this location has been reserved to the following facilities:" + System.Environment.NewLine + facilities, "Exisiting reservations must be cancelled", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var receiveDocID = Convert.ToInt32(dr["ID"]); var rec = new ReceiveDoc(); rec.LoadByPrimaryKey(receiveDocID); int qPalletLocationID = PalletLocation.GetQuaranteenPalletLocation(rec.PhysicalStoreID); pl.LoadByPrimaryKey(qPalletLocationID); if (pl.IsColumnNull("PalletID")) { Pallet p = new Pallet(); p.AddNew(); p.StorageTypeID = Convert.ToInt32(StorageType.Quaranteen); p.Save(); pl.PalletID = p.ID; pl.Save(); } ReceivePallet rp2 = new ReceivePallet(); ReceiveDoc rd = new ReceiveDoc(); rd.LoadByPrimaryKey(rp.ReceiveID); rp2.AddNew(); rp2.PalletID = pl.PalletID; rp2.ReceiveID = rp.ReceiveID; rp2.PalletLocationID = pl.ID; // calculate the new balance BLL.ItemManufacturer im = new BLL.ItemManufacturer(); //im.LoadDefaultReceiving(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"])); if (dr["BoxLevel"] == DBNull.Value) { dr["BoxLevel"] = 0; } im.LoadIMbyLevel(rd.ItemID, Convert.ToInt32(dr["ManufacturerID"]), Convert.ToInt32(dr["BoxLevel"])); int packqty = (amount / im.QuantityInBasicUnit); rp2.ReservedStock = 0; BLL.ReceivePallet.MoveBalance(rp, rp2, amount); //rp2.Balance = amount; //rp.Balance -= rp2.Balance; //rp.Save(); //rp2.Save(); pl.Confirmed = false; pl.Save(); if (rp.Balance == 0) { PalletLocation.GarbageCollection(); } InternalTransfer it = new InternalTransfer(); it.AddNew(); it.ItemID = rd.ItemID; it.BoxLevel = im.PackageLevel; if (!rd.IsColumnNull("ExpDate")) { it.ExpireDate = rd.ExpDate; } it.BatchNumber = rd.BatchNo; it.ManufacturerID = im.ManufacturerID; it.FromPalletLocationID = palletLocationID; it.ToPalletLocationID = qPalletLocationID; it.QtyPerPack = im.QuantityInBasicUnit; it.Packs = packqty; it.ReceiveDocID = rp.ReceiveID; it.QuantityInBU = rp2.Balance; //it.Packs * it.QtyPerPack; it.Type = "ToQuaranteen"; it.IssuedDate = DateTime.Today; it.Status = 0; it.PrintNumber = printNubmer; it.Save(); } } gridConfirmationControl.DataSource = InternalTransfer.GetAllTransfers("ToQuaranteen"); PopulateItemDetails(); XtraMessageBox.Show("Your items are marked for movement to Quarantine, please go to Internal Movements page to confirm!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
public async Task <GetTransactionsByMemberUsernameResponse> Handle(GetTransactionsByMemberUsernameRequest query, CancellationToken cancellationToken) { var result = new GetTransactionsByMemberUsernameResponse(); List <TransactionDTO> transactions = new List <TransactionDTO>(); var owners = await _context.Owners .Where(x => x.MemberUsername == query.MemberUsername) .Include(a => a.Provider) .Include(a => a.Wallets) .AsNoTracking() .ToListAsync(cancellationToken); foreach (var owner in owners) { foreach (var wallet in owner.Wallets) { var pockets = await _context.Pockets .Where(x => x.WalletID == wallet.WalletID && x.CurrencyType != CurrencyType.Fiat) .Include(a => a.Currency) .Include(a => a.Transactions) .ToListAsync(cancellationToken); foreach (var pocket in pockets) { foreach (var transaction in pocket.Transactions) { try { if (transaction.TransactionType == TransactionType.StartingBalance || transaction.TransactionType == TransactionType.ExternalTransferIN || transaction.TransactionType == TransactionType.ExternalTransferOUT || transaction.TransactionType == TransactionType.InternalTransferIN || transaction.TransactionType == TransactionType.InternalTransferOUT || transaction.TransactionType == TransactionType.BuyIN || transaction.TransactionType == TransactionType.BuyOUT || transaction.TransactionType == TransactionType.SellIN || transaction.TransactionType == TransactionType.SellOUT || transaction.TransactionType == TransactionType.SyncBalanceImport || transaction.TransactionType == TransactionType.SyncTransactionIN || transaction.TransactionType == TransactionType.SyncTransactionOUT) { TransactionDTO transactionDTO = new TransactionDTO { TransactionID = transaction.TransactionID, SourceProviderName = owner.Provider.Name, DestinationProviderName = "Destination Provider Name", SourceWalletName = wallet.Name, DestinationWalletName = transaction.PairWalletName, SourceCurrencySymbol = pocket.Currency.Symbol, DestinationCurrencySymbol = "Destination Currency Symbol", SourceCurrencyName = pocket.Currency.Name, DestinationCurrencyName = "Destination Currency Name", Amount = Math.Abs(transaction.Amount), UnitPriceInUSD = transaction.UnitPriceInUSD, UnitPrice = 1, TransactionDateTime = transaction.TransactionDateTime, TransactionType = transaction.TransactionType, TransactionTypeDisplayText = transaction.TransactionTypeDisplayText, TradeID = null, InternalTransferID = null }; if (transaction.TransactionType == TransactionType.StartingBalance) { if (wallet.ProviderType == ProviderType.Personal) { transactionDTO.SourceProviderName = wallet.Name; } else { transactionDTO.SourceProviderName = $"{owner.Provider.Name} - {wallet.Name}"; } transactionDTO.DestinationProviderName = transaction.PairWalletName; transactionDTO.DestinationWalletName = transaction.PairWalletName; transactionDTO.DestinationCurrencySymbol = pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = pocket.Currency.Name; } else if (transaction.TransactionType == TransactionType.ExternalTransferIN || transaction.TransactionType == TransactionType.ExternalTransferOUT) { if (wallet.ProviderType == ProviderType.Personal) { transactionDTO.SourceProviderName = wallet.Name; } transactionDTO.DestinationProviderName = transaction.PairWalletName; transactionDTO.DestinationWalletName = transaction.PairWalletName; transactionDTO.DestinationCurrencySymbol = pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = pocket.Currency.Name; transactionDTO.TransactionID = transaction.TransactionID; } else if (transaction.TransactionType == TransactionType.InternalTransferIN) { InternalTransfer internalTransfer = await _context.InternalTransfers .Where(x => x.ToTransactionID == transaction.TransactionID) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .ThenInclude(c => c.Owner) .ThenInclude(c => c.Provider) .SingleOrDefaultAsync(cancellationToken); if (internalTransfer != null) { if (wallet.ProviderType == ProviderType.Personal) { transactionDTO.SourceProviderName = wallet.Name; } if (internalTransfer.FromTransaction.Pocket.Wallet.Owner.Provider.ProviderType == ProviderType.Personal) { transactionDTO.DestinationProviderName = internalTransfer.FromTransaction.Pocket.Wallet.Name; } else { transactionDTO.DestinationProviderName = internalTransfer.FromTransaction.Pocket.Wallet.Owner.Provider.Name; } transactionDTO.DestinationWalletName = internalTransfer.FromTransaction.Pocket.Wallet.Name; transactionDTO.DestinationCurrencySymbol = pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = pocket.Currency.Name; transactionDTO.InternalTransferID = internalTransfer.InternalTransferID; } } else if (transaction.TransactionType == TransactionType.InternalTransferOUT) { InternalTransfer internalTransfer = await _context.InternalTransfers .Where(x => x.FromTransactionID == transaction.TransactionID) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .ThenInclude(c => c.Owner) .ThenInclude(d => d.Provider) .SingleOrDefaultAsync(cancellationToken); if (internalTransfer != null) { if (wallet.ProviderType == ProviderType.Personal) { transactionDTO.SourceProviderName = wallet.Name; } if (internalTransfer.ToTransaction.Pocket.Wallet.Owner.Provider.ProviderType == ProviderType.Personal) { transactionDTO.DestinationProviderName = internalTransfer.ToTransaction.Pocket.Wallet.Name; } else { transactionDTO.DestinationProviderName = internalTransfer.ToTransaction.Pocket.Wallet.Owner.Provider.Name; } transactionDTO.DestinationWalletName = internalTransfer.ToTransaction.Pocket.Wallet.Name; transactionDTO.DestinationCurrencySymbol = pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = pocket.Currency.Name; transactionDTO.InternalTransferID = internalTransfer.InternalTransferID; } } else if (transaction.TransactionType == TransactionType.BuyIN) { Trade tradeBuy = await _context.Trades .Where(x => x.FromTransactionID == transaction.TransactionID) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .SingleOrDefaultAsync(cancellationToken); if (tradeBuy != null) { transactionDTO.DestinationProviderName = owner.Provider.Name; transactionDTO.DestinationWalletName = tradeBuy.ToTransaction.Pocket.Wallet.Name; transactionDTO.UnitPrice = tradeBuy.UnitPrice; transactionDTO.DestinationCurrencySymbol = tradeBuy.ToTransaction.Pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = tradeBuy.ToTransaction.Pocket.Currency.Name; transactionDTO.TradeID = tradeBuy.TradeID; } } else if (transaction.TransactionType == TransactionType.BuyOUT) { Trade tradeBuy = await _context.Trades .Where(x => x.ToTransactionID == transaction.TransactionID) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .SingleOrDefaultAsync(cancellationToken); if (tradeBuy != null) { transactionDTO.DestinationProviderName = owner.Provider.Name; transactionDTO.DestinationWalletName = tradeBuy.FromTransaction.Pocket.Wallet.Name; transactionDTO.UnitPrice = tradeBuy.FromTransaction.Amount / transactionDTO.Amount; transactionDTO.DestinationCurrencySymbol = tradeBuy.FromTransaction.Pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = tradeBuy.FromTransaction.Pocket.Currency.Name; transactionDTO.TradeID = tradeBuy.TradeID; } } else if (transaction.TransactionType == TransactionType.SellIN) { Trade tradeSell = await _context.Trades .Where(x => x.ToTransactionID == transaction.TransactionID) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .SingleOrDefaultAsync(cancellationToken); if (tradeSell != null) { transactionDTO.DestinationProviderName = owner.Provider.Name; transactionDTO.DestinationWalletName = tradeSell.FromTransaction.Pocket.Wallet.Name; transactionDTO.UnitPrice = Math.Abs(tradeSell.FromTransaction.Amount / transactionDTO.Amount); transactionDTO.DestinationCurrencySymbol = tradeSell.FromTransaction.Pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = tradeSell.FromTransaction.Pocket.Currency.Name; transactionDTO.TradeID = tradeSell.TradeID; } } else if (transaction.TransactionType == TransactionType.SellOUT) { Trade tradeSell = await _context.Trades .Where(x => x.FromTransactionID == transaction.TransactionID) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Wallet) .SingleOrDefaultAsync(cancellationToken); if (tradeSell != null) { transactionDTO.DestinationProviderName = owner.Provider.Name; transactionDTO.DestinationWalletName = tradeSell.ToTransaction.Pocket.Wallet.Name; transactionDTO.UnitPrice = tradeSell.UnitPrice; transactionDTO.DestinationCurrencySymbol = tradeSell.ToTransaction.Pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = tradeSell.ToTransaction.Pocket.Currency.Name; transactionDTO.TradeID = tradeSell.TradeID; } } else if (transaction.TransactionType == TransactionType.SyncBalanceImport || transaction.TransactionType == TransactionType.SyncTransactionIN || transaction.TransactionType == TransactionType.SyncTransactionOUT) { transactionDTO.SourceProviderName = wallet.Name; transactionDTO.DestinationProviderName = transaction.PairWalletName; transactionDTO.DestinationWalletName = transaction.PairWalletName; transactionDTO.DestinationCurrencySymbol = pocket.Currency.Symbol; transactionDTO.DestinationCurrencyName = pocket.Currency.Name; } transactions.Add(transactionDTO); } } catch (Exception exception) { result.IsSuccessful = false; result.ErrorMessage = exception.Message; } } } } } result.IsSuccessful = true; result.Transactions = transactions.OrderByDescending(x => x.TransactionDateTime).ToList(); return(result); }
public async Task <GetWalletResponse> Handle(GetWalletRequest query, CancellationToken cancellationToken) { Wallet wallet = await _context.Wallets .Where(x => x.WalletID == query.WalletID) .Include(a => a.Blockchain) .Include(a => a.Pockets).ThenInclude(b => b.Currency) .Include(a => a.Pockets).ThenInclude(b => b.Transactions) .Include(a => a.Owner).ThenInclude(b => b.Provider) .SingleOrDefaultAsync(cancellationToken); if (wallet == null) { throw new NotFoundException(nameof(Wallet), query.WalletID); } var result = new GetWalletResponse { WalletID = wallet.WalletID, OwnerID = wallet.OwnerID, BlockchainID = wallet.BlockchainID, Name = wallet.Name, Address = wallet.Address, ProviderType = wallet.ProviderType, IsSynchronized = wallet.IsSynchronized, BlockchainName = wallet.Blockchain.Name, OwnerProviderName = wallet.Owner.Provider.Name }; #region Process Main Pocket var mainPocket = wallet.Pockets.Single(x => x.IsMain); PocketDTO mainPocketDTO = new PocketDTO { PocketID = mainPocket.PocketID, WalletID = mainPocket.WalletID, CurrencyID = mainPocket.CurrencyID, CurrencyType = mainPocket.CurrencyType, Address = mainPocket.Address, Balance = mainPocket.Transactions.Sum(x => x.Amount), CurrencySymbol = mainPocket.Currency.Symbol, CurrencyName = mainPocket.Currency.Name, Transactions = new List <TransactionDTO>() }; result.MainPocket = mainPocketDTO; foreach (var transaction in mainPocket.Transactions) { if (transaction.TransactionType != TransactionType.BuyOUTNonWithholding && transaction.TransactionType != TransactionType.SellINNonWithholding) { TransactionDTO transactionDTO = new TransactionDTO { TransactionID = transaction.TransactionID, PocketID = transaction.PocketID, TransactionHash = transaction.TransactionHash, PairWalletName = transaction.PairWalletName, PairWalletAddress = transaction.PairWalletAddress, Amount = transaction.Amount, UnitPriceInUSD = transaction.UnitPriceInUSD, TransactionType = transaction.TransactionType, TransactionDateTime = transaction.TransactionDateTime, TransactionTypeDisplayText = transaction.TransactionTypeDisplayText, TradeID = null, InternalTransferID = null }; if (transaction.TransactionType == TransactionType.InternalTransferOUT) { InternalTransfer internalTransfer = await _context.InternalTransfers .Where(x => x.FromTransactionID == transaction.TransactionID) .SingleOrDefaultAsync(cancellationToken); if (internalTransfer != null) { transactionDTO.InternalTransferID = internalTransfer.InternalTransferID; } } else if (transaction.TransactionType == TransactionType.InternalTransferIN) { InternalTransfer internalTransfer = await _context.InternalTransfers .Where(x => x.ToTransactionID == transaction.TransactionID) .SingleOrDefaultAsync(cancellationToken); if (internalTransfer != null) { transactionDTO.InternalTransferID = internalTransfer.InternalTransferID; } } else if (transaction.TransactionType == TransactionType.BuyIN) { Trade tradeBuy = await _context.Trades .Where(x => x.FromTransactionID == transaction.TransactionID) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .SingleOrDefaultAsync(cancellationToken); if (tradeBuy != null) { transactionDTO.TradeID = tradeBuy.TradeID; } } else if (transaction.TransactionType == TransactionType.BuyOUT) { Trade tradeBuy = await _context.Trades .Where(x => x.ToTransactionID == transaction.TransactionID) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .SingleOrDefaultAsync(cancellationToken); if (tradeBuy != null) { transactionDTO.TradeID = tradeBuy.TradeID; } } else if (transaction.TransactionType == TransactionType.SellOUT) { Trade tradeSell = await _context.Trades .Where(x => x.FromTransactionID == transaction.TransactionID) .Include(a => a.ToTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .SingleOrDefaultAsync(cancellationToken); if (tradeSell != null) { transactionDTO.TradeID = tradeSell.TradeID; } } else if (transaction.TransactionType == TransactionType.SellIN) { Trade tradeSell = await _context.Trades .Where(x => x.ToTransactionID == transaction.TransactionID) .Include(a => a.FromTransaction) .ThenInclude(b => b.Pocket) .ThenInclude(c => c.Currency) .SingleOrDefaultAsync(cancellationToken); if (tradeSell != null) { transactionDTO.TradeID = tradeSell.TradeID; } } mainPocketDTO.Transactions.Add(transactionDTO); } } #endregion #region Process Token Pockets foreach (Pocket pocket in wallet.Pockets.Where(x => !x.IsMain)) { PocketDTO tokenPocketDTO = new PocketDTO { PocketID = pocket.PocketID, WalletID = pocket.WalletID, CurrencyID = pocket.CurrencyID, CurrencyType = pocket.CurrencyType, Address = pocket.Address, Balance = pocket.Transactions.Sum(x => x.Amount), CurrencySymbol = pocket.Currency.Symbol, CurrencyName = pocket.Currency.Name }; foreach (Transaction transaction in pocket.Transactions) { tokenPocketDTO.Transactions.Add(new TransactionDTO { TransactionID = transaction.TransactionID, PocketID = transaction.PocketID, TransactionHash = transaction.TransactionHash, PairWalletName = transaction.PairWalletName, PairWalletAddress = transaction.PairWalletAddress, Amount = transaction.Amount, UnitPriceInUSD = transaction.UnitPriceInUSD, TransactionType = transaction.TransactionType, TransactionDateTime = transaction.TransactionDateTime, TransactionTypeDisplayText = transaction.TransactionTypeDisplayText, TradeID = null, InternalTransferID = null }); } result.TokenPockets.Add(tokenPocketDTO); } ; #endregion result.IsSuccessful = true; return(result); }