Removed Code and BaseCode from Products
Management form almost fixed. Error testing now.
This commit is contained in:
parent
b1a9d2daae
commit
0456135497
Tanshu.Accounts.Contracts/Data Contracts
Tanshu.Accounts.PointOfSale
Management
Products
Tanshu.Accounts.Repository
@ -9,7 +9,6 @@ namespace Tanshu.Accounts.Entities
|
||||
public class Product
|
||||
{
|
||||
public virtual Guid ProductID { get; set; }
|
||||
public virtual int Code { get; set; }
|
||||
public virtual string Name { get; set; }
|
||||
public virtual string Units { get; set; }
|
||||
public virtual ProductGroup ProductGroup { get; set; }
|
||||
@ -22,7 +21,6 @@ namespace Tanshu.Accounts.Entities
|
||||
public virtual bool IsActive { get; set; }
|
||||
public virtual bool IsNotAvailable { get; set; }
|
||||
public virtual int SortOrder { get; set; }
|
||||
public virtual int BaseCode { get; set; }
|
||||
public virtual decimal Quantity { get; set; }
|
||||
public virtual IList<Inventory> Inventories { get; set; }
|
||||
|
||||
@ -36,7 +34,6 @@ namespace Tanshu.Accounts.Entities
|
||||
Schema("dbo");
|
||||
Lazy(true);
|
||||
Id(x => x.ProductID, map => map.Generator(Generators.GuidComb));
|
||||
Property(x => x.Code);
|
||||
Property(x => x.Name, map => { map.NotNullable(true); map.UniqueKey("UQ_NameUnits"); });
|
||||
Property(x => x.Units, map => { map.NotNullable(true); map.UniqueKey("UQ_NameUnits"); });
|
||||
Property(x => x.ServiceCharge, map => map.NotNullable(true));
|
||||
@ -46,7 +43,6 @@ namespace Tanshu.Accounts.Entities
|
||||
Property(x => x.IsActive, map => map.NotNullable(true));
|
||||
Property(x => x.IsNotAvailable, map => map.NotNullable(true));
|
||||
Property(x => x.SortOrder, map => map.NotNullable(true));
|
||||
Property(x => x.BaseCode, map => map.NotNullable(true));
|
||||
Property(x => x.Quantity, map => map.NotNullable(true));
|
||||
|
||||
ManyToOne(x => x.ProductGroup, map => { map.Column("ProductGroupID"); map.Cascade(Cascade.None); });
|
||||
|
@ -9,7 +9,7 @@ namespace Tanshu.Accounts.Entities
|
||||
{
|
||||
public class Voucher
|
||||
{
|
||||
protected Voucher()
|
||||
public Voucher()
|
||||
{
|
||||
Kots = new List<Kot>();
|
||||
Settlements = new List<VoucherSettlement>();
|
||||
|
@ -4,13 +4,17 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Windows.Forms;
|
||||
using Tanshu.Accounts.Repository;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class ManagementForm : Form
|
||||
{
|
||||
Stopwatch _stopwatch;
|
||||
Stopwatch _totalStopwatch;
|
||||
public ManagementForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -22,12 +26,21 @@ namespace Tanshu.Accounts.Management
|
||||
dtpFinish.Value = DateTime.Today;
|
||||
}
|
||||
|
||||
#region Go
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
txtStatus.Text = "";
|
||||
btnGo.Enabled = false;
|
||||
_stopwatch = Stopwatch.StartNew();
|
||||
_totalStopwatch = Stopwatch.StartNew();
|
||||
bwGo.RunWorkerAsync();
|
||||
}
|
||||
private void DoGo(BackgroundWorker worker)
|
||||
{
|
||||
var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
var beer = Path.Combine(currentDirectory, "beer.csv");
|
||||
var sale = Path.Combine(currentDirectory, "sale.csv");
|
||||
var credit = Path.Combine(currentDirectory, "credit.csv");
|
||||
var beer = Path.Combine(currentDirectory, "beer.json");
|
||||
var sale = Path.Combine(currentDirectory, "sale.json");
|
||||
var credit = Path.Combine(currentDirectory, "credit.json");
|
||||
var error = string.Empty;
|
||||
if (!File.Exists(beer))
|
||||
error += "Beer not found! ";
|
||||
@ -49,246 +62,138 @@ namespace Tanshu.Accounts.Management
|
||||
var info = string.Empty;
|
||||
foreach (var item in saleDates)
|
||||
{
|
||||
var startDate = item.StartDate;
|
||||
var finishDate = item.FinishDate;
|
||||
Debug.WriteLine("Starting on " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString());
|
||||
ProcessData(true, startDate, finishDate, item.Sale15 + item.Sale25);
|
||||
Debug.WriteLine("Starting beer");
|
||||
ProcessBeer(beerDates, startDate, finishDate);
|
||||
Debug.WriteLine("Starting sale");
|
||||
info += ProcessSale(item, creditDates);
|
||||
Debug.WriteLine("Starting cleanup");
|
||||
ProcessData(false, startDate, finishDate, item.Sale15 + item.Sale25);
|
||||
Debug.WriteLine("Cleanup done");
|
||||
}
|
||||
MessageBox.Show(info);
|
||||
btnGo.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
#region Get Data
|
||||
protected class SaleData
|
||||
{
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime FinishDate { get; set; }
|
||||
public decimal Sale125 { get; set; }
|
||||
public decimal Sale25 { get; set; }
|
||||
public decimal Sale15 { get; set; }
|
||||
public decimal Sale0 { get; set; }
|
||||
}
|
||||
private IEnumerable<SaleData> GetSale(string sale)
|
||||
{
|
||||
IFormatProvider culture = new CultureInfo("en-US", true);
|
||||
var startDate = dtpStart.Value.Date;
|
||||
var finishDate = dtpFinish.Value.Date;
|
||||
|
||||
var dates = new List<SaleData>();
|
||||
using (var reader = new StreamReader(File.OpenRead(sale)))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
var line = reader.ReadLine();
|
||||
var values = line.Split(',');
|
||||
if (values.Length != 6)
|
||||
var startDate = item.SDate.Value;
|
||||
var finishDate = item.FDate.Value;
|
||||
var sDate = startDate.AddHours(7);
|
||||
var fDate = finishDate.AddDays(1).AddHours(7);
|
||||
Console.WriteLine("Starting on " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString());
|
||||
int count = 0;
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
MessageBox.Show("Error reading line: " + line);
|
||||
continue;
|
||||
worker.ReportProgress(++count, "Deleting Voids");
|
||||
bi.DeleteVoid(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Deleting Staff");
|
||||
bi.MoveStaffToNc(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Clearing Modifiers");
|
||||
bi.ClearModifiers(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Combining Kots");
|
||||
bi.CombineKots(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Removing Blank Kots");
|
||||
bi.RemoveBlankKots(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Starting beer");
|
||||
foreach (var beerDate in beerDates)
|
||||
{
|
||||
if (beerDate.bDate < startDate || beerDate.bDate > finishDate)
|
||||
continue;
|
||||
var stDt = beerDate.bDate.Value.AddHours(7);
|
||||
var fiDt = stDt.AddDays(1);
|
||||
worker.ReportProgress(++count, "Setting beer for " + stDt.ToShortDateString());
|
||||
bi.SetBeer(stDt, fiDt, beerDate.Quantity);
|
||||
}
|
||||
bi.MoveToNc(sDate, fDate, item.Sale.Where(x => x.IsLiq).Sum(x => x.Amount) / .75M); // Do not put all in NC this will allow for about 25% discount on the rest of non nc liqour
|
||||
worker.ReportProgress(++count, "Starting sale");
|
||||
foreach (var saleItem in item.Sale)
|
||||
{
|
||||
worker.ReportProgress(++count, "Setting sale for " + saleItem.Rate.ToString());
|
||||
if (saleItem.IsLiq)
|
||||
bi.SetSaleDiscount(saleItem.Rate, saleItem.Amount, sDate, fDate);
|
||||
else
|
||||
bi.SetSaleQuantity(saleItem.Rate, saleItem.Amount, sDate, fDate);
|
||||
}
|
||||
worker.ReportProgress(++count, "Removing Blank Kots");
|
||||
bi.RemoveBlankKots(sDate, fDate);
|
||||
worker.ReportProgress(++count, "Starting cleanup");
|
||||
bi.SetPayments(sDate, fDate);
|
||||
bi.SaveChanges();
|
||||
}
|
||||
DateTime dateStart;
|
||||
DateTime dateFinish;
|
||||
if (!DateTime.TryParseExact(values[0], "dd-MM-yyyy", culture, DateTimeStyles.NoCurrentDateDefault, out dateStart))
|
||||
continue;
|
||||
if (!DateTime.TryParseExact(values[1], "dd-MM-yyyy", culture, DateTimeStyles.NoCurrentDateDefault, out dateFinish))
|
||||
continue;
|
||||
if (dateFinish.Date < startDate.Date || dateStart.Date > finishDate.Date)
|
||||
continue;
|
||||
dates.Add(new SaleData
|
||||
{
|
||||
StartDate = dateStart,
|
||||
FinishDate = dateFinish,
|
||||
Sale125 = TryConvert(values[2]),
|
||||
Sale25 = TryConvert(values[3]),
|
||||
Sale15 = TryConvert(values[4]),
|
||||
Sale0 = TryConvert(values[5])
|
||||
});
|
||||
worker.ReportProgress(++count, "Cleanup done");
|
||||
}
|
||||
}
|
||||
return dates;
|
||||
}
|
||||
private Dictionary<DateTime, decimal> GetCredit(string credit)
|
||||
private void bwGo_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
|
||||
{
|
||||
IFormatProvider culture = new CultureInfo("en-US", true);
|
||||
var startDate = dtpStart.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinish.Value.Date.AddDays(1).AddHours(7);
|
||||
|
||||
var dates = new Dictionary<DateTime, decimal>();
|
||||
using (var reader = new StreamReader(File.OpenRead(credit)))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
var line = reader.ReadLine();
|
||||
var values = line.Split(',');
|
||||
if (values.Length != 2)
|
||||
{
|
||||
MessageBox.Show("Error reading line: " + line);
|
||||
continue;
|
||||
}
|
||||
DateTime dateOut;
|
||||
if (!DateTime.TryParseExact(values[0], "dd/MM/yyyy", culture, DateTimeStyles.NoCurrentDateDefault, out dateOut))
|
||||
continue;
|
||||
if (dateOut.Date < startDate.Date || dateOut.Date >= finishDate.Date)
|
||||
continue;
|
||||
var amount = TryConvert(values[1]);
|
||||
if (!dates.ContainsKey(dateOut))
|
||||
dates.Add(dateOut, amount);
|
||||
}
|
||||
}
|
||||
return dates;
|
||||
DoGo(sender as BackgroundWorker);
|
||||
}
|
||||
private Dictionary<DateTime, decimal> GetBeer(string beer)
|
||||
private void bwGo_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
|
||||
{
|
||||
IFormatProvider culture = new CultureInfo("en-US", true);
|
||||
var startDate = dtpStart.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinish.Value.Date.AddDays(1).AddHours(7);
|
||||
|
||||
var dates = new Dictionary<DateTime, decimal>();
|
||||
using (var reader = new StreamReader(File.OpenRead(beer)))
|
||||
{
|
||||
while (!reader.EndOfStream)
|
||||
{
|
||||
var line = reader.ReadLine();
|
||||
var values = line.Split(',');
|
||||
DateTime dateOut;
|
||||
if (!DateTime.TryParseExact(values[0], "dd-MMM-yy", culture, DateTimeStyles.NoCurrentDateDefault, out dateOut))
|
||||
continue;
|
||||
if (dateOut.Date < startDate.Date || dateOut.Date >= finishDate.Date)
|
||||
continue;
|
||||
decimal amount = 0;
|
||||
if (values.Length > 1) // Dark - Location 1, Basecode 1
|
||||
amount += TryConvert(values[1]);
|
||||
if (values.Length > 2) // Wheat - Location 2, Basecode 2
|
||||
amount += TryConvert(values[2]);
|
||||
if (values.Length > 3) // Light - Location 3, Basecode 4
|
||||
amount += TryConvert(values[3]);
|
||||
if (values.Length > 4) // Premium - Location 4, Basecode 3
|
||||
amount += TryConvert(values[4]);
|
||||
dates.Add(dateOut, amount);
|
||||
}
|
||||
}
|
||||
return dates;
|
||||
var time = (_stopwatch.ElapsedMilliseconds / 1000).ToString() + "s / " + (_totalStopwatch.ElapsedMilliseconds / 1000).ToString() + "s";
|
||||
_stopwatch.Reset();
|
||||
_stopwatch.Start();
|
||||
txtStatus.Text = (string)e.UserState + " " + time + " \r\n" + txtStatus.Text;
|
||||
}
|
||||
private void bwGo_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
|
||||
{
|
||||
txtStatus.Text += "Done !!!";
|
||||
_stopwatch.Stop();
|
||||
_totalStopwatch.Stop();
|
||||
btnGo.Enabled = true;
|
||||
}
|
||||
#endregion
|
||||
private static void ProcessData(bool opening, DateTime startIn, DateTime finishIn, decimal liqTarget)
|
||||
|
||||
#region Get Data
|
||||
private IList<SaleJson> GetSale(string sale)
|
||||
{
|
||||
var startDate = startIn.AddHours(7);
|
||||
var finishDate = finishIn.AddDays(1).AddHours(7);
|
||||
if (opening)
|
||||
var startDate = dtpStart.Value.Date;
|
||||
var finishDate = dtpFinish.Value.Date;
|
||||
var fileContents = new StreamReader(File.OpenRead(sale)).ReadToEnd();
|
||||
JavaScriptSerializer jss = new JavaScriptSerializer();
|
||||
var data = jss.Deserialize<IList<SaleJson>>(fileContents);
|
||||
IList<SaleJson> list = new List<SaleJson>();
|
||||
foreach (var item in data)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.DeleteVoid(startDate, finishDate);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.DeleteStaff(startDate, finishDate);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.ClearModifiers(startDate, finishDate);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.CombineKots(startDate, finishDate);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.RemoveBlankKots(startDate, finishDate);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.MoveNc(startDate, finishDate, liqTarget);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.SetPayments(startDate, finishDate);
|
||||
}
|
||||
if (!item.SDate.HasValue || !item.FDate.HasValue)
|
||||
continue;
|
||||
if (item.FDate.Value.Date < startDate.Date || item.SDate.Value.Date > finishDate.Date)
|
||||
continue;
|
||||
list.Add(item);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private static void ProcessBeer(Dictionary<DateTime, decimal> dates, DateTime startIn, DateTime finishIn)
|
||||
private IList<CreditJson> GetCredit(string credit)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
var startDate = dtpStart.Value.Date;
|
||||
var finishDate = dtpFinish.Value.Date;
|
||||
var fileContents = new StreamReader(File.OpenRead(credit)).ReadToEnd();
|
||||
JavaScriptSerializer jss = new JavaScriptSerializer();
|
||||
var data = jss.Deserialize<IList<CreditJson>>(fileContents);
|
||||
IList<CreditJson> list = new List<CreditJson>();
|
||||
foreach (var item in data)
|
||||
{
|
||||
var info = string.Empty;
|
||||
foreach (var item in dates)
|
||||
{
|
||||
if (item.Key < startIn || item.Key > finishIn)
|
||||
continue;
|
||||
var stDt = item.Key.AddHours(7);
|
||||
var fiDt = stDt.AddDays(1);
|
||||
var original = bi.GetQuantity(stDt, fiDt);
|
||||
if (original < item.Value)
|
||||
{
|
||||
info += "Original for " + item.Key.ToString() + " is " + original.ToString() + " desired is " + item.Value.ToString() + "\r\n";
|
||||
}
|
||||
else if (original == item.Value)
|
||||
{
|
||||
info += item.Key.ToString() + " is " + original.ToString() + " matches!" + "\r\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
bi.SetQuantity(stDt, fiDt, item.Value);
|
||||
}
|
||||
}
|
||||
if (!item.CDate.HasValue)
|
||||
continue;
|
||||
if (item.CDate.Value.Date < startDate.Date || item.CDate.Value.Date > finishDate.Date)
|
||||
continue;
|
||||
list.Add(item);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private static string ProcessSale(SaleData item, Dictionary<DateTime, decimal> creditDates)
|
||||
private IList<BeerJson> GetBeer(string beer)
|
||||
{
|
||||
var info = string.Empty;
|
||||
var startDate = item.StartDate.AddHours(7);
|
||||
var finishDate = item.FinishDate.AddHours(7).AddDays(1);
|
||||
var creditInfo = creditDates.Where(x => x.Key >= item.StartDate && x.Key <= item.FinishDate).ToDictionary(x => x.Key, x => x.Value);
|
||||
|
||||
info += "From " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString() + "\r\n";
|
||||
|
||||
using (var bi = new ManagementBI())
|
||||
var startDate = dtpStart.Value.Date;
|
||||
var finishDate = dtpFinish.Value.Date;
|
||||
var fileContents = new StreamReader(File.OpenRead(beer)).ReadToEnd();
|
||||
JavaScriptSerializer jss = new JavaScriptSerializer();
|
||||
var data = jss.Deserialize<IList<BeerJson>>(fileContents);
|
||||
IList<BeerJson> list = new List<BeerJson>();
|
||||
foreach (var item in data)
|
||||
{
|
||||
info += "25%\t" + bi.GetFood(.26250M, startDate, finishDate) + "\t";
|
||||
var ret = bi.SetLiq(.26250M, item.Sale25, startDate, finishDate);
|
||||
info += ret + "\t" + item.Sale25.ToString() + "\r\n";
|
||||
if (!item.bDate.HasValue)
|
||||
continue;
|
||||
if (item.bDate.Value.Date < startDate.Date || item.bDate.Value.Date > finishDate.Date)
|
||||
continue;
|
||||
list.Add(item);
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
info += "15%\t" + bi.GetFood(.1575M, startDate, finishDate) + "\t";
|
||||
var ret = bi.SetLiq(.1575M, item.Sale15, startDate, finishDate);
|
||||
info += ret + "\t" + item.Sale15.ToString() + "\r\n";
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
info += "12.5%\t" + bi.GetFood(.13125M, startDate, finishDate) + "\t";
|
||||
var ret = bi.SetFood(.13125M, item.Sale125, startDate, finishDate);
|
||||
info += ret + "\t" + item.Sale125.ToString() + "\r\n";
|
||||
}
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
info += "0%\t" + bi.GetFood(0M, startDate, finishDate) + "\t";
|
||||
var ret = bi.SetFood(0M, item.Sale0, startDate, finishDate);
|
||||
info += ret + "\t" + item.Sale0.ToString() + "\r\n";
|
||||
}
|
||||
return info;
|
||||
return list;
|
||||
}
|
||||
|
||||
private static decimal TryConvert(string amount)
|
||||
{
|
||||
decimal result = 0;
|
||||
decimal.TryParse(amount, out result);
|
||||
return result;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Tally
|
||||
private void btnTally_Click(object sender, EventArgs e)
|
||||
{
|
||||
var startDate = dtpStart.Value.Date;
|
||||
@ -331,49 +236,27 @@ namespace Tanshu.Accounts.Management
|
||||
var cash = 0M;
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
var sale = Math.Round(bi.GetFood(.26250M, currentStart, currentFinish));
|
||||
var vat = 0M;
|
||||
if (sale != 0)
|
||||
var saleAndVat = bi.GetSaleAndVat(currentStart, currentFinish);
|
||||
foreach (var item in saleAndVat)
|
||||
{
|
||||
cash += sale;
|
||||
voucher += GetLedger("Sale @ 25 %", sale.ToString("#0.00"));
|
||||
vat = Math.Round(bi.GetVat(.26250M, currentStart, currentFinish));
|
||||
cash += vat;
|
||||
voucher += GetLedger("Output Vat @ 25%", vat.ToString("#0.00"));
|
||||
if (item.Net == 0)
|
||||
throw new ArgumentException();
|
||||
cash += Math.Round(item.Net);
|
||||
var rate = item.Rate * 100 / 1.05M;
|
||||
voucher += GetLedger(string.Format("Sale @ {0:#} %", rate), item.Net.ToString("#0.00"));
|
||||
var vat = Math.Round(item.Vat);
|
||||
if (vat != 0)
|
||||
{
|
||||
cash += vat;
|
||||
voucher += GetLedger(string.Format("Output Vat @ {0:#}%", rate), vat.ToString("#0.00"));
|
||||
}
|
||||
}
|
||||
|
||||
sale = Math.Round(bi.GetFood(.1575M, currentStart, currentFinish));
|
||||
if (sale != 0)
|
||||
var st = Math.Round(bi.GetServiceTax(currentStart, currentFinish));
|
||||
if (st != 0)
|
||||
{
|
||||
cash += sale;
|
||||
voucher += GetLedger("Sale @ 15%", sale.ToString("#0.00"));
|
||||
vat = Math.Round(bi.GetVat(.1575M, currentStart, currentFinish));
|
||||
cash += vat;
|
||||
voucher += GetLedger("Output Vat @ 15%", vat.ToString("#0.00"));
|
||||
}
|
||||
|
||||
sale = Math.Round(bi.GetFood(.13125M, currentStart, currentFinish));
|
||||
if (sale != 0)
|
||||
{
|
||||
cash += sale;
|
||||
voucher += GetLedger("Sale 12.5%", sale.ToString("#0.00"));
|
||||
vat = Math.Round(bi.GetVat(.13125M, currentStart, currentFinish));
|
||||
cash += vat;
|
||||
voucher += GetLedger("Output Vat 12.5%", vat.ToString("#0.00"));
|
||||
}
|
||||
|
||||
sale = Math.Round(bi.GetFood(0M, currentStart, currentFinish));
|
||||
if (sale != 0)
|
||||
{
|
||||
cash += sale;
|
||||
voucher += GetLedger("Sale Tax Free", sale.ToString("#0.00"));
|
||||
}
|
||||
|
||||
vat = Math.Round(bi.GetServiceTax(currentStart, currentFinish));
|
||||
if (vat != 0)
|
||||
{
|
||||
cash += vat;
|
||||
voucher += GetLedger("Central Service Tax@3.708%", vat.ToString("#0.00"));
|
||||
cash += st;
|
||||
voucher += GetLedger("Central Service Tax", st.ToString("#0.00"));
|
||||
}
|
||||
|
||||
if (cash != 0)
|
||||
@ -488,51 +371,87 @@ namespace Tanshu.Accounts.Management
|
||||
#endregion
|
||||
return string.Format(template, ledgername, isDeemedPositive, isPartyLedger, amount);
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void btnFinalSanction_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
bi.FinalSanction(dtpStart.Value.Date.AddHours(7), dtpFinish.Value.Date.AddDays(1).AddHours(7));
|
||||
bi.UpdateBillID(dtpStart.Value.Date.AddHours(7), dtpFinish.Value.Date.AddDays(1).AddHours(7));
|
||||
bi.SaveChanges();
|
||||
}
|
||||
}
|
||||
|
||||
#region Excel
|
||||
private void btnExcel_Click(object sender, EventArgs e)
|
||||
{
|
||||
btnExcel.Enabled = false;
|
||||
var startDate = dtpStart.Value.Date;
|
||||
var finishDate = dtpFinish.Value.Date;
|
||||
var sheet = "Date\t Bill Start\t Bill Final\t Sale 0%\t Sale 12.5%\t Sale 15%\t Sale 25%\t Vat 12.5%\t Vat 15%\t Vat 25%\t Service Tax\n";
|
||||
|
||||
for (var date = startDate; date <= finishDate; date = date.AddDays(1))
|
||||
{
|
||||
sheet += GetExcel(date);
|
||||
}
|
||||
var sheet = GetExcel(startDate, finishDate);
|
||||
Clipboard.SetText(sheet, TextDataFormat.Text);
|
||||
btnExcel.Enabled = true;
|
||||
}
|
||||
private static string GetExcel(DateTime date)
|
||||
private static string GetExcel(DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
var info = new List<ExcelInfo>();
|
||||
var rates = new List<decimal>();
|
||||
using (var bi = new ManagementBI())
|
||||
{
|
||||
var currentStart = date.AddHours(7);
|
||||
var currentFinish = date.AddDays(1).AddHours(7);
|
||||
var cash = bi.GetFirstBill(date);
|
||||
if (cash == "")
|
||||
return "";
|
||||
cash = string.Format("{0:dd-MMM-yyyy}\t'{1}\t'{2}\t", date, cash, bi.GetLastBill(date));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(0M, currentStart, currentFinish)));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.13125M, currentStart, currentFinish)));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.1575M, currentStart, currentFinish)));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.2625M, currentStart, currentFinish)));
|
||||
for (var date = startDate; date <= finishDate; date = date.AddDays(1))
|
||||
{
|
||||
var currentStart = date.AddHours(7);
|
||||
var currentFinish = date.AddDays(1).AddHours(7);
|
||||
var bills = bi.GetMinMaxBills(currentStart, currentFinish);
|
||||
if (bills == null)
|
||||
continue;
|
||||
var saleList = bi.GetSaleAndVat(currentStart, currentFinish);
|
||||
var serviceTax = bi.GetServiceTax(currentStart, currentFinish);
|
||||
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetVat(.13125M, currentStart, currentFinish)));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetVat(.1575M, currentStart, currentFinish)));
|
||||
cash += string.Format("{0:#0}\t", Math.Round(bi.GetVat(.2625M, currentStart, currentFinish)));
|
||||
var ei = new ExcelInfo()
|
||||
{
|
||||
Date = date,
|
||||
StartBill = bi.FullBillID(bills.StartBill, Tanshu.Accounts.Entities.VoucherType.Regular),
|
||||
FinishBill = bi.FullBillID(bills.FinishBill, Tanshu.Accounts.Entities.VoucherType.Regular),
|
||||
SaleAndVat = new Dictionary<decimal, SaleInfo>(),
|
||||
ServiceTax = serviceTax
|
||||
};
|
||||
foreach (var item in saleList)
|
||||
{
|
||||
if (!rates.Contains(item.Rate))
|
||||
rates.Add(item.Rate);
|
||||
ei.SaleAndVat.Add(item.Rate, item);
|
||||
}
|
||||
info.Add(ei);
|
||||
}
|
||||
|
||||
cash += string.Format("{0:#0}\n", Math.Round(bi.GetServiceTax(currentStart, currentFinish)));
|
||||
return cash;
|
||||
rates.Sort();
|
||||
|
||||
var sheet = "Date\tBill Start\tBill Final\t";
|
||||
|
||||
foreach (var item in rates)
|
||||
{
|
||||
sheet += string.Format("Sale {0:#0.00}%\tVat {0:#0.00}%\t", item * 100);
|
||||
}
|
||||
sheet += "Service Tax\n";
|
||||
|
||||
foreach (var item in info)
|
||||
{
|
||||
sheet += string.Format("{0:dd-MMM-yyyy}\t'{1}\t'{2}\t", item.Date, item.StartBill, item.FinishBill);
|
||||
foreach (var rate in rates)
|
||||
{
|
||||
if (item.SaleAndVat.ContainsKey(rate))
|
||||
sheet += string.Format("{0:#0}\t{1:#0}\t", Math.Round(item.SaleAndVat[rate].Net), Math.Round(item.SaleAndVat[rate].Vat));
|
||||
else
|
||||
sheet += "0\t0\t";
|
||||
}
|
||||
sheet += string.Format("{0:#0}\n", Math.Round(item.ServiceTax));
|
||||
|
||||
}
|
||||
return sheet;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,8 @@
|
||||
this.btnTally = new System.Windows.Forms.Button();
|
||||
this.btnFinalSanction = new System.Windows.Forms.Button();
|
||||
this.btnExcel = new System.Windows.Forms.Button();
|
||||
this.bwGo = new System.ComponentModel.BackgroundWorker();
|
||||
this.txtStatus = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpFinish
|
||||
@ -66,10 +68,9 @@
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Enabled = false;
|
||||
this.btnGo.Location = new System.Drawing.Point(12, 207);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(150, 23);
|
||||
this.btnGo.Size = new System.Drawing.Size(113, 23);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Go";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
@ -77,9 +78,9 @@
|
||||
//
|
||||
// btnTally
|
||||
//
|
||||
this.btnTally.Location = new System.Drawing.Point(168, 207);
|
||||
this.btnTally.Location = new System.Drawing.Point(145, 207);
|
||||
this.btnTally.Name = "btnTally";
|
||||
this.btnTally.Size = new System.Drawing.Size(150, 23);
|
||||
this.btnTally.Size = new System.Drawing.Size(113, 23);
|
||||
this.btnTally.TabIndex = 25;
|
||||
this.btnTally.Text = "Tally";
|
||||
this.btnTally.UseVisualStyleBackColor = true;
|
||||
@ -89,7 +90,7 @@
|
||||
//
|
||||
this.btnFinalSanction.Location = new System.Drawing.Point(12, 178);
|
||||
this.btnFinalSanction.Name = "btnFinalSanction";
|
||||
this.btnFinalSanction.Size = new System.Drawing.Size(150, 23);
|
||||
this.btnFinalSanction.Size = new System.Drawing.Size(113, 23);
|
||||
this.btnFinalSanction.TabIndex = 26;
|
||||
this.btnFinalSanction.Text = "Final Sanction";
|
||||
this.btnFinalSanction.UseVisualStyleBackColor = true;
|
||||
@ -97,19 +98,38 @@
|
||||
//
|
||||
// btnExcel
|
||||
//
|
||||
this.btnExcel.Location = new System.Drawing.Point(168, 178);
|
||||
this.btnExcel.Location = new System.Drawing.Point(145, 178);
|
||||
this.btnExcel.Name = "btnExcel";
|
||||
this.btnExcel.Size = new System.Drawing.Size(150, 23);
|
||||
this.btnExcel.Size = new System.Drawing.Size(113, 23);
|
||||
this.btnExcel.TabIndex = 27;
|
||||
this.btnExcel.Text = "Excel";
|
||||
this.btnExcel.UseVisualStyleBackColor = true;
|
||||
this.btnExcel.Click += new System.EventHandler(this.btnExcel_Click);
|
||||
//
|
||||
// bwGo
|
||||
//
|
||||
this.bwGo.WorkerReportsProgress = true;
|
||||
this.bwGo.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bwGo_DoWork);
|
||||
this.bwGo.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.bwGo_RunWorkerCompleted);
|
||||
this.bwGo.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.bwGo_ProgressChanged);
|
||||
//
|
||||
// txtStatus
|
||||
//
|
||||
this.txtStatus.AcceptsReturn = true;
|
||||
this.txtStatus.Location = new System.Drawing.Point(12, 38);
|
||||
this.txtStatus.Multiline = true;
|
||||
this.txtStatus.Name = "txtStatus";
|
||||
this.txtStatus.ReadOnly = true;
|
||||
this.txtStatus.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txtStatus.Size = new System.Drawing.Size(246, 134);
|
||||
this.txtStatus.TabIndex = 28;
|
||||
//
|
||||
// ManagementForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(359, 242);
|
||||
this.ClientSize = new System.Drawing.Size(270, 242);
|
||||
this.Controls.Add(this.txtStatus);
|
||||
this.Controls.Add(this.btnExcel);
|
||||
this.Controls.Add(this.btnFinalSanction);
|
||||
this.Controls.Add(this.btnTally);
|
||||
@ -136,5 +156,7 @@
|
||||
private System.Windows.Forms.Button btnTally;
|
||||
private System.Windows.Forms.Button btnFinalSanction;
|
||||
private System.Windows.Forms.Button btnExcel;
|
||||
private System.ComponentModel.BackgroundWorker bwGo;
|
||||
private System.Windows.Forms.TextBox txtStatus;
|
||||
}
|
||||
}
|
@ -117,4 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="bwGo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
@ -34,9 +34,6 @@
|
||||
this.Label7 = new System.Windows.Forms.Label();
|
||||
this.bsServiceTax = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.txtProductID = new System.Windows.Forms.TextBox();
|
||||
this.txtCode = new System.Windows.Forms.TextBox();
|
||||
this.Label2 = new System.Windows.Forms.Label();
|
||||
this.txtUnits = new System.Windows.Forms.TextBox();
|
||||
this.txtName = new System.Windows.Forms.TextBox();
|
||||
@ -54,6 +51,7 @@
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.chkIsScTaxable = new System.Windows.Forms.CheckBox();
|
||||
this.chkIsNotAvailable = new System.Windows.Forms.CheckBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bsProductGroups)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bsServiceTax)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bsVat)).BeginInit();
|
||||
@ -62,7 +60,7 @@
|
||||
// Label4
|
||||
//
|
||||
this.Label4.AutoSize = true;
|
||||
this.Label4.Location = new System.Drawing.Point(19, 67);
|
||||
this.Label4.Location = new System.Drawing.Point(19, 41);
|
||||
this.Label4.Name = "Label4";
|
||||
this.Label4.Size = new System.Drawing.Size(85, 13);
|
||||
this.Label4.TabIndex = 15;
|
||||
@ -75,7 +73,7 @@
|
||||
// Label7
|
||||
//
|
||||
this.Label7.AutoSize = true;
|
||||
this.Label7.Location = new System.Drawing.Point(70, 169);
|
||||
this.Label7.Location = new System.Drawing.Point(70, 143);
|
||||
this.Label7.Name = "Label7";
|
||||
this.Label7.Size = new System.Drawing.Size(36, 13);
|
||||
this.Label7.TabIndex = 17;
|
||||
@ -88,42 +86,16 @@
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(26, 143);
|
||||
this.label5.Location = new System.Drawing.Point(26, 117);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(80, 13);
|
||||
this.label5.TabIndex = 16;
|
||||
this.label5.Text = "Service Charge";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(12, 15);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(94, 13);
|
||||
this.label3.TabIndex = 13;
|
||||
this.label3.Text = "Product ID / Code";
|
||||
//
|
||||
// txtProductID
|
||||
//
|
||||
this.txtProductID.Location = new System.Drawing.Point(112, 12);
|
||||
this.txtProductID.Name = "txtProductID";
|
||||
this.txtProductID.ReadOnly = true;
|
||||
this.txtProductID.Size = new System.Drawing.Size(189, 20);
|
||||
this.txtProductID.TabIndex = 12;
|
||||
//
|
||||
// txtCode
|
||||
//
|
||||
this.txtCode.AccessibleName = "";
|
||||
this.txtCode.Location = new System.Drawing.Point(307, 12);
|
||||
this.txtCode.Name = "txtCode";
|
||||
this.txtCode.Size = new System.Drawing.Size(96, 20);
|
||||
this.txtCode.TabIndex = 0;
|
||||
this.txtCode.WordWrap = false;
|
||||
//
|
||||
// Label2
|
||||
//
|
||||
this.Label2.AutoSize = true;
|
||||
this.Label2.Location = new System.Drawing.Point(36, 41);
|
||||
this.Label2.Location = new System.Drawing.Point(36, 15);
|
||||
this.Label2.Name = "Label2";
|
||||
this.Label2.Size = new System.Drawing.Size(70, 13);
|
||||
this.Label2.TabIndex = 14;
|
||||
@ -132,7 +104,7 @@
|
||||
// txtUnits
|
||||
//
|
||||
this.txtUnits.AccessibleName = "";
|
||||
this.txtUnits.Location = new System.Drawing.Point(307, 38);
|
||||
this.txtUnits.Location = new System.Drawing.Point(307, 12);
|
||||
this.txtUnits.Name = "txtUnits";
|
||||
this.txtUnits.Size = new System.Drawing.Size(96, 20);
|
||||
this.txtUnits.TabIndex = 2;
|
||||
@ -140,7 +112,7 @@
|
||||
// txtName
|
||||
//
|
||||
this.txtName.AccessibleName = "";
|
||||
this.txtName.Location = new System.Drawing.Point(112, 38);
|
||||
this.txtName.Location = new System.Drawing.Point(112, 12);
|
||||
this.txtName.Name = "txtName";
|
||||
this.txtName.Size = new System.Drawing.Size(189, 20);
|
||||
this.txtName.TabIndex = 1;
|
||||
@ -148,7 +120,7 @@
|
||||
// txtPrice
|
||||
//
|
||||
this.txtPrice.AccessibleName = "";
|
||||
this.txtPrice.Location = new System.Drawing.Point(112, 64);
|
||||
this.txtPrice.Location = new System.Drawing.Point(112, 38);
|
||||
this.txtPrice.Name = "txtPrice";
|
||||
this.txtPrice.Size = new System.Drawing.Size(104, 20);
|
||||
this.txtPrice.TabIndex = 3;
|
||||
@ -159,7 +131,7 @@
|
||||
this.cmbVat.DataSource = this.bsVat;
|
||||
this.cmbVat.DisplayMember = "Name";
|
||||
this.cmbVat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbVat.Location = new System.Drawing.Point(112, 114);
|
||||
this.cmbVat.Location = new System.Drawing.Point(112, 88);
|
||||
this.cmbVat.Name = "cmbVat";
|
||||
this.cmbVat.Size = new System.Drawing.Size(189, 21);
|
||||
this.cmbVat.TabIndex = 4;
|
||||
@ -172,7 +144,7 @@
|
||||
// chkIsActive
|
||||
//
|
||||
this.chkIsActive.AutoSize = true;
|
||||
this.chkIsActive.Location = new System.Drawing.Point(307, 89);
|
||||
this.chkIsActive.Location = new System.Drawing.Point(307, 66);
|
||||
this.chkIsActive.Name = "chkIsActive";
|
||||
this.chkIsActive.Size = new System.Drawing.Size(67, 17);
|
||||
this.chkIsActive.TabIndex = 7;
|
||||
@ -182,7 +154,7 @@
|
||||
// txtServiceCharge
|
||||
//
|
||||
this.txtServiceCharge.AccessibleName = "Phone 1";
|
||||
this.txtServiceCharge.Location = new System.Drawing.Point(112, 141);
|
||||
this.txtServiceCharge.Location = new System.Drawing.Point(112, 115);
|
||||
this.txtServiceCharge.Name = "txtServiceCharge";
|
||||
this.txtServiceCharge.Size = new System.Drawing.Size(189, 20);
|
||||
this.txtServiceCharge.TabIndex = 5;
|
||||
@ -190,7 +162,7 @@
|
||||
//
|
||||
// btnAddProductGroup
|
||||
//
|
||||
this.btnAddProductGroup.Location = new System.Drawing.Point(307, 167);
|
||||
this.btnAddProductGroup.Location = new System.Drawing.Point(307, 141);
|
||||
this.btnAddProductGroup.Name = "btnAddProductGroup";
|
||||
this.btnAddProductGroup.Size = new System.Drawing.Size(96, 21);
|
||||
this.btnAddProductGroup.TabIndex = 9;
|
||||
@ -203,7 +175,7 @@
|
||||
this.cmbProductGroup.DataSource = this.bsProductGroups;
|
||||
this.cmbProductGroup.DisplayMember = "Name";
|
||||
this.cmbProductGroup.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbProductGroup.Location = new System.Drawing.Point(112, 167);
|
||||
this.cmbProductGroup.Location = new System.Drawing.Point(112, 141);
|
||||
this.cmbProductGroup.Name = "cmbProductGroup";
|
||||
this.cmbProductGroup.Size = new System.Drawing.Size(189, 21);
|
||||
this.cmbProductGroup.TabIndex = 8;
|
||||
@ -211,7 +183,7 @@
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Location = new System.Drawing.Point(328, 195);
|
||||
this.btnCancel.Location = new System.Drawing.Point(328, 169);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 75);
|
||||
this.btnCancel.TabIndex = 11;
|
||||
@ -221,7 +193,7 @@
|
||||
//
|
||||
// btnOk
|
||||
//
|
||||
this.btnOk.Location = new System.Drawing.Point(247, 195);
|
||||
this.btnOk.Location = new System.Drawing.Point(247, 169);
|
||||
this.btnOk.Name = "btnOk";
|
||||
this.btnOk.Size = new System.Drawing.Size(75, 75);
|
||||
this.btnOk.TabIndex = 10;
|
||||
@ -232,7 +204,7 @@
|
||||
// txtFullPrice
|
||||
//
|
||||
this.txtFullPrice.AccessibleName = "";
|
||||
this.txtFullPrice.Location = new System.Drawing.Point(222, 64);
|
||||
this.txtFullPrice.Location = new System.Drawing.Point(222, 38);
|
||||
this.txtFullPrice.Name = "txtFullPrice";
|
||||
this.txtFullPrice.Size = new System.Drawing.Size(79, 20);
|
||||
this.txtFullPrice.TabIndex = 19;
|
||||
@ -243,7 +215,7 @@
|
||||
this.cmbServiceTax.DataSource = this.bsServiceTax;
|
||||
this.cmbServiceTax.DisplayMember = "Name";
|
||||
this.cmbServiceTax.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbServiceTax.Location = new System.Drawing.Point(112, 87);
|
||||
this.cmbServiceTax.Location = new System.Drawing.Point(112, 61);
|
||||
this.cmbServiceTax.Name = "cmbServiceTax";
|
||||
this.cmbServiceTax.Size = new System.Drawing.Size(189, 21);
|
||||
this.cmbServiceTax.TabIndex = 20;
|
||||
@ -252,16 +224,16 @@
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(19, 89);
|
||||
this.label6.Location = new System.Drawing.Point(42, 67);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(91, 13);
|
||||
this.label6.Size = new System.Drawing.Size(64, 13);
|
||||
this.label6.TabIndex = 21;
|
||||
this.label6.Text = "Service Tax / Vat";
|
||||
this.label6.Text = "Service Tax";
|
||||
//
|
||||
// chkIsScTaxable
|
||||
//
|
||||
this.chkIsScTaxable.AutoSize = true;
|
||||
this.chkIsScTaxable.Location = new System.Drawing.Point(307, 144);
|
||||
this.chkIsScTaxable.Location = new System.Drawing.Point(307, 118);
|
||||
this.chkIsScTaxable.Name = "chkIsScTaxable";
|
||||
this.chkIsScTaxable.Size = new System.Drawing.Size(91, 17);
|
||||
this.chkIsScTaxable.TabIndex = 22;
|
||||
@ -271,18 +243,28 @@
|
||||
// chkIsNotAvailable
|
||||
//
|
||||
this.chkIsNotAvailable.AutoSize = true;
|
||||
this.chkIsNotAvailable.Location = new System.Drawing.Point(307, 116);
|
||||
this.chkIsNotAvailable.Location = new System.Drawing.Point(307, 93);
|
||||
this.chkIsNotAvailable.Name = "chkIsNotAvailable";
|
||||
this.chkIsNotAvailable.Size = new System.Drawing.Size(57, 17);
|
||||
this.chkIsNotAvailable.TabIndex = 23;
|
||||
this.chkIsNotAvailable.Text = "Is N/A";
|
||||
this.chkIsNotAvailable.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(78, 94);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(28, 13);
|
||||
this.label1.TabIndex = 24;
|
||||
this.label1.Text = "VAT";
|
||||
//
|
||||
// ProductForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(415, 282);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.chkIsNotAvailable);
|
||||
this.Controls.Add(this.chkIsScTaxable);
|
||||
this.Controls.Add(this.label6);
|
||||
@ -301,9 +283,6 @@
|
||||
this.Controls.Add(this.txtUnits);
|
||||
this.Controls.Add(this.txtName);
|
||||
this.Controls.Add(this.Label2);
|
||||
this.Controls.Add(this.txtCode);
|
||||
this.Controls.Add(this.txtProductID);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.Label4);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
@ -326,9 +305,6 @@
|
||||
private System.Windows.Forms.BindingSource bsProductGroups;
|
||||
private System.Windows.Forms.BindingSource bsServiceTax;
|
||||
internal System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.TextBox txtProductID;
|
||||
internal System.Windows.Forms.TextBox txtCode;
|
||||
internal System.Windows.Forms.Label Label2;
|
||||
internal System.Windows.Forms.TextBox txtUnits;
|
||||
internal System.Windows.Forms.TextBox txtName;
|
||||
@ -346,5 +322,6 @@
|
||||
private System.Windows.Forms.CheckBox chkIsScTaxable;
|
||||
private System.Windows.Forms.BindingSource bsVat;
|
||||
private System.Windows.Forms.CheckBox chkIsNotAvailable;
|
||||
internal System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
@ -22,8 +22,6 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
Product product;
|
||||
using (var bi = new ProductBI())
|
||||
product = bi.Get(x => x.ProductID == _productID.Value);
|
||||
txtProductID.Text = _productID.Value.ToString();
|
||||
txtCode.Text = product.Code.ToString();
|
||||
txtName.Text = product.Name;
|
||||
txtUnits.Text = product.Units;
|
||||
txtPrice.Text = product.Price.ToString("#.##");
|
||||
@ -38,7 +36,6 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
}
|
||||
else
|
||||
{
|
||||
txtProductID.Text = "(Auto)";
|
||||
txtName.Focus();
|
||||
}
|
||||
}
|
||||
@ -69,29 +66,34 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
if (_productID.HasValue)
|
||||
product.ProductID = _productID.Value;
|
||||
|
||||
int code;
|
||||
if (!int.TryParse(txtCode.Text, out code))
|
||||
return null;
|
||||
if (code < 0)
|
||||
return null;
|
||||
product.Code = code;
|
||||
|
||||
if (string.IsNullOrEmpty(txtName.Text.Trim()))
|
||||
return null;
|
||||
product.Name = txtName.Text.Trim();
|
||||
//if (string.IsNullOrEmpty(txtUnits.Text.Trim()))
|
||||
// return null;
|
||||
product.Units = txtUnits.Text.Trim();
|
||||
|
||||
decimal price;
|
||||
if (!decimal.TryParse(txtPrice.Text, out price))
|
||||
return null;
|
||||
if (string.IsNullOrEmpty(txtPrice.Text.Trim()))
|
||||
{
|
||||
price = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!decimal.TryParse(txtPrice.Text.Trim(), out price))
|
||||
return null;
|
||||
}
|
||||
if (price < 0)
|
||||
return null;
|
||||
product.Price = price;
|
||||
|
||||
if (!decimal.TryParse(txtFullPrice.Text, out price))
|
||||
return null;
|
||||
if (string.IsNullOrEmpty(txtFullPrice.Text.Trim()))
|
||||
{
|
||||
price = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!decimal.TryParse(txtFullPrice.Text.Trim(), out price))
|
||||
return null;
|
||||
}
|
||||
if (price < 0 || price < product.Price)
|
||||
return null;
|
||||
product.FullPrice = price;
|
||||
@ -106,8 +108,16 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
product.ServiceTax = (Tax)cmbServiceTax.SelectedItem;
|
||||
|
||||
decimal serviceCharge;
|
||||
if (!decimal.TryParse(txtServiceCharge.Text, out serviceCharge))
|
||||
return null;
|
||||
if (string.IsNullOrEmpty(txtServiceCharge.Text.Trim()))
|
||||
{
|
||||
serviceCharge = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!decimal.TryParse(txtServiceCharge.Text.Trim(), out serviceCharge))
|
||||
return null;
|
||||
}
|
||||
|
||||
if (serviceCharge < 0 || serviceCharge > 1)
|
||||
return null;
|
||||
product.ServiceCharge = serviceCharge;
|
||||
|
@ -29,25 +29,25 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.btnAdd = new System.Windows.Forms.Button();
|
||||
this.btnEdit = new System.Windows.Forms.Button();
|
||||
this.btnExit = new System.Windows.Forms.Button();
|
||||
this.dgvProducts = new System.Windows.Forms.DataGridView();
|
||||
this.bsList = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.btnSave = new System.Windows.Forms.Button();
|
||||
this.chkIsActive = new System.Windows.Forms.CheckBox();
|
||||
this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.unitsDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.moveUp = new System.Windows.Forms.DataGridViewButtonColumn();
|
||||
this.moveDown = new System.Windows.Forms.DataGridViewButtonColumn();
|
||||
this.Vat = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ServiceTax = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Vat = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.Group = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.serviceChargeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.salePriceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.isActiveDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
||||
this.bsList = new System.Windows.Forms.BindingSource(this.components);
|
||||
this.btnSave = new System.Windows.Forms.Button();
|
||||
this.chkIsActive = new System.Windows.Forms.CheckBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.bsList)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
@ -100,8 +100,8 @@
|
||||
this.unitsDataGridViewTextBoxColumn,
|
||||
this.moveUp,
|
||||
this.moveDown,
|
||||
this.Vat,
|
||||
this.ServiceTax,
|
||||
this.Vat,
|
||||
this.Group,
|
||||
this.serviceChargeDataGridViewTextBoxColumn,
|
||||
this.salePriceDataGridViewTextBoxColumn,
|
||||
@ -120,6 +120,36 @@
|
||||
this.dgvProducts.TabIndex = 74;
|
||||
this.dgvProducts.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgvProductTypes_CellFormatting);
|
||||
//
|
||||
// bsList
|
||||
//
|
||||
this.bsList.DataSource = typeof(Tanshu.Accounts.Entities.Product);
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.AccessibleName = "Done";
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnSave.Location = new System.Drawing.Point(174, 255);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(75, 75);
|
||||
this.btnSave.TabIndex = 75;
|
||||
this.btnSave.Text = "&Save";
|
||||
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
|
||||
//
|
||||
// chkIsActive
|
||||
//
|
||||
this.chkIsActive.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.chkIsActive.AutoSize = true;
|
||||
this.chkIsActive.Checked = true;
|
||||
this.chkIsActive.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkIsActive.Location = new System.Drawing.Point(255, 285);
|
||||
this.chkIsActive.Name = "chkIsActive";
|
||||
this.chkIsActive.Size = new System.Drawing.Size(116, 17);
|
||||
this.chkIsActive.TabIndex = 76;
|
||||
this.chkIsActive.Text = "Show Active Only?";
|
||||
this.chkIsActive.ThreeState = true;
|
||||
this.chkIsActive.UseVisualStyleBackColor = true;
|
||||
this.chkIsActive.CheckStateChanged += new System.EventHandler(this.chkIsActive_CheckStateChanged);
|
||||
//
|
||||
// nameDataGridViewTextBoxColumn
|
||||
//
|
||||
this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name";
|
||||
@ -154,14 +184,6 @@
|
||||
this.moveDown.UseColumnTextForButtonValue = true;
|
||||
this.moveDown.Width = 41;
|
||||
//
|
||||
// Vat
|
||||
//
|
||||
this.Vat.DataPropertyName = "Vat";
|
||||
this.Vat.HeaderText = "Vat";
|
||||
this.Vat.Name = "Vat";
|
||||
this.Vat.ReadOnly = true;
|
||||
this.Vat.Width = 48;
|
||||
//
|
||||
// ServiceTax
|
||||
//
|
||||
this.ServiceTax.DataPropertyName = "ServiceTax";
|
||||
@ -170,6 +192,14 @@
|
||||
this.ServiceTax.ReadOnly = true;
|
||||
this.ServiceTax.Width = 86;
|
||||
//
|
||||
// Vat
|
||||
//
|
||||
this.Vat.DataPropertyName = "Vat";
|
||||
this.Vat.HeaderText = "Vat";
|
||||
this.Vat.Name = "Vat";
|
||||
this.Vat.ReadOnly = true;
|
||||
this.Vat.Width = 48;
|
||||
//
|
||||
// Group
|
||||
//
|
||||
this.Group.DataPropertyName = "ProductGroup";
|
||||
@ -181,8 +211,8 @@
|
||||
// serviceChargeDataGridViewTextBoxColumn
|
||||
//
|
||||
this.serviceChargeDataGridViewTextBoxColumn.DataPropertyName = "ServiceCharge";
|
||||
dataGridViewCellStyle7.Format = "P0";
|
||||
this.serviceChargeDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle7;
|
||||
dataGridViewCellStyle1.Format = "P0";
|
||||
this.serviceChargeDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.serviceChargeDataGridViewTextBoxColumn.HeaderText = "SC";
|
||||
this.serviceChargeDataGridViewTextBoxColumn.Name = "serviceChargeDataGridViewTextBoxColumn";
|
||||
this.serviceChargeDataGridViewTextBoxColumn.ReadOnly = true;
|
||||
@ -191,8 +221,8 @@
|
||||
// salePriceDataGridViewTextBoxColumn
|
||||
//
|
||||
this.salePriceDataGridViewTextBoxColumn.DataPropertyName = "Price";
|
||||
dataGridViewCellStyle8.Format = "N0";
|
||||
this.salePriceDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle8;
|
||||
dataGridViewCellStyle2.Format = "N0";
|
||||
this.salePriceDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.salePriceDataGridViewTextBoxColumn.HeaderText = "Price";
|
||||
this.salePriceDataGridViewTextBoxColumn.Name = "salePriceDataGridViewTextBoxColumn";
|
||||
this.salePriceDataGridViewTextBoxColumn.ReadOnly = true;
|
||||
@ -206,36 +236,6 @@
|
||||
this.isActiveDataGridViewCheckBoxColumn.ReadOnly = true;
|
||||
this.isActiveDataGridViewCheckBoxColumn.Width = 54;
|
||||
//
|
||||
// bsList
|
||||
//
|
||||
this.bsList.DataSource = typeof(Tanshu.Accounts.Entities.Product);
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.AccessibleName = "Done";
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnSave.Location = new System.Drawing.Point(174, 255);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(75, 75);
|
||||
this.btnSave.TabIndex = 75;
|
||||
this.btnSave.Text = "&Save";
|
||||
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
|
||||
//
|
||||
// chkIsActive
|
||||
//
|
||||
this.chkIsActive.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.chkIsActive.AutoSize = true;
|
||||
this.chkIsActive.Checked = true;
|
||||
this.chkIsActive.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkIsActive.Location = new System.Drawing.Point(255, 285);
|
||||
this.chkIsActive.Name = "chkIsActive";
|
||||
this.chkIsActive.Size = new System.Drawing.Size(116, 17);
|
||||
this.chkIsActive.TabIndex = 76;
|
||||
this.chkIsActive.Text = "Show Active Only?";
|
||||
this.chkIsActive.ThreeState = true;
|
||||
this.chkIsActive.UseVisualStyleBackColor = true;
|
||||
this.chkIsActive.CheckStateChanged += new System.EventHandler(this.chkIsActive_CheckStateChanged);
|
||||
//
|
||||
// ProductListForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@ -268,17 +268,17 @@
|
||||
private System.Windows.Forms.DataGridView dgvProducts;
|
||||
private System.Windows.Forms.BindingSource bsList;
|
||||
internal System.Windows.Forms.Button btnSave;
|
||||
private System.Windows.Forms.CheckBox chkIsActive;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn unitsDataGridViewTextBoxColumn;
|
||||
private System.Windows.Forms.DataGridViewButtonColumn moveUp;
|
||||
private System.Windows.Forms.DataGridViewButtonColumn moveDown;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Vat;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ServiceTax;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Vat;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn Group;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn serviceChargeDataGridViewTextBoxColumn;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn salePriceDataGridViewTextBoxColumn;
|
||||
private System.Windows.Forms.DataGridViewCheckBoxColumn isActiveDataGridViewCheckBoxColumn;
|
||||
private System.Windows.Forms.CheckBox chkIsActive;
|
||||
//private System.Windows.Forms.DataGridViewTextBoxColumn discountLimitDataGridViewTextBoxColumn;
|
||||
//private System.Windows.Forms.DataGridViewTextBoxColumn groupTypeDataGridViewTextBoxColumn;
|
||||
//private System.Windows.Forms.DataGridViewTextBoxColumn productGroupDataGridViewTextBoxColumn;
|
||||
|
@ -123,30 +123,12 @@
|
||||
<metadata name="moveDown.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Vat.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ServiceTax.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Group.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="bsList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="moveUp.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="moveDown.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Vat.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ServiceTax.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Group.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user