Changes for 620 meters, OrderInfo is updated in DataEntry.S620 form session.
This commit is contained in:
@@ -132,49 +132,12 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
|
|
||||||
delegate void EntryFormDlgt(EntryForm myRef);
|
delegate void EntryFormDlgt(EntryForm myRef);
|
||||||
///
|
///
|
||||||
void UpdateOrderWorkflow(out string order, out string workflow)
|
|
||||||
{
|
|
||||||
if (ProcessData.OrderInfo is SharedDatabase.Entities.OrderInfo && ProcessData.TracingDB != null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ISession session = ProcessData.TracingDB.SessionFactory.OpenSession();
|
|
||||||
order = Program.MainWnd.SelectedProcedure.OrderInfo.POName;
|
|
||||||
var list = session.QueryOver<SharedDatabase.Entities.OrderInfo>()
|
|
||||||
.Where(x => (x.POName == Program.MainWnd.SelectedProcedure.OrderInfo.POName))
|
|
||||||
.List();
|
|
||||||
ProcessData.OrderInfo = (list.Count == 1) ? list[0] : null;
|
|
||||||
workflow = (list.Count == 1) ? list[0].Workflow : null;
|
|
||||||
ProcessData.WorkflowSummary = SharedDatabase.WorkflowSummary.ReadFromDB(workflow, "test", session);
|
|
||||||
session.Close();
|
|
||||||
}
|
|
||||||
catch (Exception exc)
|
|
||||||
{
|
|
||||||
order = string.Empty;
|
|
||||||
workflow = string.Empty;
|
|
||||||
ProcessData.OrderInfo = null;
|
|
||||||
ProcessData.WorkflowSummary = null;
|
|
||||||
|
|
||||||
log.ErrorFormat("Unable to load order, workflow or workstep: {0}", exc.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
order = string.Empty;
|
|
||||||
workflow = string.Empty;
|
|
||||||
ProcessData.OrderInfo = null;
|
|
||||||
ProcessData.WorkflowSummary = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
///
|
|
||||||
void OnCycleStart(EntryForm myRef)
|
void OnCycleStart(EntryForm myRef)
|
||||||
{
|
{
|
||||||
if (entryFormCfg.ProductionTracing)
|
if (entryFormCfg.ProductionTracing)
|
||||||
{
|
{
|
||||||
string order, workflow;
|
|
||||||
UpdateOrderWorkflow(out order, out workflow);
|
|
||||||
myRef.modelessDlg = new FormForMechanicalMetersWithTracing(waterMeters, entryFormCfg.MaxWMsCount, entryFormCfg.CloseButton, false,
|
myRef.modelessDlg = new FormForMechanicalMetersWithTracing(waterMeters, entryFormCfg.MaxWMsCount, entryFormCfg.CloseButton, false,
|
||||||
true, entryFormCfg.OrdersFromProdTracing, order, workflow);
|
true, entryFormCfg.OrdersFromProdTracing);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -189,10 +152,8 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
{
|
{
|
||||||
if (entryFormCfg.ProductionTracing)
|
if (entryFormCfg.ProductionTracing)
|
||||||
{
|
{
|
||||||
string order, workflow;
|
|
||||||
UpdateOrderWorkflow(out order, out workflow);
|
|
||||||
myRef.modelessDlg = new FormForMechanicalMetersWithTracing(waterMeters, entryFormCfg.MaxWMsCount, entryFormCfg.CloseButton, true,
|
myRef.modelessDlg = new FormForMechanicalMetersWithTracing(waterMeters, entryFormCfg.MaxWMsCount, entryFormCfg.CloseButton, true,
|
||||||
true, entryFormCfg.OrdersFromProdTracing, order, workflow);
|
true, entryFormCfg.OrdersFromProdTracing);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ using SharedDatabase;
|
|||||||
using SharedDatabase.Entities;
|
using SharedDatabase.Entities;
|
||||||
using TBF.Rig.Sequences;
|
using TBF.Rig.Sequences;
|
||||||
using TBF.Resources;
|
using TBF.Resources;
|
||||||
|
using NHibernate.Criterion;
|
||||||
|
using Renci.SshNet;
|
||||||
|
|
||||||
namespace TBF.Rig.DataEntry.S620
|
namespace TBF.Rig.DataEntry.S620
|
||||||
{
|
{
|
||||||
@@ -226,7 +228,7 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
/// Constructor
|
/// Constructor
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
|
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
|
||||||
public FormForMechanicalMetersWithTracing(IList<Results.Entities.WaterMeter> waterMeters, int maxWMsCount, char closeButton, bool atTheEnd, bool withProductionTracing = true, bool ordersFromProdTracing = false, string purchaseOrder = null, string workflow = null)
|
public FormForMechanicalMetersWithTracing(IList<Results.Entities.WaterMeter> waterMeters, int maxWMsCount, char closeButton, bool atTheEnd, bool withProductionTracing = true, bool ordersFromProdTracing = false)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
this.waterMeters = waterMeters;
|
this.waterMeters = waterMeters;
|
||||||
@@ -236,8 +238,6 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
this.atTheEnd = atTheEnd;
|
this.atTheEnd = atTheEnd;
|
||||||
this.withProductionTracing = withProductionTracing;
|
this.withProductionTracing = withProductionTracing;
|
||||||
this.ordersFromProdTracing = ordersFromProdTracing;
|
this.ordersFromProdTracing = ordersFromProdTracing;
|
||||||
this.preSelectedPurchaseOrder = purchaseOrder;
|
|
||||||
this.preSelectedWorkflow = workflow;
|
|
||||||
|
|
||||||
bodyNrText = new string[waterMeters.Count];
|
bodyNrText = new string[waterMeters.Count];
|
||||||
assignedSerialNr = new int[waterMeters.Count];
|
assignedSerialNr = new int[waterMeters.Count];
|
||||||
@@ -257,11 +257,11 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
|
|
||||||
textBoxesCount = Math.Min(textBoxesCount, wmsCount);
|
textBoxesCount = Math.Min(textBoxesCount, wmsCount);
|
||||||
|
|
||||||
if (SharedDatabase.TracingDB.SessionFactory != null)
|
if (TracingDB.SessionFactory != null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
dbSession = SharedDatabase.TracingDB.SessionFactory.OpenSession();
|
dbSession = TracingDB.SessionFactory.OpenSession();
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
{
|
{
|
||||||
@@ -270,9 +270,14 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
Strings.Error,
|
Strings.Error,
|
||||||
MessageBoxButtons.OK,
|
MessageBoxButtons.OK,
|
||||||
MessageBoxIcon.Exclamation);
|
MessageBoxIcon.Exclamation);
|
||||||
|
dbSession = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (workflows.Count == 0 && dbSession != null)
|
if (dbSession != null)
|
||||||
|
{
|
||||||
|
UpdateOrderWorkflow(dbSession, out preSelectedPurchaseOrder, out preSelectedWorkflow);
|
||||||
|
|
||||||
|
if (withProductionTracing && workflows.Count == 0)
|
||||||
{
|
{
|
||||||
workflows = ReadReleasedActiveProcesses(dbSession);
|
workflows = ReadReleasedActiveProcesses(dbSession);
|
||||||
if (workflows == null)
|
if (workflows == null)
|
||||||
@@ -285,6 +290,7 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BarcodeReceivedHandler += delegate(object sndr, BarcodeReceivedEventArgs args)
|
BarcodeReceivedHandler += delegate(object sndr, BarcodeReceivedEventArgs args)
|
||||||
{
|
{
|
||||||
@@ -412,6 +418,43 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
//clearButton.Text = Strings.ClearBtnText;
|
//clearButton.Text = Strings.ClearBtnText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UpdateOrderWorkflow(ISession session, out string orderName, out string workflowName)
|
||||||
|
{
|
||||||
|
if (ProcessData.OrderInfo is OrderInfo && ProcessData.TracingDB != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
orderName = Program.MainWnd.SelectedProcedure.OrderInfo.POName;
|
||||||
|
var list = session.QueryOver<OrderInfo>()
|
||||||
|
.Where(x => (x.POName == Program.MainWnd.SelectedProcedure.OrderInfo.POName))
|
||||||
|
.List();
|
||||||
|
ProcessData.OrderInfo = (list.Count == 1) ? list[0] : null;
|
||||||
|
workflowName = (list.Count == 1) ? list[0].Workflow : null;
|
||||||
|
ProcessData.WorkflowSummary = WorkflowSummary.ReadFromDB(workflowName, "test", session);
|
||||||
|
|
||||||
|
log.WarnFormat("Pre-selected order={0}, pre-selected workflow={1}",
|
||||||
|
(ProcessData.OrderInfo != null) ? ProcessData.OrderInfo.POName : "<none>",
|
||||||
|
!string.IsNullOrEmpty(workflowName) ? workflowName : "<none>");
|
||||||
|
}
|
||||||
|
catch (Exception exc)
|
||||||
|
{
|
||||||
|
orderName = string.Empty;
|
||||||
|
workflowName = string.Empty;
|
||||||
|
ProcessData.OrderInfo = null;
|
||||||
|
ProcessData.WorkflowSummary = null;
|
||||||
|
|
||||||
|
log.ErrorFormat("Unable to load order, workflow or workstep: {0}", exc.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
orderName = string.Empty;
|
||||||
|
workflowName = string.Empty;
|
||||||
|
ProcessData.OrderInfo = null;
|
||||||
|
ProcessData.WorkflowSummary = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Assign serial numbers
|
/// Assign serial numbers
|
||||||
/// </summary>assigned, false = no order information or DB connection</returns>
|
/// </summary>assigned, false = no order information or DB connection</returns>
|
||||||
@@ -812,10 +855,36 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
{
|
{
|
||||||
ProcessData.OrderInfo.CurrentPcsCount = lastProducedPcsCount;
|
ProcessData.OrderInfo.CurrentPcsCount = lastProducedPcsCount;
|
||||||
ProcessData.OrderInfo.CurrentSN = lastAssignedSN;
|
ProcessData.OrderInfo.CurrentSN = lastAssignedSN;
|
||||||
|
|
||||||
|
if (ProcessData.OrderInfo is OrderInfo)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
dbSession.SaveOrUpdate(ProcessData.OrderInfo as OrderInfo);
|
||||||
|
dbSession.Flush();
|
||||||
|
|
||||||
|
log.WarnFormat("Order={0} CurrentPcsCount={1} CurrentSN={2} CurrentRA={3}",
|
||||||
|
ProcessData.OrderInfo.POName, ProcessData.OrderInfo.CurrentPcsCount,
|
||||||
|
ProcessData.OrderInfo.CurrentSN, ProcessData.OrderInfo.CurrentRA);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
log.ErrorFormat("Failed to update OrderInfo.CurrentSN... : {0}", ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ProcessData.OrderInfo is Output.DB.SensusOracle.OrderDetails)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (atTheEnd && withProductionTracing)
|
||||||
|
{
|
||||||
//SaveProductionTracingRecords(); /// TODO
|
//SaveProductionTracingRecords(); /// TODO
|
||||||
|
//dbSession.Flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (atTheEnd) UiBridge.Bridge.OnTestCompleted(this, new UiBridge.TestCompletedEventArgs(string.Empty, null));
|
||||||
|
|
||||||
completed = true;
|
completed = true;
|
||||||
Close();
|
Close();
|
||||||
@@ -825,8 +894,6 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
/// Not used now
|
/// Not used now
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void SaveProductionTracingRecords()
|
private void SaveProductionTracingRecords()
|
||||||
{
|
|
||||||
if (atTheEnd)
|
|
||||||
{
|
{
|
||||||
///
|
///
|
||||||
/// Save records to MySQL
|
/// Save records to MySQL
|
||||||
@@ -873,7 +940,6 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
mysqlTransaction.Rollback();
|
mysqlTransaction.Rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Check for uniqueness of test in an array of TextBox-es
|
/// Check for uniqueness of test in an array of TextBox-es
|
||||||
@@ -1657,9 +1723,10 @@ namespace TBF.Rig.DataEntry.S620
|
|||||||
Program.LocalSettings.LastWStep = currentWStep.Name;
|
Program.LocalSettings.LastWStep = currentWStep.Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
Program.LocalSettings.Save();
|
if (dbSession != null && dbSession.IsOpen)
|
||||||
|
{
|
||||||
//wplaceRegistration.UnregisterWorkplace(dbSession);
|
dbSession.Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Color flash and beep
|
#region Color flash and beep
|
||||||
|
|||||||
@@ -488,27 +488,6 @@ namespace TBF.Rig.Output.DB.ProductionTracing
|
|||||||
session = SessionFactory.OpenSession();
|
session = SessionFactory.OpenSession();
|
||||||
transaction = session.BeginTransaction();
|
transaction = session.BeginTransaction();
|
||||||
|
|
||||||
var reloadedOrder = session.QueryOver<OrderInfo>()
|
|
||||||
.Where(x => x.POName == order.POName)
|
|
||||||
.List();
|
|
||||||
if (reloadedOrder.Count == 1)
|
|
||||||
{
|
|
||||||
reloadedOrder[0].CurrentPcsCount = order.CurrentPcsCount;
|
|
||||||
reloadedOrder[0].CurrentSN = order.CurrentSN;
|
|
||||||
reloadedOrder[0].CurrentRA = order.CurrentRA;
|
|
||||||
if (order.CurrentPcsCount > 0)
|
|
||||||
{
|
|
||||||
reloadedOrder[0].POState = (sbyte)OrderState.Active;
|
|
||||||
}
|
|
||||||
session.SaveOrUpdate(reloadedOrder[0]);
|
|
||||||
log.WarnFormat("Order={0} CurrentPcsCount={1} CurrentSN={2} CurrentRA={3}",
|
|
||||||
order.POName, order.CurrentPcsCount, order.CurrentSN, order.CurrentRA);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
log.ErrorFormat("Unexpected reloadedOrder.Count == {0} in SaveTracingRecords()", reloadedOrder.Count);
|
|
||||||
}
|
|
||||||
|
|
||||||
string workplace = (ProcessData.BenchInfo != null) ? ProcessData.BenchInfo.TestBenchName : "TestBench";
|
string workplace = (ProcessData.BenchInfo != null) ? ProcessData.BenchInfo.TestBenchName : "TestBench";
|
||||||
int writtenRecordsCount = 0;
|
int writtenRecordsCount = 0;
|
||||||
foreach (var wm in batch.WaterMeters)
|
foreach (var wm in batch.WaterMeters)
|
||||||
|
|||||||
Reference in New Issue
Block a user