Added ST Number to bill.
Fixed error were unprinted bill was not removed from table when voided.
This commit is contained in:
parent
2d1030abf6
commit
843d644154
@ -5,7 +5,9 @@ namespace Tanshu.Accounts.Contracts
|
|||||||
public enum BillItemType
|
public enum BillItemType
|
||||||
{
|
{
|
||||||
Product,
|
Product,
|
||||||
Kot
|
Kot,
|
||||||
|
Information,
|
||||||
|
Total
|
||||||
}
|
}
|
||||||
public class BillItemKey
|
public class BillItemKey
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
using System;
|
namespace Tanshu.Accounts.Entities
|
||||||
using System.Runtime.Serialization;
|
|
||||||
using FluentNHibernate.Mapping;
|
|
||||||
|
|
||||||
namespace Tanshu.Accounts.Entities
|
|
||||||
{
|
{
|
||||||
public class FoodTable
|
public class FoodTable
|
||||||
{
|
{
|
||||||
|
@ -1,13 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using Tanshu.Accounts.Contracts;
|
|
||||||
using Tanshu.Accounts.Entities;
|
using Tanshu.Accounts.Entities;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using Tanshu.Accounts.Repository;
|
|
||||||
using Tanshu.Common.KeyboardControl;
|
using Tanshu.Common.KeyboardControl;
|
||||||
|
|
||||||
namespace Tanshu.Accounts.Helpers
|
namespace Tanshu.Accounts.Helpers
|
||||||
@ -20,7 +16,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
{
|
{
|
||||||
IList<FoodTable> list = new List<FoodTable>();
|
IList<FoodTable> list = new List<FoodTable>();
|
||||||
int pageLength, stop;
|
int pageLength, stop;
|
||||||
PageSetup(ref panel, start, inList as IList, out pageLength, out stop);
|
PageSetup(panel, start, inList as IList, size, out pageLength, out stop);
|
||||||
if (start != 0)
|
if (start != 0)
|
||||||
list.Add(new FoodTable() { FoodTableID = start - pageLength, Name = "Previous" });
|
list.Add(new FoodTable() { FoodTableID = start - pageLength, Name = "Previous" });
|
||||||
for (int i = start; i < stop; i++)
|
for (int i = start; i < stop; i++)
|
||||||
@ -34,7 +30,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
{
|
{
|
||||||
var item = list[i];
|
var item = list[i];
|
||||||
var status = item.Status;
|
var status = item.Status;
|
||||||
var control = GetButton(string.Format("g{0}", i), item.Name, size.X, size.Y, item, bcDelegate);
|
var control = GetButton(string.Format("g{0}", i), item.Name, size, item, bcDelegate);
|
||||||
if (status == "printed")
|
if (status == "printed")
|
||||||
control.BackColor = Color.Green;
|
control.BackColor = Color.Green;
|
||||||
else if (status == "running")
|
else if (status == "running")
|
||||||
@ -46,7 +42,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
{
|
{
|
||||||
IList<Product> list = new List<Product>();
|
IList<Product> list = new List<Product>();
|
||||||
int pageLength, stop;
|
int pageLength, stop;
|
||||||
PageSetup(ref panel, start, inList as IList, out pageLength, out stop);
|
PageSetup(panel, start, inList as IList, size, out pageLength, out stop);
|
||||||
if (start != 0)
|
if (start != 0)
|
||||||
list.Add(new Product() { ProductID = start - pageLength, Name = "Previous" });
|
list.Add(new Product() { ProductID = start - pageLength, Name = "Previous" });
|
||||||
for (int i = start; i < stop; i++)
|
for (int i = start; i < stop; i++)
|
||||||
@ -59,7 +55,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
for (var i = 0; i < list.Count; i++)
|
for (var i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
var item = list[i];
|
var item = list[i];
|
||||||
var control = GetButton(string.Format("p{0}", i), item.Units == string.Empty ? item.Name : string.Format("{0} ({1})", item.Name, item.Units), size.X, size.Y, item, bcDelegate);
|
var control = GetButton(string.Format("p{0}", i), item.Units == string.Empty ? item.Name : string.Format("{0} ({1})", item.Name, item.Units), size, item, bcDelegate);
|
||||||
if (item.Price == 0)
|
if (item.Price == 0)
|
||||||
control.BackColor = Color.Yellow;
|
control.BackColor = Color.Yellow;
|
||||||
panel.Controls.Add(control);
|
panel.Controls.Add(control);
|
||||||
@ -72,7 +68,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
for (int i = 0; i < list.Count; i++)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
var item = list[i];
|
var item = list[i];
|
||||||
var control = GetUnselectableCheckbox(i.ToString(), item, size.X, size.Y, item, bcDelegate);
|
var control = GetUnselectableCheckbox(i.ToString(), item, size, item, bcDelegate);
|
||||||
panel.Controls.Add(control);
|
panel.Controls.Add(control);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -81,7 +77,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
{
|
{
|
||||||
IList<ProductGroup> list = new List<ProductGroup>();
|
IList<ProductGroup> list = new List<ProductGroup>();
|
||||||
int pageLength, stop;
|
int pageLength, stop;
|
||||||
PageSetup(ref panel, start, inList as IList, out pageLength, out stop);
|
PageSetup(panel, start, inList as IList, size, out pageLength, out stop);
|
||||||
if (start != 0)
|
if (start != 0)
|
||||||
list.Add(new ProductGroup() { ProductGroupID = start - pageLength, Name = "Previous" });
|
list.Add(new ProductGroup() { ProductGroupID = start - pageLength, Name = "Previous" });
|
||||||
for (int i = start; i < stop; i++)
|
for (int i = start; i < stop; i++)
|
||||||
@ -94,7 +90,7 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
for (int i = 0; i < list.Count; i++)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
var item = list[i];
|
var item = list[i];
|
||||||
var control = GetButton(string.Format("g{0}", i), item.Name, size.X, size.Y, item, bcDelegate);
|
var control = GetButton(string.Format("g{0}", i), item.Name, size, item, bcDelegate);
|
||||||
panel.Controls.Add(control);
|
panel.Controls.Add(control);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,18 +109,20 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
var item = list[i];
|
var item = list[i];
|
||||||
var control = GetCheckbox(i.ToString(), item.Name, size.X, size.Y, item, bcDelegate);
|
var control = GetCheckbox(i.ToString(), item.Name, size, item, bcDelegate);
|
||||||
control.Checked = selection.Contains(item);
|
control.Checked = selection.Contains(item);
|
||||||
panel.Controls.Add(control);
|
panel.Controls.Add(control);
|
||||||
controlList.Add(control);
|
controlList.Add(control);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void PageSetup(ref FlowLayoutPanel panel, int start, IList inList, out int pageLength, out int stop)
|
private static void PageSetup(FlowLayoutPanel panel, int start, ICollection inList, Point size, out int pageLength, out int stop)
|
||||||
{
|
{
|
||||||
panel.Controls.Clear();
|
panel.Controls.Clear();
|
||||||
pageLength = (panel.Height / (3 + 75 + 3));
|
var marginWidth = panel.Margin.Right + panel.Margin.Left;
|
||||||
pageLength *= (panel.Width / (3 + 75 + 3));
|
var marginHeight = panel.Margin.Top + panel.Margin.Bottom;
|
||||||
|
pageLength = (panel.ClientSize.Height / (marginHeight + size.Y));
|
||||||
|
pageLength *= (panel.ClientSize.Width / (marginWidth + size.X));
|
||||||
pageLength -= 2;
|
pageLength -= 2;
|
||||||
if (inList.Count <= pageLength)
|
if (inList.Count <= pageLength)
|
||||||
start = 0;
|
start = 0;
|
||||||
@ -135,28 +133,28 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
stop = inList.Count;
|
stop = inList.Count;
|
||||||
|
|
||||||
}
|
}
|
||||||
private static Button GetButton(string name, string text, int width, int height, object tag, ButtonClickDelegate bcDelegate)
|
private static Button GetButton(string name, string text, Point size, object tag, ButtonClickDelegate bcDelegate)
|
||||||
{
|
{
|
||||||
Button control = new Button()
|
var control = new Button()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
Text = text,
|
Text = text,
|
||||||
Width = width,
|
Width = size.X,
|
||||||
Height = height,
|
Height = size.Y,
|
||||||
Tag = tag,
|
Tag = tag,
|
||||||
};
|
};
|
||||||
if (bcDelegate != null)
|
if (bcDelegate != null)
|
||||||
control.Click += new EventHandler(bcDelegate);
|
control.Click += new EventHandler(bcDelegate);
|
||||||
return control;
|
return control;
|
||||||
}
|
}
|
||||||
private static UnselectableCheckbox GetUnselectableCheckbox(string name, string text, int width, int height, object tag, ButtonClickDelegate bcDelegate)
|
private static UnselectableCheckbox GetUnselectableCheckbox(string name, string text, Point size, object tag, ButtonClickDelegate bcDelegate)
|
||||||
{
|
{
|
||||||
UnselectableCheckbox control = new UnselectableCheckbox()
|
var control = new UnselectableCheckbox()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
Text = text,
|
Text = text,
|
||||||
Width = width,
|
Width = size.X,
|
||||||
Height = height,
|
Height = size.Y,
|
||||||
Tag = tag,
|
Tag = tag,
|
||||||
Appearance = Appearance.Button,
|
Appearance = Appearance.Button,
|
||||||
|
|
||||||
@ -165,14 +163,14 @@ namespace Tanshu.Accounts.Helpers
|
|||||||
control.Click += new EventHandler(bcDelegate);
|
control.Click += new EventHandler(bcDelegate);
|
||||||
return control;
|
return control;
|
||||||
}
|
}
|
||||||
private static CheckBox GetCheckbox(string name, string text, int width, int height, object tag, ButtonClickDelegate bcDelegate)
|
private static CheckBox GetCheckbox(string name, string text, Point size, object tag, ButtonClickDelegate bcDelegate)
|
||||||
{
|
{
|
||||||
CheckBox control = new CheckBox()
|
var control = new CheckBox()
|
||||||
{
|
{
|
||||||
Name = name,
|
Name = name,
|
||||||
Text = text,
|
Text = text,
|
||||||
Width = width,
|
Width = size.X,
|
||||||
Height = height,
|
Height = size.Y,
|
||||||
Tag = tag,
|
Tag = tag,
|
||||||
Appearance = Appearance.Button,
|
Appearance = Appearance.Button,
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ namespace Tanshu.Accounts.PointOfSale
|
|||||||
{
|
{
|
||||||
public class BillController
|
public class BillController
|
||||||
{
|
{
|
||||||
private readonly OrderedDictionary<BillItemKey, BillItemValue> _bill;
|
private readonly BillDict _bill;
|
||||||
|
|
||||||
private Voucher _billInfo;
|
private Voucher _billInfo;
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ namespace Tanshu.Accounts.PointOfSale
|
|||||||
{
|
{
|
||||||
this._editVoucherID = editVoucherID;
|
this._editVoucherID = editVoucherID;
|
||||||
_print = print;
|
_print = print;
|
||||||
_bill = new OrderedDictionary<BillItemKey, BillItemValue>();
|
_bill = new BillDict();
|
||||||
_billInfo = new Voucher(Session.User);
|
_billInfo = new Voucher(Session.User);
|
||||||
using (var bi = new CustomerBI(false))
|
using (var bi = new CustomerBI(false))
|
||||||
_billInfo.Customer = bi.Get(x => x.CustomerID == 1);
|
_billInfo.Customer = bi.Get(x => x.CustomerID == 1);
|
||||||
@ -80,9 +80,7 @@ namespace Tanshu.Accounts.PointOfSale
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
var billItemValue = new BillItemValue(product);
|
var billItemValue = new BillItemValue(product);
|
||||||
var old =
|
var old = _bill.FirstOrDefault(x => x.Key.BillItemType == BillItemType.Product && x.Key.ProductID == newKey.ProductID);
|
||||||
_bill.Where(x => x.Key.BillItemType == BillItemType.Product && x.Key.ProductID == newKey.ProductID).
|
|
||||||
FirstOrDefault();
|
|
||||||
if (old.Key != null)
|
if (old.Key != null)
|
||||||
{
|
{
|
||||||
billItemValue.Discount = old.Value.Discount;
|
billItemValue.Discount = old.Value.Discount;
|
||||||
@ -908,16 +906,31 @@ namespace Tanshu.Accounts.PointOfSale
|
|||||||
using (var trans = session.BeginTransaction())
|
using (var trans = session.BeginTransaction())
|
||||||
{
|
{
|
||||||
int? kotID;
|
int? kotID;
|
||||||
|
bool tableExists = false;
|
||||||
using (var bi = new VoucherBI(session, false))
|
using (var bi = new VoucherBI(session, false))
|
||||||
kotID = bi.Insert(_billInfo);
|
kotID = bi.Insert(_billInfo);
|
||||||
if (updateTable)
|
if (updateTable)
|
||||||
using (var ft = new FoodTableBI(session, false))
|
using (var ft = new FoodTableBI(session, false))
|
||||||
|
{
|
||||||
|
tableExists = ft.Get(x => x.Name == _billInfo.TableID).VoucherID == 0;
|
||||||
ft.UpdateStatus(_billInfo);
|
ft.UpdateStatus(_billInfo);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (tableExists)
|
||||||
|
{
|
||||||
|
MessageBox.Show("A bill exists on this table, cannot overrite", "Bill Open",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
trans.Rollback();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
trans.Commit();
|
trans.Commit();
|
||||||
return kotID;
|
return kotID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
private int? UpdateVoucher(bool finalBill, bool updateTable)
|
private int? UpdateVoucher(bool finalBill, bool updateTable)
|
||||||
{
|
{
|
||||||
_billInfo.User = Session.User;
|
_billInfo.User = Session.User;
|
||||||
|
12
Tanshu.Accounts.PointOfSale/Controllers/BillDict.cs
Normal file
12
Tanshu.Accounts.PointOfSale/Controllers/BillDict.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using Tanshu.Accounts.Contracts;
|
||||||
|
using Tanshu.Common;
|
||||||
|
|
||||||
|
namespace Tanshu.Accounts.PointOfSale
|
||||||
|
{
|
||||||
|
public class BillDict : OrderedDictionary<BillItemKey, BillItemValue>
|
||||||
|
{
|
||||||
|
public delegate void ItemChangedHandler();
|
||||||
|
public event ItemChangedHandler ItemChanged;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -21,9 +21,12 @@ namespace Tanshu.Accounts.PointOfSale
|
|||||||
|
|
||||||
private void ShowStatement()
|
private void ShowStatement()
|
||||||
{
|
{
|
||||||
if (DateTime.Today.Subtract(dtpStart.Value.Date).Days > 5 && !Session.IsAllowed(RoleConstants.ACCOUNTS_AUDIT))
|
if (DateTime.Today.Subtract(dtpStart.Value.Date).Days > 5 &&
|
||||||
|
!Session.IsAllowed(RoleConstants.ACCOUNTS_AUDIT))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_list = new SalesAnalysisBI().GetSale(dtpStart.Value, dtpFinish.Value);
|
_list = new SalesAnalysisBI().GetSale(dtpStart.Value, dtpFinish.Value);
|
||||||
|
|
||||||
dgvSale.AutoGenerateColumns = true;
|
dgvSale.AutoGenerateColumns = true;
|
||||||
dgvSale.DataSource = _list;
|
dgvSale.DataSource = _list;
|
||||||
dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
|
dgvSale.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
|
||||||
|
@ -103,6 +103,7 @@ namespace Tanshu.Accounts.Print
|
|||||||
billText += "\n\r" + "SCO 358, Sector 9, Panchkula".Center42();
|
billText += "\n\r" + "SCO 358, Sector 9, Panchkula".Center42();
|
||||||
billText += "\n\r" + "A Unit of Peitho Foods Pvt. Ltd.".Center42();
|
billText += "\n\r" + "A Unit of Peitho Foods Pvt. Ltd.".Center42();
|
||||||
billText += "\n\r" + "TIN: 06592507323".Center42();
|
billText += "\n\r" + "TIN: 06592507323".Center42();
|
||||||
|
billText += "\n\r" + "Service Tax: AAFCP5097GSD001".Center42();
|
||||||
switch (voucher.VoucherType)
|
switch (voucher.VoucherType)
|
||||||
{
|
{
|
||||||
case VoucherType.Regular:
|
case VoucherType.Regular:
|
||||||
|
@ -49,9 +49,9 @@ namespace Tanshu.Accounts.Repository
|
|||||||
public void UpdateStatus(Voucher voucher)
|
public void UpdateStatus(Voucher voucher)
|
||||||
{
|
{
|
||||||
string status;
|
string status;
|
||||||
if (!voucher.Printed)
|
if (!voucher.Printed && !voucher.Void)
|
||||||
status = "running";
|
status = "running";
|
||||||
else if (voucher.Settlements.Count(x => x.Settled == SettleOption.Unsettled) != 0 && voucher.Void == false)
|
else if (voucher.Settlements.Count(x => x.Settled == SettleOption.Unsettled) != 0 && !voucher.Void)
|
||||||
status = "printed";
|
status = "printed";
|
||||||
else
|
else
|
||||||
status = null;
|
status = null;
|
||||||
|
Loading…
Reference in New Issue
Block a user