narsil/Tanshu.Accounts.PointOfSale/Management/QuantityForm.cs

117 lines
3.9 KiB
C#
Raw Normal View History

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);
}
}
}
}
}
}