2021-11-12 07:01:54 +00:00
|
|
|
|
///
|
|
|
|
|
|
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
|
|
|
|
|
///
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using log4net;
|
2021-12-01 13:12:41 +00:00
|
|
|
|
using NHibernate;
|
2021-11-12 07:01:54 +00:00
|
|
|
|
using Common;
|
|
|
|
|
|
using SharedDatabase.Entities;
|
|
|
|
|
|
using OrderManagement.Resources;
|
|
|
|
|
|
using Common.Forms;
|
|
|
|
|
|
|
|
|
|
|
|
namespace OrderManagement
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class OrderManagementDlg : Form
|
|
|
|
|
|
{
|
|
|
|
|
|
private static readonly ILog log = LogManager.GetLogger(typeof(OrderManagementDlg));
|
|
|
|
|
|
|
2021-12-01 13:12:41 +00:00
|
|
|
|
public const int MaxPredefinedOrderNr = 1000;
|
|
|
|
|
|
|
|
|
|
|
|
ISession session;
|
|
|
|
|
|
IList<OrderInfo> listOfOrders;
|
2021-12-14 13:58:18 +00:00
|
|
|
|
IList<Process> listOfWorkflows;
|
2021-11-12 07:01:54 +00:00
|
|
|
|
|
|
|
|
|
|
MySortOrder sortOrder = MySortOrder.Ascending;
|
|
|
|
|
|
int sortColumn = -1; /// 0-based index of column to be used for sorting
|
|
|
|
|
|
|
|
|
|
|
|
public OrderManagementDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
string culture = Program.LocalSettings.Language.Replace('_', '-');
|
|
|
|
|
|
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show("Selected language is not supported.\nUsing English.",
|
|
|
|
|
|
"Warning", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
|
|
|
|
|
System.Threading.Thread.CurrentThread.CurrentUICulture =
|
|
|
|
|
|
new System.Globalization.CultureInfo("en");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
|
|
|
|
|
Text = string.Format("{0} v.{1}", Program.ProgramName, Program.Version); ;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-12-14 13:58:18 +00:00
|
|
|
|
public OrderManagementDlg(ISession session, IList<OrderInfo> listOfOrders, IList<Process> listOfWorkflows)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
: this()
|
|
|
|
|
|
{
|
|
|
|
|
|
this.session = session;
|
|
|
|
|
|
this.listOfOrders = listOfOrders;
|
2021-12-14 13:58:18 +00:00
|
|
|
|
this.listOfWorkflows = listOfWorkflows;
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void OrderManagementDlg_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
Localize();
|
|
|
|
|
|
|
|
|
|
|
|
InitializeColumns(listViewEx1);
|
2021-12-01 13:12:41 +00:00
|
|
|
|
if (Program.LocalSettings.IsShowPredefinedOrders)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var oi in listOfOrders) AddRow(listViewEx1, oi);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
int orderNr;
|
|
|
|
|
|
foreach (var oi in listOfOrders)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (int.TryParse(oi.POName, out orderNr) && orderNr > MaxPredefinedOrderNr)
|
|
|
|
|
|
{
|
|
|
|
|
|
AddRow(listViewEx1, oi);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Localize()
|
|
|
|
|
|
{
|
|
|
|
|
|
settingsToolStripMenuItem.Text = Strings.Settings;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
enum Clmn
|
|
|
|
|
|
{
|
|
|
|
|
|
Order,
|
|
|
|
|
|
State,
|
|
|
|
|
|
Workflow,
|
|
|
|
|
|
Procedure,
|
|
|
|
|
|
Variant,
|
2021-12-14 13:58:18 +00:00
|
|
|
|
VacoDescr,
|
|
|
|
|
|
MadeInText,
|
2022-01-11 11:13:00 +00:00
|
|
|
|
Year,
|
2021-12-07 09:15:59 +00:00
|
|
|
|
ModuleParam,
|
2021-11-16 22:15:30 +00:00
|
|
|
|
LaserMarking,
|
2021-12-14 13:58:18 +00:00
|
|
|
|
Packing,
|
2021-11-12 07:01:54 +00:00
|
|
|
|
Pieces,
|
|
|
|
|
|
SNPrefix,
|
|
|
|
|
|
SNFirst,
|
|
|
|
|
|
SNDigitsCount,
|
|
|
|
|
|
SNSuffix,
|
|
|
|
|
|
RAPrefix,
|
|
|
|
|
|
RAFirst,
|
|
|
|
|
|
RASuffix,
|
|
|
|
|
|
Remark,
|
|
|
|
|
|
Count
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void InitializeColumns(ListView lv)
|
|
|
|
|
|
{
|
2022-01-11 11:13:00 +00:00
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Order, Width = 65 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.State, Width = 65 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Workflow, Width = 100 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Test_procedure, Width = 200 });
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Variant_code, Width = 150 });
|
2022-01-11 11:13:00 +00:00
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Variant_description, Width = 100 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Made_in_text, Width = 100 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Year_of_calibration, Width = 50 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Module_parameter, Width = 100 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Laser_marking, Width = 100 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Packing, Width = 100 });
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Pieces_count, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.prefix, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.first, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.digits_count, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.SN + " " + Strings.suffix, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.RA + " " + Strings.prefix, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.RA + " " + Strings.first, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.RA + " " + Strings.suffix, Width = 80 });
|
|
|
|
|
|
lv.Columns.Add(new ColumnHeader { Text = Strings.Remark, Width = 200 });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void AddRow(ListView lv, OrderInfo o)
|
|
|
|
|
|
{
|
|
|
|
|
|
ListViewItem lvi = new ListViewItem(o.POName);
|
|
|
|
|
|
lvi.SubItems.Add(((OrderState)o.POState).ToString());
|
|
|
|
|
|
lvi.SubItems.Add(o.Workflow);
|
|
|
|
|
|
lvi.SubItems.Add(o.TestProcedure);
|
|
|
|
|
|
lvi.SubItems.Add(o.VariantCode);
|
2021-12-14 13:58:18 +00:00
|
|
|
|
lvi.SubItems.Add(o.VacoDescription);
|
|
|
|
|
|
lvi.SubItems.Add(o.MadeInText);
|
2022-01-11 11:13:00 +00:00
|
|
|
|
lvi.SubItems.Add(o.Year.ToString());
|
2021-12-07 09:15:59 +00:00
|
|
|
|
lvi.SubItems.Add(o.ModuleParam);
|
2021-11-16 22:15:30 +00:00
|
|
|
|
lvi.SubItems.Add(o.LaserMarking);
|
2021-12-14 13:58:18 +00:00
|
|
|
|
lvi.SubItems.Add(o.Packing);
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lvi.SubItems.Add(o.PiecesCount.ToString());
|
|
|
|
|
|
lvi.SubItems.Add(o.SNPrefix);
|
|
|
|
|
|
lvi.SubItems.Add(o.SNFirst.ToString(string.Format("D{0}", o.SNDigitsCount)));
|
|
|
|
|
|
lvi.SubItems.Add(o.SNDigitsCount.ToString());
|
|
|
|
|
|
lvi.SubItems.Add(o.SNSuffix);
|
|
|
|
|
|
lvi.SubItems.Add(o.RAPrefix);
|
2022-01-13 12:14:01 +00:00
|
|
|
|
lvi.SubItems.Add(o.RAFirst.ToString(SharedDatabase.Const.RAFormat));
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lvi.SubItems.Add(o.RASuffix);
|
|
|
|
|
|
lvi.SubItems.Add(o.Remark);
|
|
|
|
|
|
lvi.Tag = o;
|
|
|
|
|
|
lv.Items.Add(lvi);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UpdateRow(ListViewItem lvi, OrderInfo o)
|
|
|
|
|
|
{
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.POName;
|
|
|
|
|
|
lvi.SubItems[i++].Text = ((OrderState)o.POState).ToString();
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.Workflow;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.TestProcedure;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.VariantCode;
|
2021-12-14 13:58:18 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.VacoDescription;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.MadeInText;
|
2022-01-11 11:13:00 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.Year.ToString();
|
2021-12-07 09:15:59 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.ModuleParam;
|
2021-11-16 22:15:30 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.LaserMarking;
|
2021-12-14 13:58:18 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.Packing;
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.PiecesCount.ToString();
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.SNPrefix;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.SNFirst.ToString(string.Format("D{0}", o.SNDigitsCount));
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.SNDigitsCount.ToString();
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.SNSuffix;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.RAPrefix;
|
2022-01-13 12:14:01 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.RAFirst.ToString(SharedDatabase.Const.RAFormat);
|
2021-11-12 07:01:54 +00:00
|
|
|
|
lvi.SubItems[i++].Text = o.RASuffix;
|
|
|
|
|
|
lvi.SubItems[i++].Text = o.Remark;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void settingsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
Common.GlobalData.RemoteUsersDB = new Common.DBSettings(Common.DBType.MySql, Program.LocalSettings.UsersDBConnString);
|
|
|
|
|
|
|
|
|
|
|
|
DialogResult dr = new SharedDatabase.Forms.LoginDlg().ShowDialog();
|
|
|
|
|
|
if (dr != DialogResult.OK) return;
|
|
|
|
|
|
|
|
|
|
|
|
dr = new SettingsDlg(Program.LocalSettings).ShowDialog();
|
|
|
|
|
|
if (dr == DialogResult.OK)
|
|
|
|
|
|
{
|
|
|
|
|
|
Program.LocalSettings.Save();
|
|
|
|
|
|
MessageBox.Show(Strings.Program_restart_is_required);
|
|
|
|
|
|
Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception exc)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.ErrorFormat("Failed to connect to the database of users: {0}", exc.Message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void closeButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
DialogResult = DialogResult.OK;
|
|
|
|
|
|
Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void addButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
///
|
|
|
|
|
|
/// Determine the next production order name
|
|
|
|
|
|
///
|
|
|
|
|
|
string candidatePOName = string.Empty;
|
|
|
|
|
|
int candidatePONr;
|
|
|
|
|
|
foreach (var o in listOfOrders)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.Compare(candidatePOName, o.POName, StringComparison.InvariantCulture) < 0) candidatePOName = o.POName;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (int.TryParse(candidatePOName, out candidatePONr))
|
|
|
|
|
|
{
|
|
|
|
|
|
candidatePONr++;
|
|
|
|
|
|
candidatePOName = candidatePONr.ToString(string.Format("D{0}", candidatePOName.Length));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
|
/// Create and edit the order
|
|
|
|
|
|
///
|
|
|
|
|
|
var order = new OrderInfo(candidatePOName);
|
|
|
|
|
|
|
2021-12-01 13:12:41 +00:00
|
|
|
|
if (new EditOrderDlg(session, order, listOfOrders, Program.LocalSettings.IsShowPredefinedOrders).ShowDialog()
|
|
|
|
|
|
== DialogResult.OK)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
|
|
|
|
|
listOfOrders.Add(order);
|
|
|
|
|
|
AddRow(listViewEx1, order);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void listViewEx1_DoubleClick(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
|
|
|
|
|
|
|
|
|
|
|
OrderInfo order = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
|
|
|
|
|
if (order.POState == (sbyte)OrderState.New)
|
|
|
|
|
|
{
|
|
|
|
|
|
editButton_Click(sender, e);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
new OrderStateDlg(session, order).ShowDialog();
|
|
|
|
|
|
}
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void editButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
|
|
|
|
|
|
|
|
|
|
|
OrderInfo order = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
|
|
|
|
|
if (order.POState == (sbyte)OrderState.New)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
2021-12-01 13:12:41 +00:00
|
|
|
|
if (new EditOrderDlg(session, order, listOfOrders, Program.LocalSettings.IsShowPredefinedOrders, true).ShowDialog()
|
|
|
|
|
|
== DialogResult.OK)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
UpdateRow(listViewEx1.SelectedItems[0], order);
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-11-16 22:15:30 +00:00
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show(Strings.You_can_only_edit_New_porduction_orders);
|
|
|
|
|
|
}
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-12-10 06:57:32 +00:00
|
|
|
|
private void copyButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
|
|
|
|
|
OrderInfo oriOrder = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
|
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
|
/// Determine the next production order name
|
|
|
|
|
|
///
|
|
|
|
|
|
string candidatePOName = string.Empty;
|
|
|
|
|
|
int candidatePONr;
|
|
|
|
|
|
foreach (var o in listOfOrders)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.Compare(candidatePOName, o.POName, StringComparison.InvariantCulture) < 0) candidatePOName = o.POName;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (int.TryParse(candidatePOName, out candidatePONr))
|
|
|
|
|
|
{
|
|
|
|
|
|
candidatePONr++;
|
|
|
|
|
|
candidatePOName = candidatePONr.ToString(string.Format("D{0}", candidatePOName.Length));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///
|
|
|
|
|
|
/// Create and edit the order
|
|
|
|
|
|
///
|
|
|
|
|
|
OrderInfo newOrder = oriOrder.Clone() as OrderInfo;
|
|
|
|
|
|
newOrder.POName = candidatePOName;
|
|
|
|
|
|
newOrder.POState = (sbyte)OrderState.New;
|
|
|
|
|
|
newOrder.SNFirst = oriOrder.SNFirst + oriOrder.PiecesCount; /// TODO
|
|
|
|
|
|
newOrder.RAFirst = oriOrder.RAFirst + oriOrder.PiecesCount; /// TODO
|
|
|
|
|
|
newOrder.BaseNr1 = 0;
|
|
|
|
|
|
newOrder.BaseNr2 = 0;
|
|
|
|
|
|
newOrder.BaseNr3 = 0;
|
|
|
|
|
|
newOrder.BaseNr4 = 0;
|
|
|
|
|
|
newOrder.BaseNr5 = 0;
|
2021-12-15 06:04:17 +00:00
|
|
|
|
newOrder.CurrentPcsCount = 0;
|
|
|
|
|
|
newOrder.CurrentSN = 0;
|
|
|
|
|
|
newOrder.CurrentRA = 0;
|
|
|
|
|
|
newOrder.CurrentNr1 = 0;
|
|
|
|
|
|
newOrder.CurrentNr2 = 0;
|
|
|
|
|
|
newOrder.CurrentNr3 = 0;
|
|
|
|
|
|
newOrder.CurrentNr4 = 0;
|
|
|
|
|
|
newOrder.CurrentNr5 = 0;
|
2021-12-10 06:57:32 +00:00
|
|
|
|
newOrder.Remark = string.Format("Copy of order {0}", oriOrder.POName);
|
|
|
|
|
|
|
|
|
|
|
|
if (new EditOrderDlg(session, newOrder, listOfOrders, Program.LocalSettings.IsShowPredefinedOrders).ShowDialog()
|
|
|
|
|
|
== DialogResult.OK)
|
|
|
|
|
|
{
|
|
|
|
|
|
listOfOrders.Add(newOrder);
|
|
|
|
|
|
AddRow(listViewEx1, newOrder);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-11-12 07:01:54 +00:00
|
|
|
|
private void deleteButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
|
|
|
|
|
|
|
|
|
|
|
OrderInfo order = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
|
|
|
|
|
if (order.POState == (sbyte)OrderState.New)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
if (MessageBox.Show(Strings.Are_you_sure, Strings.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
try
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
2021-11-16 22:15:30 +00:00
|
|
|
|
session.Delete(order);
|
|
|
|
|
|
session.Flush();
|
|
|
|
|
|
listOfOrders.Remove(order);
|
|
|
|
|
|
listViewEx1.Items.Remove(listViewEx1.SelectedItems[0]);
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception exc)
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show(string.Format("Deleting an order failed\r\n{0}", exc.Message));
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-11-16 22:15:30 +00:00
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show(Strings.You_can_only_delete_New_porduction_orders);
|
|
|
|
|
|
}
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void listViewEx1_ColumnClick(object sender, ColumnClickEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.Column == sortColumn)
|
|
|
|
|
|
{
|
|
|
|
|
|
/// Clicked on the same column header => increment to the next applicable MySortOrder
|
|
|
|
|
|
sortOrder = (sortOrder == MySortOrder.Ascending) ? MySortOrder.Descending : MySortOrder.Ascending;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
/// Clicked on another column header => set sortOrder to MySortOrder.Ascending
|
|
|
|
|
|
sortColumn = e.Column;
|
|
|
|
|
|
sortOrder = MySortOrder.Ascending;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-12-07 09:15:59 +00:00
|
|
|
|
if (sortColumn == (int)Clmn.Pieces || sortColumn == (int)Clmn.SNFirst ||
|
|
|
|
|
|
sortColumn == (int)Clmn.SNDigitsCount || sortColumn == (int)Clmn.RAFirst)
|
2021-11-12 07:01:54 +00:00
|
|
|
|
{
|
|
|
|
|
|
listViewEx1.ListViewItemSorter = new LviIntColumnComparer(sortColumn, sortOrder);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
listViewEx1.ListViewItemSorter = new LviTextColumnComparer(sortColumn, sortOrder);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
listViewEx1.SetSortIcon(sortColumn, sortOrder);
|
|
|
|
|
|
listViewEx1.Sort();
|
|
|
|
|
|
}
|
2021-11-16 22:15:30 +00:00
|
|
|
|
|
|
|
|
|
|
private void printButton_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (listViewEx1.SelectedItems.Count != 1 || !(listViewEx1.SelectedItems[0].Tag is OrderInfo)) return;
|
|
|
|
|
|
|
|
|
|
|
|
OrderInfo order = listViewEx1.SelectedItems[0].Tag as OrderInfo;
|
|
|
|
|
|
|
|
|
|
|
|
new OrderPrintDocument(order).Print();
|
|
|
|
|
|
}
|
2021-11-12 07:01:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|