2d1030abf6
Changed inventory and product entities to split Vat and Service Tax and IsScTaxable. Added MessageBox on startup to inform about Debug Mode. Updated ProductForm for the change. Work still needs to be done on Thermal Printing where the hack for VAT on Food and VAT on Liqour is still there. Now No Service Tax on Delivery Works as promised.
282 lines
9.3 KiB
C#
282 lines
9.3 KiB
C#
using System;
|
|
using System.Text.RegularExpressions;
|
|
using System.Windows.Forms;
|
|
using Tanshu.Accounts.Contracts;
|
|
using Tanshu.Accounts.Entities;
|
|
using Tanshu.Accounts.Entities.Auth;
|
|
using Tanshu.Accounts.Helpers;
|
|
using Tanshu.Accounts.Management;
|
|
using Tanshu.Accounts.PointOfSale.Sales;
|
|
using Tanshu.Accounts.Repository;
|
|
using Tanshu.Common;
|
|
using Tanshu.Common.KeyboardControl;
|
|
|
|
namespace Tanshu.Accounts.PointOfSale
|
|
{
|
|
public enum LoginType
|
|
{
|
|
Keyboard,
|
|
Msr
|
|
}
|
|
public partial class MainForm : Form
|
|
{
|
|
public MainForm()
|
|
{
|
|
//using (var frm = new SplashForm())
|
|
// frm.ShowDialog();
|
|
|
|
SessionManager.Initialize();
|
|
InitializeComponent();
|
|
}
|
|
|
|
private User form_userEvent(object sender, UserEventArgs e)
|
|
{
|
|
var user = e.User;
|
|
|
|
if (user == null)
|
|
using (var form = new UserForm(null))
|
|
form.ShowDialog();
|
|
else
|
|
using (var form = new UserForm(user.UserID))
|
|
form.ShowDialog();
|
|
|
|
e.Handled = true;
|
|
return new User();
|
|
}
|
|
|
|
private void btnLogin_Click(object sender, EventArgs e)
|
|
{
|
|
LoginUser(LoginType.Keyboard);
|
|
}
|
|
|
|
private void btnSale_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SALES))
|
|
using (var frmSale = new SalesForm(new BillController(null, true)))
|
|
frmSale.ShowDialog();
|
|
}
|
|
|
|
private void btnProduct_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.PRODUCTS))
|
|
using (var frm = new ProductListForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnProductGroup_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.PRODUCTS))
|
|
using (var frm = new ProductGroupListForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnCustomer_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new CustomersForm(null, ""))
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnAdvanceReceive_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SALES))
|
|
using (var frm = new frmRecieveAdvance())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnAdvanceAdjust_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SALES))
|
|
using (var frm = new frmAdjustAdvance())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
private void btnCreateUser_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SECURITY_MANAGE_ROLES))
|
|
using (var bi = new UserBI())
|
|
{
|
|
using (var form = new SelectUser(bi.GetFilteredUsers, true))
|
|
{
|
|
form.UserEvent += form_userEvent;
|
|
form.ShowDialog();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void btnUserRoles_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SECURITY_MANAGE_ROLES))
|
|
using (var frm = new AssignUserGroups())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnChangePassword_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new ChangePassword(new KeyboardControl()))
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnCashierCheckout_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.CASHIER_CHECKOUT))
|
|
using (var frm = new CashierCheckoutForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnSaleAnalysis_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SALE_ANALYSIS))
|
|
using (var frm = new frmSaleAnalysisForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnSaleDetail_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SALE_DETAIL))
|
|
using (var frm = new FrmSaleDetail())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void MainForm_Load(object sender, EventArgs e)
|
|
{
|
|
#if (DEBUG)
|
|
MessageBox.Show("This software does not print kots!!!","Debug Mode", MessageBoxButtons.OK , MessageBoxIcon.Exclamation);
|
|
#endif
|
|
CheckRoles();
|
|
}
|
|
|
|
private void CheckRoles()
|
|
{
|
|
btnSale.Visible = Session.IsAllowed(RoleConstants.SALES);
|
|
|
|
btnProduct.Visible = Session.IsAllowed(RoleConstants.PRODUCTS);
|
|
btnProductGroup.Visible = Session.IsAllowed(RoleConstants.PRODUCTS);
|
|
|
|
btnOpenBill.Visible = Session.IsAllowed(RoleConstants.OPEN_BILL);
|
|
|
|
btnCustomer.Visible = Session.IsAllowed(RoleConstants.CUSTOMERS);
|
|
|
|
btnAdvanceReceive.Visible = Session.IsAllowed(RoleConstants.RECEIVE_ADVANCE);
|
|
|
|
btnAdvanceAdjust.Visible = Session.IsAllowed(RoleConstants.ADJUST_ADVANCE);
|
|
|
|
btnCreateUser.Visible = Session.IsAllowed(RoleConstants.SECURITY_MANAGE_USERS);
|
|
btnUserRoles.Visible = Session.IsAllowed(RoleConstants.SECURITY_MANAGE_USERS);
|
|
|
|
btnGroupRoles.Visible = Session.IsAllowed(RoleConstants.SECURITY_MANAGE_ROLES);
|
|
|
|
btnCashierCheckout.Visible = Session.IsAllowed(RoleConstants.CASHIER_CHECKOUT);
|
|
btnSaleAnalysis.Visible = Session.IsAllowed(RoleConstants.SALE_ANALYSIS);
|
|
btnSaleDetail.Visible = Session.IsAllowed(RoleConstants.SALE_DETAIL);
|
|
|
|
btnBillDetails.Visible = Session.IsAllowed(RoleConstants.BILL_DETAILS);
|
|
btnVoidOrReprints.Visible = Session.IsAllowed(RoleConstants.VOID_OR_REPRINTED_BILL_REPORT);
|
|
btnDiscountReport.Visible = Session.IsAllowed(RoleConstants.VOID_OR_REPRINTED_BILL_REPORT);
|
|
|
|
btnChangePassword.Visible = Session.IsAuthenticated;
|
|
btnManagement.Visible = false;
|
|
}
|
|
|
|
private void btnGroupRoles_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.SECURITY_MANAGE_ROLES))
|
|
using (var frm = new AssignGroupRoles())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnSwipeLogin_Click(object sender, EventArgs e)
|
|
{
|
|
LoginUser(LoginType.Msr);
|
|
}
|
|
|
|
private void LoginUser(LoginType loginType)
|
|
{
|
|
ILogin login;
|
|
switch (loginType)
|
|
{
|
|
case LoginType.Keyboard:
|
|
login = new KeyboardLogin();
|
|
break;
|
|
case LoginType.Msr:
|
|
login = new MsrLogin();
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
|
|
if (!Session.IsAuthenticated)
|
|
{
|
|
if (login.LoginUser())
|
|
{
|
|
Text = "Main Menu - User: " + Session.User.Name;
|
|
btnLogin.Text = "Logout";
|
|
btnSwipeLogin.Visible = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
login.LogoutUser();
|
|
Text = "Main Menu - Login";
|
|
btnLogin.Text = "Login";
|
|
btnSwipeLogin.Visible = true;
|
|
}
|
|
CheckRoles();
|
|
}
|
|
|
|
private void btnOpenBill_Click(object sender, EventArgs e)
|
|
{
|
|
if (!Session.IsAllowed(RoleConstants.OPEN_BILL))
|
|
return;
|
|
var result = InputBox.Show("Bill Number", "0", InputBox_Validating);
|
|
if (!result.OK)
|
|
return;
|
|
Voucher voucher;
|
|
using (var bi = new VoucherBI(false))
|
|
voucher = bi.Get(x => x.BillID == result.Text);
|
|
if (Session.IsAllowed(RoleConstants.SALES))
|
|
using (var frmSale = new SalesForm(new BillController(voucher.VoucherID, true)))
|
|
frmSale.ShowDialog();
|
|
}
|
|
|
|
private static void InputBox_Validating(object sender, InputBoxValidatingArgs e)
|
|
{
|
|
if (Regex.IsMatch(e.Text, @"^\d+-\d\d\d\d")) return;
|
|
e.Cancel = true;
|
|
e.Message = "Bill No should be in format ##-####";
|
|
}
|
|
|
|
private void btnBillDetails_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.BILL_DETAILS))
|
|
using (var frm = new BillDetailsForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnVoidOrReprints_Click(object sender, EventArgs e)
|
|
{
|
|
if (Session.IsAllowed(RoleConstants.VOID_OR_REPRINTED_BILL_REPORT))
|
|
using (var frm = new VoidReprintedForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnManagement_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new QuantityForm())
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void btnDiscountReport_Click(object sender, EventArgs e)
|
|
{
|
|
using (var frm = new DiscountReportForm())
|
|
frm.ShowDialog();
|
|
|
|
}
|
|
|
|
|
|
}
|
|
} |