Files
Stockinfo/StockInfo/frmSelling.cs

100 lines
3.3 KiB
C#

using DataDomain;
using Helpers;
using StockDAL.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StockInfo
{
public partial class frmSelling : Form
{
private readonly IStockRepository _stockRepository;
private List<StockMember> remainingStocks = new ();
public StockMember stkMemSelected { get; set; } = null;
public frmSelling(IStockRepository stockRepository )
{
InitializeComponent();
_stockRepository = stockRepository;
}
private void frmSelling_Load(object sender, EventArgs e)
{
remainingStocks = _stockRepository.GetAllRemainingStocks().ToList();
foreach(var stock in remainingStocks)
{
var lvRow = lvSellCandidates.Items.Add(stock.StockId);
lvRow.Tag = stock.Id;
lvRow.SubItems.Add(stock.BuyDate.ToShortDateString());
lvRow.SubItems.Add(stock.BuyValue.ToString());
lvRow.SubItems.Add(stock.ActAmount.ToString());
lvRow.SubItems.Add(stock.ActValue.ToString());
lvRow.SubItems.Add((stock.ActValue * stock.ActAmount).ToString());
}
}
private void SelectStock(object tag)
{
//Debug.WriteLine($"selected item {(int)tag}");
foreach(var remStk in remainingStocks)
{
if(remStk.Id == (int)tag)
{
stkMemSelected = remStk;
break;
}
}
EditStockForSelling(stkMemSelected);
}
private void EditStockForSelling(StockMember stkMemSelected)
{
txtId.Text = stkMemSelected.Id.ToString();
txtStockId.Text = stkMemSelected.StockId;
txtBuyDate.Text = stkMemSelected.BuyDate.ToShortDateString();
txtBuyNumber.Text = stkMemSelected.PostAmount.ToString();
txtBuyPrice.Text = stkMemSelected.BuyValue.ToString();
txtBuyValue.Text = (stkMemSelected.BuyValue * stkMemSelected.PostAmount).ToString();
txtSoldDate.Text = DateTime.Today.ToShortDateString();
txtSoldPrice.Text = stkMemSelected.ActValue.ToString();
txtSoldAmount.Text = stkMemSelected.ActAmount.ToString();
}
private void lvSellCandidates_MouseUp(object sender, MouseEventArgs e)
{
var selRows = lvSellCandidates.SelectedItems;
SelectStock(selRows[0].Tag);
}
private void txtSoldPrice_TextChanged(object sender, EventArgs e)
{
CalcNumberAndValue();
}
private void CalcNumberAndValue()
{
if (txtSoldPrice.Text.IsNumeric() && txtSoldAmount.Text.IsNumeric())
{
txtSellValue.Text = (decimal.Parse(txtSoldPrice.Text) * long.Parse(txtSoldAmount.Text)).ToString();
txtRemainingNo.Text = (stkMemSelected.PostAmount - long.Parse(txtSoldAmount.Text)).ToString();
}
}
private void txtSoldAmount_TextChanged(object sender, EventArgs e)
{
CalcNumberAndValue();
}
}
}