Removed Code and BaseCode from Products

Management form almost fixed. Error testing now.
This commit is contained in:
tanshu
2014-12-03 12:43:35 +05:30
parent b1a9d2daae
commit 0456135497
10 changed files with 885 additions and 825 deletions

View File

@ -9,7 +9,6 @@ namespace Tanshu.Accounts.Entities
public class Product public class Product
{ {
public virtual Guid ProductID { get; set; } public virtual Guid ProductID { get; set; }
public virtual int Code { get; set; }
public virtual string Name { get; set; } public virtual string Name { get; set; }
public virtual string Units { get; set; } public virtual string Units { get; set; }
public virtual ProductGroup ProductGroup { 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 IsActive { get; set; }
public virtual bool IsNotAvailable { get; set; } public virtual bool IsNotAvailable { get; set; }
public virtual int SortOrder { get; set; } public virtual int SortOrder { get; set; }
public virtual int BaseCode { get; set; }
public virtual decimal Quantity { get; set; } public virtual decimal Quantity { get; set; }
public virtual IList<Inventory> Inventories { get; set; } public virtual IList<Inventory> Inventories { get; set; }
@ -36,7 +34,6 @@ namespace Tanshu.Accounts.Entities
Schema("dbo"); Schema("dbo");
Lazy(true); Lazy(true);
Id(x => x.ProductID, map => map.Generator(Generators.GuidComb)); 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.Name, map => { map.NotNullable(true); map.UniqueKey("UQ_NameUnits"); });
Property(x => x.Units, 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)); 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.IsActive, map => map.NotNullable(true));
Property(x => x.IsNotAvailable, map => map.NotNullable(true)); Property(x => x.IsNotAvailable, map => map.NotNullable(true));
Property(x => x.SortOrder, 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)); Property(x => x.Quantity, map => map.NotNullable(true));
ManyToOne(x => x.ProductGroup, map => { map.Column("ProductGroupID"); map.Cascade(Cascade.None); }); ManyToOne(x => x.ProductGroup, map => { map.Column("ProductGroupID"); map.Cascade(Cascade.None); });

View File

@ -9,7 +9,7 @@ namespace Tanshu.Accounts.Entities
{ {
public class Voucher public class Voucher
{ {
protected Voucher() public Voucher()
{ {
Kots = new List<Kot>(); Kots = new List<Kot>();
Settlements = new List<VoucherSettlement>(); Settlements = new List<VoucherSettlement>();

View File

@ -4,13 +4,17 @@ using System.Diagnostics;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Web.Script.Serialization;
using System.Windows.Forms; using System.Windows.Forms;
using Tanshu.Accounts.Repository; using Tanshu.Accounts.Repository;
using System.ComponentModel;
namespace Tanshu.Accounts.Management namespace Tanshu.Accounts.Management
{ {
public partial class ManagementForm : Form public partial class ManagementForm : Form
{ {
Stopwatch _stopwatch;
Stopwatch _totalStopwatch;
public ManagementForm() public ManagementForm()
{ {
InitializeComponent(); InitializeComponent();
@ -22,12 +26,21 @@ namespace Tanshu.Accounts.Management
dtpFinish.Value = DateTime.Today; dtpFinish.Value = DateTime.Today;
} }
#region Go
private void btnGo_Click(object sender, EventArgs e) 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 currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
var beer = Path.Combine(currentDirectory, "beer.csv"); var beer = Path.Combine(currentDirectory, "beer.json");
var sale = Path.Combine(currentDirectory, "sale.csv"); var sale = Path.Combine(currentDirectory, "sale.json");
var credit = Path.Combine(currentDirectory, "credit.csv"); var credit = Path.Combine(currentDirectory, "credit.json");
var error = string.Empty; var error = string.Empty;
if (!File.Exists(beer)) if (!File.Exists(beer))
error += "Beer not found! "; error += "Beer not found! ";
@ -49,246 +62,138 @@ namespace Tanshu.Accounts.Management
var info = string.Empty; var info = string.Empty;
foreach (var item in saleDates) foreach (var item in saleDates)
{ {
var startDate = item.StartDate; var startDate = item.SDate.Value;
var finishDate = item.FinishDate; var finishDate = item.FDate.Value;
Debug.WriteLine("Starting on " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString()); var sDate = startDate.AddHours(7);
ProcessData(true, startDate, finishDate, item.Sale15 + item.Sale25); var fDate = finishDate.AddDays(1).AddHours(7);
Debug.WriteLine("Starting beer"); Console.WriteLine("Starting on " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString());
ProcessBeer(beerDates, startDate, finishDate); int count = 0;
Debug.WriteLine("Starting sale"); using (var bi = new ManagementBI())
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)
{ {
MessageBox.Show("Error reading line: " + line); worker.ReportProgress(++count, "Deleting Voids");
continue; 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; worker.ReportProgress(++count, "Cleanup done");
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])
});
} }
} }
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); DoGo(sender as BackgroundWorker);
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;
} }
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 time = (_stopwatch.ElapsedMilliseconds / 1000).ToString() + "s / " + (_totalStopwatch.ElapsedMilliseconds / 1000).ToString() + "s";
var startDate = dtpStart.Value.Date.AddHours(7); _stopwatch.Reset();
var finishDate = dtpFinish.Value.Date.AddDays(1).AddHours(7); _stopwatch.Start();
txtStatus.Text = (string)e.UserState + " " + time + " \r\n" + txtStatus.Text;
var dates = new Dictionary<DateTime, decimal>(); }
using (var reader = new StreamReader(File.OpenRead(beer))) private void bwGo_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{ {
while (!reader.EndOfStream) txtStatus.Text += "Done !!!";
{ _stopwatch.Stop();
var line = reader.ReadLine(); _totalStopwatch.Stop();
var values = line.Split(','); btnGo.Enabled = true;
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;
} }
#endregion #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 startDate = dtpStart.Value.Date;
var finishDate = finishIn.AddDays(1).AddHours(7); var finishDate = dtpFinish.Value.Date;
if (opening) 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()) if (!item.SDate.HasValue || !item.FDate.HasValue)
{ continue;
bi.DeleteVoid(startDate, finishDate); if (item.FDate.Value.Date < startDate.Date || item.SDate.Value.Date > finishDate.Date)
} continue;
using (var bi = new ManagementBI()) list.Add(item);
{
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);
}
} }
return list;
} }
private IList<CreditJson> GetCredit(string credit)
private static void ProcessBeer(Dictionary<DateTime, decimal> dates, DateTime startIn, DateTime finishIn)
{ {
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; if (!item.CDate.HasValue)
foreach (var item in dates) continue;
{ if (item.CDate.Value.Date < startDate.Date || item.CDate.Value.Date > finishDate.Date)
if (item.Key < startIn || item.Key > finishIn) continue;
continue; list.Add(item);
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);
}
}
} }
return list;
} }
private IList<BeerJson> GetBeer(string beer)
private static string ProcessSale(SaleData item, Dictionary<DateTime, decimal> creditDates)
{ {
var info = string.Empty; var startDate = dtpStart.Value.Date;
var startDate = item.StartDate.AddHours(7); var finishDate = dtpFinish.Value.Date;
var finishDate = item.FinishDate.AddHours(7).AddDays(1); var fileContents = new StreamReader(File.OpenRead(beer)).ReadToEnd();
var creditInfo = creditDates.Where(x => x.Key >= item.StartDate && x.Key <= item.FinishDate).ToDictionary(x => x.Key, x => x.Value); JavaScriptSerializer jss = new JavaScriptSerializer();
var data = jss.Deserialize<IList<BeerJson>>(fileContents);
info += "From " + startDate.ToShortDateString() + " to " + finishDate.ToShortDateString() + "\r\n"; IList<BeerJson> list = new List<BeerJson>();
foreach (var item in data)
using (var bi = new ManagementBI())
{ {
info += "25%\t" + bi.GetFood(.26250M, startDate, finishDate) + "\t"; if (!item.bDate.HasValue)
var ret = bi.SetLiq(.26250M, item.Sale25, startDate, finishDate); continue;
info += ret + "\t" + item.Sale25.ToString() + "\r\n"; if (item.bDate.Value.Date < startDate.Date || item.bDate.Value.Date > finishDate.Date)
continue;
list.Add(item);
} }
using (var bi = new ManagementBI()) return list;
{
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;
} }
private static decimal TryConvert(string amount) private static decimal TryConvert(string amount)
{ {
decimal result = 0; decimal result = 0;
decimal.TryParse(amount, out result); decimal.TryParse(amount, out result);
return result; return result;
} }
#endregion
#region Tally
private void btnTally_Click(object sender, EventArgs e) private void btnTally_Click(object sender, EventArgs e)
{ {
var startDate = dtpStart.Value.Date; var startDate = dtpStart.Value.Date;
@ -331,49 +236,27 @@ namespace Tanshu.Accounts.Management
var cash = 0M; var cash = 0M;
using (var bi = new ManagementBI()) using (var bi = new ManagementBI())
{ {
var sale = Math.Round(bi.GetFood(.26250M, currentStart, currentFinish)); var saleAndVat = bi.GetSaleAndVat(currentStart, currentFinish);
var vat = 0M; foreach (var item in saleAndVat)
if (sale != 0)
{ {
cash += sale; if (item.Net == 0)
voucher += GetLedger("Sale @ 25 %", sale.ToString("#0.00")); throw new ArgumentException();
vat = Math.Round(bi.GetVat(.26250M, currentStart, currentFinish)); cash += Math.Round(item.Net);
cash += vat; var rate = item.Rate * 100 / 1.05M;
voucher += GetLedger("Output Vat @ 25%", vat.ToString("#0.00")); 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)); var st = Math.Round(bi.GetServiceTax(currentStart, currentFinish));
if (sale != 0) if (st != 0)
{ {
cash += sale; cash += st;
voucher += GetLedger("Sale @ 15%", sale.ToString("#0.00")); voucher += GetLedger("Central Service Tax", st.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"));
} }
if (cash != 0) if (cash != 0)
@ -488,51 +371,87 @@ namespace Tanshu.Accounts.Management
#endregion #endregion
return string.Format(template, ledgername, isDeemedPositive, isPartyLedger, amount); return string.Format(template, ledgername, isDeemedPositive, isPartyLedger, amount);
} }
#endregion
private void btnFinalSanction_Click(object sender, EventArgs e) private void btnFinalSanction_Click(object sender, EventArgs e)
{ {
using (var bi = new ManagementBI()) 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) private void btnExcel_Click(object sender, EventArgs e)
{ {
btnExcel.Enabled = false; btnExcel.Enabled = false;
var startDate = dtpStart.Value.Date; var startDate = dtpStart.Value.Date;
var finishDate = dtpFinish.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)) var sheet = GetExcel(startDate, finishDate);
{
sheet += GetExcel(date);
}
Clipboard.SetText(sheet, TextDataFormat.Text); Clipboard.SetText(sheet, TextDataFormat.Text);
btnExcel.Enabled = true; 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()) using (var bi = new ManagementBI())
{ {
var currentStart = date.AddHours(7); for (var date = startDate; date <= finishDate; date = date.AddDays(1))
var currentFinish = date.AddDays(1).AddHours(7); {
var cash = bi.GetFirstBill(date); var currentStart = date.AddHours(7);
if (cash == "") var currentFinish = date.AddDays(1).AddHours(7);
return ""; var bills = bi.GetMinMaxBills(currentStart, currentFinish);
cash = string.Format("{0:dd-MMM-yyyy}\t'{1}\t'{2}\t", date, cash, bi.GetLastBill(date)); if (bills == null)
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(0M, currentStart, currentFinish))); continue;
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.13125M, currentStart, currentFinish))); var saleList = bi.GetSaleAndVat(currentStart, currentFinish);
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.1575M, currentStart, currentFinish))); var serviceTax = bi.GetServiceTax(currentStart, currentFinish);
cash += string.Format("{0:#0}\t", Math.Round(bi.GetFood(.2625M, currentStart, currentFinish)));
cash += string.Format("{0:#0}\t", Math.Round(bi.GetVat(.13125M, currentStart, currentFinish))); var ei = new ExcelInfo()
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))); 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))); rates.Sort();
return cash;
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
} }
} }

View File

@ -35,6 +35,8 @@
this.btnTally = new System.Windows.Forms.Button(); this.btnTally = new System.Windows.Forms.Button();
this.btnFinalSanction = new System.Windows.Forms.Button(); this.btnFinalSanction = new System.Windows.Forms.Button();
this.btnExcel = 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(); this.SuspendLayout();
// //
// dtpFinish // dtpFinish
@ -66,10 +68,9 @@
// //
// btnGo // btnGo
// //
this.btnGo.Enabled = false;
this.btnGo.Location = new System.Drawing.Point(12, 207); this.btnGo.Location = new System.Drawing.Point(12, 207);
this.btnGo.Name = "btnGo"; 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.TabIndex = 24;
this.btnGo.Text = "Go"; this.btnGo.Text = "Go";
this.btnGo.UseVisualStyleBackColor = true; this.btnGo.UseVisualStyleBackColor = true;
@ -77,9 +78,9 @@
// //
// btnTally // 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.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.TabIndex = 25;
this.btnTally.Text = "Tally"; this.btnTally.Text = "Tally";
this.btnTally.UseVisualStyleBackColor = true; this.btnTally.UseVisualStyleBackColor = true;
@ -89,7 +90,7 @@
// //
this.btnFinalSanction.Location = new System.Drawing.Point(12, 178); this.btnFinalSanction.Location = new System.Drawing.Point(12, 178);
this.btnFinalSanction.Name = "btnFinalSanction"; 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.TabIndex = 26;
this.btnFinalSanction.Text = "Final Sanction"; this.btnFinalSanction.Text = "Final Sanction";
this.btnFinalSanction.UseVisualStyleBackColor = true; this.btnFinalSanction.UseVisualStyleBackColor = true;
@ -97,19 +98,38 @@
// //
// btnExcel // 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.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.TabIndex = 27;
this.btnExcel.Text = "Excel"; this.btnExcel.Text = "Excel";
this.btnExcel.UseVisualStyleBackColor = true; this.btnExcel.UseVisualStyleBackColor = true;
this.btnExcel.Click += new System.EventHandler(this.btnExcel_Click); 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 // ManagementForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 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.btnExcel);
this.Controls.Add(this.btnFinalSanction); this.Controls.Add(this.btnFinalSanction);
this.Controls.Add(this.btnTally); this.Controls.Add(this.btnTally);
@ -136,5 +156,7 @@
private System.Windows.Forms.Button btnTally; private System.Windows.Forms.Button btnTally;
private System.Windows.Forms.Button btnFinalSanction; private System.Windows.Forms.Button btnFinalSanction;
private System.Windows.Forms.Button btnExcel; private System.Windows.Forms.Button btnExcel;
private System.ComponentModel.BackgroundWorker bwGo;
private System.Windows.Forms.TextBox txtStatus;
} }
} }

View File

@ -117,4 +117,7 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </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> </root>

View File

@ -34,9 +34,6 @@
this.Label7 = new System.Windows.Forms.Label(); this.Label7 = new System.Windows.Forms.Label();
this.bsServiceTax = new System.Windows.Forms.BindingSource(this.components); this.bsServiceTax = new System.Windows.Forms.BindingSource(this.components);
this.label5 = new System.Windows.Forms.Label(); 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.Label2 = new System.Windows.Forms.Label();
this.txtUnits = new System.Windows.Forms.TextBox(); this.txtUnits = new System.Windows.Forms.TextBox();
this.txtName = new System.Windows.Forms.TextBox(); this.txtName = new System.Windows.Forms.TextBox();
@ -54,6 +51,7 @@
this.label6 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label();
this.chkIsScTaxable = new System.Windows.Forms.CheckBox(); this.chkIsScTaxable = new System.Windows.Forms.CheckBox();
this.chkIsNotAvailable = 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.bsProductGroups)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bsServiceTax)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bsServiceTax)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bsVat)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bsVat)).BeginInit();
@ -62,7 +60,7 @@
// Label4 // Label4
// //
this.Label4.AutoSize = true; 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.Name = "Label4";
this.Label4.Size = new System.Drawing.Size(85, 13); this.Label4.Size = new System.Drawing.Size(85, 13);
this.Label4.TabIndex = 15; this.Label4.TabIndex = 15;
@ -75,7 +73,7 @@
// Label7 // Label7
// //
this.Label7.AutoSize = true; 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.Name = "Label7";
this.Label7.Size = new System.Drawing.Size(36, 13); this.Label7.Size = new System.Drawing.Size(36, 13);
this.Label7.TabIndex = 17; this.Label7.TabIndex = 17;
@ -88,42 +86,16 @@
// label5 // label5
// //
this.label5.AutoSize = true; 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.Name = "label5";
this.label5.Size = new System.Drawing.Size(80, 13); this.label5.Size = new System.Drawing.Size(80, 13);
this.label5.TabIndex = 16; this.label5.TabIndex = 16;
this.label5.Text = "Service Charge"; 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 // Label2
// //
this.Label2.AutoSize = true; 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.Name = "Label2";
this.Label2.Size = new System.Drawing.Size(70, 13); this.Label2.Size = new System.Drawing.Size(70, 13);
this.Label2.TabIndex = 14; this.Label2.TabIndex = 14;
@ -132,7 +104,7 @@
// txtUnits // txtUnits
// //
this.txtUnits.AccessibleName = ""; 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.Name = "txtUnits";
this.txtUnits.Size = new System.Drawing.Size(96, 20); this.txtUnits.Size = new System.Drawing.Size(96, 20);
this.txtUnits.TabIndex = 2; this.txtUnits.TabIndex = 2;
@ -140,7 +112,7 @@
// txtName // txtName
// //
this.txtName.AccessibleName = ""; 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.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(189, 20); this.txtName.Size = new System.Drawing.Size(189, 20);
this.txtName.TabIndex = 1; this.txtName.TabIndex = 1;
@ -148,7 +120,7 @@
// txtPrice // txtPrice
// //
this.txtPrice.AccessibleName = ""; 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.Name = "txtPrice";
this.txtPrice.Size = new System.Drawing.Size(104, 20); this.txtPrice.Size = new System.Drawing.Size(104, 20);
this.txtPrice.TabIndex = 3; this.txtPrice.TabIndex = 3;
@ -159,7 +131,7 @@
this.cmbVat.DataSource = this.bsVat; this.cmbVat.DataSource = this.bsVat;
this.cmbVat.DisplayMember = "Name"; this.cmbVat.DisplayMember = "Name";
this.cmbVat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 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.Name = "cmbVat";
this.cmbVat.Size = new System.Drawing.Size(189, 21); this.cmbVat.Size = new System.Drawing.Size(189, 21);
this.cmbVat.TabIndex = 4; this.cmbVat.TabIndex = 4;
@ -172,7 +144,7 @@
// chkIsActive // chkIsActive
// //
this.chkIsActive.AutoSize = true; 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.Name = "chkIsActive";
this.chkIsActive.Size = new System.Drawing.Size(67, 17); this.chkIsActive.Size = new System.Drawing.Size(67, 17);
this.chkIsActive.TabIndex = 7; this.chkIsActive.TabIndex = 7;
@ -182,7 +154,7 @@
// txtServiceCharge // txtServiceCharge
// //
this.txtServiceCharge.AccessibleName = "Phone 1"; 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.Name = "txtServiceCharge";
this.txtServiceCharge.Size = new System.Drawing.Size(189, 20); this.txtServiceCharge.Size = new System.Drawing.Size(189, 20);
this.txtServiceCharge.TabIndex = 5; this.txtServiceCharge.TabIndex = 5;
@ -190,7 +162,7 @@
// //
// btnAddProductGroup // 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.Name = "btnAddProductGroup";
this.btnAddProductGroup.Size = new System.Drawing.Size(96, 21); this.btnAddProductGroup.Size = new System.Drawing.Size(96, 21);
this.btnAddProductGroup.TabIndex = 9; this.btnAddProductGroup.TabIndex = 9;
@ -203,7 +175,7 @@
this.cmbProductGroup.DataSource = this.bsProductGroups; this.cmbProductGroup.DataSource = this.bsProductGroups;
this.cmbProductGroup.DisplayMember = "Name"; this.cmbProductGroup.DisplayMember = "Name";
this.cmbProductGroup.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 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.Name = "cmbProductGroup";
this.cmbProductGroup.Size = new System.Drawing.Size(189, 21); this.cmbProductGroup.Size = new System.Drawing.Size(189, 21);
this.cmbProductGroup.TabIndex = 8; this.cmbProductGroup.TabIndex = 8;
@ -211,7 +183,7 @@
// //
// btnCancel // 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.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 75); this.btnCancel.Size = new System.Drawing.Size(75, 75);
this.btnCancel.TabIndex = 11; this.btnCancel.TabIndex = 11;
@ -221,7 +193,7 @@
// //
// btnOk // 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.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(75, 75); this.btnOk.Size = new System.Drawing.Size(75, 75);
this.btnOk.TabIndex = 10; this.btnOk.TabIndex = 10;
@ -232,7 +204,7 @@
// txtFullPrice // txtFullPrice
// //
this.txtFullPrice.AccessibleName = ""; 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.Name = "txtFullPrice";
this.txtFullPrice.Size = new System.Drawing.Size(79, 20); this.txtFullPrice.Size = new System.Drawing.Size(79, 20);
this.txtFullPrice.TabIndex = 19; this.txtFullPrice.TabIndex = 19;
@ -243,7 +215,7 @@
this.cmbServiceTax.DataSource = this.bsServiceTax; this.cmbServiceTax.DataSource = this.bsServiceTax;
this.cmbServiceTax.DisplayMember = "Name"; this.cmbServiceTax.DisplayMember = "Name";
this.cmbServiceTax.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 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.Name = "cmbServiceTax";
this.cmbServiceTax.Size = new System.Drawing.Size(189, 21); this.cmbServiceTax.Size = new System.Drawing.Size(189, 21);
this.cmbServiceTax.TabIndex = 20; this.cmbServiceTax.TabIndex = 20;
@ -252,16 +224,16 @@
// label6 // label6
// //
this.label6.AutoSize = true; 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.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.TabIndex = 21;
this.label6.Text = "Service Tax / Vat"; this.label6.Text = "Service Tax";
// //
// chkIsScTaxable // chkIsScTaxable
// //
this.chkIsScTaxable.AutoSize = true; 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.Name = "chkIsScTaxable";
this.chkIsScTaxable.Size = new System.Drawing.Size(91, 17); this.chkIsScTaxable.Size = new System.Drawing.Size(91, 17);
this.chkIsScTaxable.TabIndex = 22; this.chkIsScTaxable.TabIndex = 22;
@ -271,18 +243,28 @@
// chkIsNotAvailable // chkIsNotAvailable
// //
this.chkIsNotAvailable.AutoSize = true; 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.Name = "chkIsNotAvailable";
this.chkIsNotAvailable.Size = new System.Drawing.Size(57, 17); this.chkIsNotAvailable.Size = new System.Drawing.Size(57, 17);
this.chkIsNotAvailable.TabIndex = 23; this.chkIsNotAvailable.TabIndex = 23;
this.chkIsNotAvailable.Text = "Is N/A"; this.chkIsNotAvailable.Text = "Is N/A";
this.chkIsNotAvailable.UseVisualStyleBackColor = true; 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 // ProductForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(415, 282); this.ClientSize = new System.Drawing.Size(415, 282);
this.Controls.Add(this.label1);
this.Controls.Add(this.chkIsNotAvailable); this.Controls.Add(this.chkIsNotAvailable);
this.Controls.Add(this.chkIsScTaxable); this.Controls.Add(this.chkIsScTaxable);
this.Controls.Add(this.label6); this.Controls.Add(this.label6);
@ -301,9 +283,6 @@
this.Controls.Add(this.txtUnits); this.Controls.Add(this.txtUnits);
this.Controls.Add(this.txtName); this.Controls.Add(this.txtName);
this.Controls.Add(this.Label2); 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.Controls.Add(this.Label4);
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
@ -326,9 +305,6 @@
private System.Windows.Forms.BindingSource bsProductGroups; private System.Windows.Forms.BindingSource bsProductGroups;
private System.Windows.Forms.BindingSource bsServiceTax; private System.Windows.Forms.BindingSource bsServiceTax;
internal System.Windows.Forms.Label label5; 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.Label Label2;
internal System.Windows.Forms.TextBox txtUnits; internal System.Windows.Forms.TextBox txtUnits;
internal System.Windows.Forms.TextBox txtName; internal System.Windows.Forms.TextBox txtName;
@ -346,5 +322,6 @@
private System.Windows.Forms.CheckBox chkIsScTaxable; private System.Windows.Forms.CheckBox chkIsScTaxable;
private System.Windows.Forms.BindingSource bsVat; private System.Windows.Forms.BindingSource bsVat;
private System.Windows.Forms.CheckBox chkIsNotAvailable; private System.Windows.Forms.CheckBox chkIsNotAvailable;
internal System.Windows.Forms.Label label1;
} }
} }

View File

@ -22,8 +22,6 @@ namespace Tanshu.Accounts.PointOfSale
Product product; Product product;
using (var bi = new ProductBI()) using (var bi = new ProductBI())
product = bi.Get(x => x.ProductID == _productID.Value); product = bi.Get(x => x.ProductID == _productID.Value);
txtProductID.Text = _productID.Value.ToString();
txtCode.Text = product.Code.ToString();
txtName.Text = product.Name; txtName.Text = product.Name;
txtUnits.Text = product.Units; txtUnits.Text = product.Units;
txtPrice.Text = product.Price.ToString("#.##"); txtPrice.Text = product.Price.ToString("#.##");
@ -38,7 +36,6 @@ namespace Tanshu.Accounts.PointOfSale
} }
else else
{ {
txtProductID.Text = "(Auto)";
txtName.Focus(); txtName.Focus();
} }
} }
@ -69,29 +66,34 @@ namespace Tanshu.Accounts.PointOfSale
if (_productID.HasValue) if (_productID.HasValue)
product.ProductID = _productID.Value; 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())) if (string.IsNullOrEmpty(txtName.Text.Trim()))
return null; return null;
product.Name = txtName.Text.Trim(); product.Name = txtName.Text.Trim();
//if (string.IsNullOrEmpty(txtUnits.Text.Trim()))
// return null;
product.Units = txtUnits.Text.Trim(); product.Units = txtUnits.Text.Trim();
decimal price; decimal price;
if (!decimal.TryParse(txtPrice.Text, out price)) if (string.IsNullOrEmpty(txtPrice.Text.Trim()))
return null; {
price = 0;
}
else
{
if (!decimal.TryParse(txtPrice.Text.Trim(), out price))
return null;
}
if (price < 0) if (price < 0)
return null; return null;
product.Price = price; product.Price = price;
if (!decimal.TryParse(txtFullPrice.Text, out price)) if (string.IsNullOrEmpty(txtFullPrice.Text.Trim()))
return null; {
price = 0;
}
else
{
if (!decimal.TryParse(txtFullPrice.Text.Trim(), out price))
return null;
}
if (price < 0 || price < product.Price) if (price < 0 || price < product.Price)
return null; return null;
product.FullPrice = price; product.FullPrice = price;
@ -106,8 +108,16 @@ namespace Tanshu.Accounts.PointOfSale
product.ServiceTax = (Tax)cmbServiceTax.SelectedItem; product.ServiceTax = (Tax)cmbServiceTax.SelectedItem;
decimal serviceCharge; decimal serviceCharge;
if (!decimal.TryParse(txtServiceCharge.Text, out serviceCharge)) if (string.IsNullOrEmpty(txtServiceCharge.Text.Trim()))
return null; {
serviceCharge = 0;
}
else
{
if (!decimal.TryParse(txtServiceCharge.Text.Trim(), out serviceCharge))
return null;
}
if (serviceCharge < 0 || serviceCharge > 1) if (serviceCharge < 0 || serviceCharge > 1)
return null; return null;
product.ServiceCharge = serviceCharge; product.ServiceCharge = serviceCharge;

View File

@ -29,25 +29,25 @@
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
this.btnAdd = new System.Windows.Forms.Button(); this.btnAdd = new System.Windows.Forms.Button();
this.btnEdit = new System.Windows.Forms.Button(); this.btnEdit = new System.Windows.Forms.Button();
this.btnExit = new System.Windows.Forms.Button(); this.btnExit = new System.Windows.Forms.Button();
this.dgvProducts = new System.Windows.Forms.DataGridView(); 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.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.unitsDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.unitsDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.moveUp = new System.Windows.Forms.DataGridViewButtonColumn(); this.moveUp = new System.Windows.Forms.DataGridViewButtonColumn();
this.moveDown = 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.ServiceTax = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Vat = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Group = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Group = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.serviceChargeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.serviceChargeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.salePriceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.salePriceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.isActiveDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); 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.dgvProducts)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bsList)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bsList)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
@ -100,8 +100,8 @@
this.unitsDataGridViewTextBoxColumn, this.unitsDataGridViewTextBoxColumn,
this.moveUp, this.moveUp,
this.moveDown, this.moveDown,
this.Vat,
this.ServiceTax, this.ServiceTax,
this.Vat,
this.Group, this.Group,
this.serviceChargeDataGridViewTextBoxColumn, this.serviceChargeDataGridViewTextBoxColumn,
this.salePriceDataGridViewTextBoxColumn, this.salePriceDataGridViewTextBoxColumn,
@ -120,6 +120,36 @@
this.dgvProducts.TabIndex = 74; this.dgvProducts.TabIndex = 74;
this.dgvProducts.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dgvProductTypes_CellFormatting); 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 // nameDataGridViewTextBoxColumn
// //
this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name";
@ -154,14 +184,6 @@
this.moveDown.UseColumnTextForButtonValue = true; this.moveDown.UseColumnTextForButtonValue = true;
this.moveDown.Width = 41; 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 // ServiceTax
// //
this.ServiceTax.DataPropertyName = "ServiceTax"; this.ServiceTax.DataPropertyName = "ServiceTax";
@ -170,6 +192,14 @@
this.ServiceTax.ReadOnly = true; this.ServiceTax.ReadOnly = true;
this.ServiceTax.Width = 86; 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 // Group
// //
this.Group.DataPropertyName = "ProductGroup"; this.Group.DataPropertyName = "ProductGroup";
@ -181,8 +211,8 @@
// serviceChargeDataGridViewTextBoxColumn // serviceChargeDataGridViewTextBoxColumn
// //
this.serviceChargeDataGridViewTextBoxColumn.DataPropertyName = "ServiceCharge"; this.serviceChargeDataGridViewTextBoxColumn.DataPropertyName = "ServiceCharge";
dataGridViewCellStyle7.Format = "P0"; dataGridViewCellStyle1.Format = "P0";
this.serviceChargeDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle7; this.serviceChargeDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1;
this.serviceChargeDataGridViewTextBoxColumn.HeaderText = "SC"; this.serviceChargeDataGridViewTextBoxColumn.HeaderText = "SC";
this.serviceChargeDataGridViewTextBoxColumn.Name = "serviceChargeDataGridViewTextBoxColumn"; this.serviceChargeDataGridViewTextBoxColumn.Name = "serviceChargeDataGridViewTextBoxColumn";
this.serviceChargeDataGridViewTextBoxColumn.ReadOnly = true; this.serviceChargeDataGridViewTextBoxColumn.ReadOnly = true;
@ -191,8 +221,8 @@
// salePriceDataGridViewTextBoxColumn // salePriceDataGridViewTextBoxColumn
// //
this.salePriceDataGridViewTextBoxColumn.DataPropertyName = "Price"; this.salePriceDataGridViewTextBoxColumn.DataPropertyName = "Price";
dataGridViewCellStyle8.Format = "N0"; dataGridViewCellStyle2.Format = "N0";
this.salePriceDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle8; this.salePriceDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2;
this.salePriceDataGridViewTextBoxColumn.HeaderText = "Price"; this.salePriceDataGridViewTextBoxColumn.HeaderText = "Price";
this.salePriceDataGridViewTextBoxColumn.Name = "salePriceDataGridViewTextBoxColumn"; this.salePriceDataGridViewTextBoxColumn.Name = "salePriceDataGridViewTextBoxColumn";
this.salePriceDataGridViewTextBoxColumn.ReadOnly = true; this.salePriceDataGridViewTextBoxColumn.ReadOnly = true;
@ -206,36 +236,6 @@
this.isActiveDataGridViewCheckBoxColumn.ReadOnly = true; this.isActiveDataGridViewCheckBoxColumn.ReadOnly = true;
this.isActiveDataGridViewCheckBoxColumn.Width = 54; 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 // ProductListForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -268,17 +268,17 @@
private System.Windows.Forms.DataGridView dgvProducts; private System.Windows.Forms.DataGridView dgvProducts;
private System.Windows.Forms.BindingSource bsList; private System.Windows.Forms.BindingSource bsList;
internal System.Windows.Forms.Button btnSave; internal System.Windows.Forms.Button btnSave;
private System.Windows.Forms.CheckBox chkIsActive;
private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn unitsDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn unitsDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewButtonColumn moveUp; private System.Windows.Forms.DataGridViewButtonColumn moveUp;
private System.Windows.Forms.DataGridViewButtonColumn moveDown; private System.Windows.Forms.DataGridViewButtonColumn moveDown;
private System.Windows.Forms.DataGridViewTextBoxColumn Vat;
private System.Windows.Forms.DataGridViewTextBoxColumn ServiceTax; private System.Windows.Forms.DataGridViewTextBoxColumn ServiceTax;
private System.Windows.Forms.DataGridViewTextBoxColumn Vat;
private System.Windows.Forms.DataGridViewTextBoxColumn Group; private System.Windows.Forms.DataGridViewTextBoxColumn Group;
private System.Windows.Forms.DataGridViewTextBoxColumn serviceChargeDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn serviceChargeDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn salePriceDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn salePriceDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewCheckBoxColumn isActiveDataGridViewCheckBoxColumn; private System.Windows.Forms.DataGridViewCheckBoxColumn isActiveDataGridViewCheckBoxColumn;
private System.Windows.Forms.CheckBox chkIsActive;
//private System.Windows.Forms.DataGridViewTextBoxColumn discountLimitDataGridViewTextBoxColumn; //private System.Windows.Forms.DataGridViewTextBoxColumn discountLimitDataGridViewTextBoxColumn;
//private System.Windows.Forms.DataGridViewTextBoxColumn groupTypeDataGridViewTextBoxColumn; //private System.Windows.Forms.DataGridViewTextBoxColumn groupTypeDataGridViewTextBoxColumn;
//private System.Windows.Forms.DataGridViewTextBoxColumn productGroupDataGridViewTextBoxColumn; //private System.Windows.Forms.DataGridViewTextBoxColumn productGroupDataGridViewTextBoxColumn;

View File

@ -123,30 +123,12 @@
<metadata name="moveDown.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="moveDown.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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"> <metadata name="ServiceTax.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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"> <metadata name="Vat.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </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"> <metadata name="Group.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>

File diff suppressed because it is too large Load Diff