using System; using System.Collections.Generic; using System.Globalization; using System.Windows.Forms; using Tanshu.Accounts.Repository; using Tanshu.Accounts.Contracts; namespace Tanshu.Accounts.Management { public partial class QuantityForm : Form { public QuantityForm() { InitializeComponent(); } private void ShowStatement() { } private void Sale_Analysis_Form_Load(object sender, EventArgs e) { dtpStart.Value = DateTime.Today; dtpFinish.Value = DateTime.Today; } private void btnGo_Click(object sender, EventArgs e) { int baseCode = 0; if (rbLight.Checked) { baseCode = 1; } else if (rbPremium.Checked) { baseCode = 2; } else if (rbWheat.Checked) { baseCode = 3; } else if (rbDark.Checked) { baseCode = 4; } else if (rbFestival.Checked) { baseCode = 5; } dtpStart.Value = dtpStart.Value.Date.AddHours(7); dtpFinish.Value = dtpFinish.Value.Date.AddDays(1).AddHours(7); var quantity = GetQuantity(baseCode); var newQuantity = Convert.ToDecimal(txtQuantity.Text); if (MessageBox.Show(quantity.ToString(), "Quantity of Beer", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes && quantity > newQuantity) { MessageBox.Show(SetQuantity(baseCode, newQuantity).ToString()); } } private decimal GetQuantity(int baseCode) { using (var bi = new ManagementBI()) return bi.GetQuantity(baseCode, dtpStart.Value, dtpFinish.Value); } private decimal SetQuantity(int baseCode, decimal quantity) { using (var bi = new ManagementBI()) return bi.SetQuantity(baseCode, quantity, dtpStart.Value, dtpFinish.Value); } private void btnGetClipboard_Click(object sender, EventArgs e) { //Clipboard format -- Date,BaseCode,Quantity" var fmtCsv = DataFormats.CommaSeparatedValue; // read the CSV var dataobject = Clipboard.GetDataObject(); if (dataobject == null) { MessageBox.Show(@"No Data in clipboard"); return; } var stream = (System.IO.Stream)dataobject.GetData(fmtCsv); var enc = new System.Text.UTF8Encoding(); IFormatProvider culture = new CultureInfo("en-US", true); using (var reader = new System.IO.StreamReader(stream, enc)) { using (var bi = new ManagementBI()) { string line; while ((line = reader.ReadLine()) != null) { DateTime startDate; int baseCode; decimal quantity; var data = line.Split(','); if (!DateTime.TryParseExact(data[0], "dd-MMM-yyyy", culture, DateTimeStyles.NoCurrentDateDefault, out startDate)) continue; var finishDate = startDate.AddDays(1).AddHours(7); startDate = startDate.AddHours(7); if (!int.TryParse(data[1], out baseCode)) continue; if (baseCode <=0) continue; if (!decimal.TryParse(data[2], out quantity)) continue; bi.SetQuantity(baseCode, quantity, startDate, finishDate); } } } } } }