Biskilog POS desktop appilcation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

210 lines
8.2 KiB

using BiskLog_Point_Of_Sale;
using BiskLog_Point_Of_Sale.Multiple_Login;
using BiskLog_Point_Of_Sale.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Point_Of_Sale_Managment
{
public partial class AddUser : Form
{
users userMain;
SqlConnection cn;
SqlCommand cm;
SqlTransaction transaction;
DatabaseConn conn = new DatabaseConn();
public AddUser(users usr)
{
InitializeComponent();
cn = new SqlConnection(conn.MyConnection());
userMain = usr;
}
private async void Button1_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(txtlogin.Text) && !String.IsNullOrEmpty(txtFirstname.Text) && !String.IsNullOrEmpty(txtSurname.Text) && !String.IsNullOrEmpty(txtpassword.Text)
&& !String.IsNullOrEmpty(txtconfirmation.Text) && !String.IsNullOrEmpty(txtTelephone.Text) && !String.IsNullOrEmpty(boxAccess.Text))
{
if (txtconfirmation.Text.Equals(txtpassword.Text))
{
Task<int> task = new Task<int>(createUser);
loading.Visible = true;
button1.Enabled = false;
button2.Enabled = false;
task.Start();
int result = await task;
if (result == 1)
{
string title = "Success";
string message = "User account has been created successfully, please advice users to change their passwords after first logins";
NoAction noAction = new NoAction(title, message);
noAction.BringToFront();
noAction.ShowDialog();
userMain.LoadUsers();
this.Close();
}
else if (result == 2)
{
string title = "Username not available";
string message = "This username has already been taken by another user in this branch or a different branch, change username to create a new user.";
NoAction noAction = new NoAction(title, message);
noAction.BringToFront();
noAction.ShowDialog();
}
else
{
string title = "Account not created";
string message = "Unable to create user account, please try again later";
NoAction noAction = new NoAction(title, message);
noAction.BringToFront();
noAction.ShowDialog();
}
loading.Visible = false;
button1.Enabled = true;
button2.Enabled = true;
}
else
{
string title = "Passwords do not match";
string message = "Passwords do not match, make sure they match to be able to continue";
NoAction noAction = new NoAction(title, message);
noAction.BringToFront();
noAction.ShowDialog();
}
}
else
{
a1.Visible = true;
a2.Visible = true;
a3.Visible = true;
a4.Visible = true;
a5.Visible = true;
a6.Visible = true;
a7.Visible = true;
string title = "Essential fields empty";
string message = "Fields with asterisk have to be filled to continue";
NoAction noAction = new NoAction(title, message);
noAction.BringToFront();
noAction.ShowDialog();
}
}
private void Button2_Click(object sender, EventArgs e)
{
this.Close();
}
public int createUser()
{
try
{
cn.Open();
transaction = cn.BeginTransaction();
cm = new SqlCommand("Insert into tblUsers (username,password,firstname,surname,street_address1,street_address2,city," +
"state_or_province,telephone,email,access_level,branchID) values (@username,@password,@firstname,@surname,@street_address1,@street_address2,@city," +
"@state_or_province,@telephone,@email,@access_level,@branchID)", cn);
txtlogin.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@username", txtlogin.Text);
}));
txtpassword.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@password", passwordEncryption.Encrypt(txtpassword.Text));
}));
txtFirstname.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@firstname", txtFirstname.Text);
}));
txtSurname.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@surname", txtSurname.Text);
}));
txtStreet.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@street_address1", txtStreet.Text);
}));
txtStreet2.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@street_address2", txtStreet2.Text);
}));
txtCityLocale.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@city", txtCityLocale.Text);
}));
txtState.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@state_or_province", txtState.Text);
}));
txtTelephone.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@telephone", txtTelephone.Text);
}));
txtEmail.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@email", txtEmail.Text);
}));
boxAccess.Invoke(new Action(() =>
{
cm.Parameters.AddWithValue("@access_level", (boxAccess.SelectedItem as ComboboxItem).Value.ToString());
}));
cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID);
cm.Transaction = transaction;
cm.ExecuteNonQuery();
transaction.Commit();
cn.Close();
return 1;
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
transaction.Rollback();
cn.Close();
return 2;
}
else
{
transaction.Rollback();
cn.Close();
return 3;
}
}
catch
{
transaction.Rollback();
cn.Close();
return 4;
}
}
private void AddUser_Load(object sender, EventArgs e)
{
boxAccess.Items.Clear();
ComboboxItem combobox = new ComboboxItem();
combobox.Text = "Owner";
combobox.Value = "owner";
boxAccess.Items.Add(combobox);
ComboboxItem combobox1 = new ComboboxItem();
combobox1.Text = "Manager";
combobox1.Value = "manager";
boxAccess.Items.Add(combobox1);
ComboboxItem combobox2 = new ComboboxItem();
combobox2.Text = "Assistant Manager";
combobox2.Value = "assist";
boxAccess.Items.Add(combobox2);
ComboboxItem combobox3 = new ComboboxItem();
combobox3.Text = "Cashier";
combobox3.Value = "cashier";
boxAccess.Items.Add(combobox3);
}
}
}