964d0a78bf
Added Voucher Type During Printing Added Discount Report Fixed Void bill table not getting cleared error Added PAX to table Removed Itital Setup button in MainForm as it was not doing anything
141 lines
4.5 KiB
C#
141 lines
4.5 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using Tanshu.Accounts.Repository;
|
|
using Tanshu.Accounts.Entities;
|
|
|
|
namespace Tanshu.Accounts.PointOfSale
|
|
{
|
|
public partial class ProductForm : Form
|
|
{
|
|
private int? _productID;
|
|
public ProductForm(int? productID)
|
|
{
|
|
_productID = productID;
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void Products_Load(object sender, EventArgs e)
|
|
{
|
|
FillCombos();
|
|
if (_productID.HasValue)
|
|
{
|
|
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("#.##");
|
|
txtFullPrice.Text = product.FullPrice.ToString("#.##");
|
|
cmbTax.SelectedValue = product.Tax.TaxID;
|
|
txtServiceCharge.Text = product.ServiceCharge.ToString("#.##");
|
|
chkDiscontinued.Checked = product.Discontinued;
|
|
cmbProductGroup.SelectedValue = product.ProductGroup.ProductGroupID;
|
|
txtSortOrder.Text = product.SortOrder.ToString();
|
|
}
|
|
else
|
|
{
|
|
txtProductID.Text = "(Auto)";
|
|
txtName.Focus();
|
|
}
|
|
}
|
|
|
|
private void FillCombos()
|
|
{
|
|
using (var bi = new ProductGroupBI())
|
|
bsProductGroups.DataSource = bi.List();
|
|
using (var bi = new TaxBI())
|
|
bsTax.DataSource = bi.List();
|
|
}
|
|
|
|
private void btnAddCategory_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new ProductGroupListForm())
|
|
frm.ShowDialog();
|
|
FillCombos();
|
|
cmbProductGroup.SelectedIndex = -1;
|
|
}
|
|
|
|
private Product IsFormValid()
|
|
{
|
|
var product = new Product();
|
|
|
|
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 (price < 0)
|
|
return null;
|
|
product.Price = price;
|
|
|
|
if (!decimal.TryParse(txtFullPrice.Text, out price))
|
|
return null;
|
|
if (price < 0 || price < product.Price)
|
|
return null;
|
|
product.FullPrice = price;
|
|
|
|
// Tax
|
|
if (cmbTax.SelectedItem == null)
|
|
return null;
|
|
product.Tax = (Tax)cmbTax.SelectedItem;
|
|
|
|
decimal serviceCharge;
|
|
if (!decimal.TryParse(txtServiceCharge.Text, out serviceCharge))
|
|
return null;
|
|
if (serviceCharge < 0 || serviceCharge > 1)
|
|
return null;
|
|
product.ServiceCharge = serviceCharge;
|
|
|
|
product.Discontinued = chkDiscontinued.Checked;
|
|
int sortOrder;
|
|
if (!int.TryParse(txtSortOrder.Text, out sortOrder))
|
|
return null;
|
|
product.SortOrder = sortOrder;
|
|
|
|
//Group
|
|
if (cmbProductGroup.SelectedItem == null)
|
|
return null;
|
|
product.ProductGroup = (ProductGroup)cmbProductGroup.SelectedItem;
|
|
return product;
|
|
}
|
|
|
|
private void btnOk_Click(object sender, EventArgs e)
|
|
{
|
|
var product = IsFormValid();
|
|
if (product != null)
|
|
{
|
|
using (var bi = new ProductBI())
|
|
if (_productID.HasValue)
|
|
bi.Update(product);
|
|
else
|
|
bi.Insert(product);
|
|
MessageBox.Show("Update / Save Successful");
|
|
this.Close();
|
|
}
|
|
else
|
|
MessageBox.Show("The form is not valid");
|
|
}
|
|
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
}
|
|
} |