2011-06-23 12:47:48 +00:00
|
|
|
|
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;
|
|
|
|
|
txtSalePrice.Text = product.SalePrice.ToString("#.##");
|
|
|
|
|
cmbTax.SelectedValue = product.Tax.TaxID;
|
|
|
|
|
txtServiceCharge.Text = product.ServiceCharge.ToString("#.##");
|
|
|
|
|
chkDiscontinued.Checked = product.Discontinued;
|
|
|
|
|
cmbProductGroup.SelectedValue = product.ProductGroup.ProductGroupID;
|
2011-06-29 20:27:07 +00:00
|
|
|
|
txtSortOrder.Text = product.SortOrder.ToString();
|
2011-06-23 12:47:48 +00:00
|
|
|
|
}
|
|
|
|
|
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();
|
2011-06-29 20:27:07 +00:00
|
|
|
|
//if (string.IsNullOrEmpty(txtUnits.Text.Trim()))
|
|
|
|
|
// return null;
|
2011-06-23 12:47:48 +00:00
|
|
|
|
product.Units = txtUnits.Text.Trim();
|
|
|
|
|
|
|
|
|
|
decimal salePrice;
|
|
|
|
|
if (!decimal.TryParse(txtSalePrice.Text, out salePrice))
|
|
|
|
|
return null;
|
|
|
|
|
if (salePrice < 0)
|
|
|
|
|
return null;
|
|
|
|
|
product.SalePrice = salePrice;
|
|
|
|
|
|
|
|
|
|
// 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;
|
2011-06-29 20:27:07 +00:00
|
|
|
|
int sortOrder;
|
|
|
|
|
if (!int.TryParse(txtSortOrder.Text, out sortOrder))
|
|
|
|
|
return null;
|
|
|
|
|
product.SortOrder = sortOrder;
|
2011-06-23 12:47:48 +00:00
|
|
|
|
|
|
|
|
|
//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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|