diff --git a/Thermo.Active.Database/Controllers/ProdInfoController.cs b/Thermo.Active.Database/Controllers/ProdInfoController.cs
index 9e9c3a5f..c1b691d4 100644
--- a/Thermo.Active.Database/Controllers/ProdInfoController.cs
+++ b/Thermo.Active.Database/Controllers/ProdInfoController.cs
@@ -67,8 +67,9 @@ namespace Thermo.Active.Database.Controllers
///
///
///
+ ///
///
- public ProdInfoModel Create(short NumTarget, short NumDone, int TimeWarm, int TimeVent, int TimeVacuum, int TimeCycleGross, int TimeCycleNet, double MaterialTempEndWarm, double MaterialTempEndVent, double MoldTemp, double VacuumReadVal, double MouldEnergyOUT, double MouldEnergyIN)
+ public ProdInfoModel Create(short NumTarget, short NumDone, int TimeWarm, int TimeVent, int TimeVacuum, int TimeCycleGross, int TimeCycleNet, double MaterialTempEndWarm, double MaterialTempEndVent, double MoldTemp, double VacuumReadVal, double MouldEnergyOUT, double MouldEnergyIN, bool IsScrap)
{
// Create database machine model
ProdInfoModel prodData = new ProdInfoModel()
@@ -86,7 +87,8 @@ namespace Thermo.Active.Database.Controllers
MoldTemp = MoldTemp,
VacuumReadVal = VacuumReadVal,
MouldEnergyOUT = MouldEnergyOUT,
- MouldEnergyIN = MouldEnergyIN
+ MouldEnergyIN = MouldEnergyIN,
+ IsScrap = IsScrap
};
try
{
@@ -100,6 +102,33 @@ namespace Thermo.Active.Database.Controllers
return prodData;
}
+ ///
+ /// Process table and set as scrap by num value
+ ///
+ ///
+ ///
+ public bool SetScrap(int num, bool isScrap)
+ {
+ bool answ = false;
+
+ var currRecord = dbCtx
+ .ProdInfo
+ .Where(x => x.NumDone == num)
+ .SingleOrDefault();
+ try
+ {
+ if (currRecord != null)
+ {
+ currRecord.IsScrap = isScrap;
+ }
+ // save!
+ dbCtx.SaveChanges();
+ answ = true;
+ }
+ catch
+ { }
+ return answ;
+ }
///
/// Process table and keep only maxKeep most recent ones
diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj
index d10b5d81..478bde16 100644
--- a/Thermo.Active.Database/Thermo.Active.Database.csproj
+++ b/Thermo.Active.Database/Thermo.Active.Database.csproj
@@ -131,6 +131,10 @@
202006170558519_AddedProdInfoModel.cs
+
+
+ 202009021558544_AddedScrapPartMgmt.cs
+
@@ -173,6 +177,9 @@
202006170558519_AddedProdInfoModel.cs
+
+ 202009021558544_AddedScrapPartMgmt.cs
+
\ No newline at end of file
diff --git a/Thermo.Active.Model/DTOModels/ThProd/DTOProdInfo.cs b/Thermo.Active.Model/DTOModels/ThProd/DTOProdInfo.cs
index a8ac886a..ffe5cf0c 100644
--- a/Thermo.Active.Model/DTOModels/ThProd/DTOProdInfo.cs
+++ b/Thermo.Active.Model/DTOModels/ThProd/DTOProdInfo.cs
@@ -25,6 +25,7 @@ namespace Thermo.Active.Model.DTOModels.ThProd
public double VacuumReadVal { get; set; } = 0;
public double MouldEnergyOUT { get; set; } = 0;
public double MouldEnergyIN { get; set; } = 0;
+ public bool IsScrap { get; set; } = false;
public override bool Equals(object obj)
{
@@ -60,6 +61,8 @@ namespace Thermo.Active.Model.DTOModels.ThProd
return false;
if (MouldEnergyIN != item.MouldEnergyIN)
return false;
+ if (IsScrap != item.IsScrap)
+ return false;
return true;
}
@@ -88,6 +91,7 @@ namespace Thermo.Active.Model.DTOModels.ThProd
this.VacuumReadVal = pimRawData.VacuumReadVal;
this.MouldEnergyIN = pimRawData.MouldEnergyIN;
this.MouldEnergyOUT = pimRawData.MouldEnergyOUT;
+ this.IsScrap = pimRawData.IsScrap;
}
}
}
diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs
index bb27cc8b..2e1eb859 100644
--- a/Thermo.Active.NC/NcAdapter.cs
+++ b/Thermo.Active.NC/NcAdapter.cs
@@ -1504,7 +1504,7 @@ namespace Thermo.Active.NC
// save on DB! attenzione: num pezzi -1 perché salvo pezzo PRECEDENTE...
using (ProdInfoController prodInfoController = new ProdInfoController())
{
- prodInfoController.Create(prodInfoRawData.NumTarget, prodInfoRawData.NumDone, prodInfoRawData.TimeWarm, prodInfoRawData.TimeVent, prodInfoRawData.TimeVacuum, prodInfoRawData.TimeCycleGross, prodInfoRawData.TimeCycleNet, prodInfoRawData.MaterialTempEndWarm, prodInfoRawData.MaterialTempEndVent, prodInfoRawData.MoldTemp, prodInfoRawData.VacuumReadVal, prodInfoRawData.MouldEnergyOUT, prodInfoRawData.MouldEnergyIN);
+ prodInfoController.Create(prodInfoRawData.NumTarget, prodInfoRawData.NumDone, prodInfoRawData.TimeWarm, prodInfoRawData.TimeVent, prodInfoRawData.TimeVacuum, prodInfoRawData.TimeCycleGross, prodInfoRawData.TimeCycleNet, prodInfoRawData.MaterialTempEndWarm, prodInfoRawData.MaterialTempEndVent, prodInfoRawData.MoldTemp, prodInfoRawData.VacuumReadVal, prodInfoRawData.MouldEnergyOUT, prodInfoRawData.MouldEnergyIN, false);
}
// update last info data
lastProdInfoData = prodInfoRawData;
@@ -1588,13 +1588,31 @@ namespace Thermo.Active.NC
MoldTemp = x.MoldTemp,
VacuumReadVal = x.VacuumReadVal,
MouldEnergyOUT = x.MouldEnergyOUT,
- MouldEnergyIN = x.MouldEnergyIN
+ MouldEnergyIN = x.MouldEnergyIN,
+ IsScrap = x.IsScrap
}).ToList();
}
return libraryError;
}
///
+ /// Get historical prodinfo data from DB
+ ///
+ ///
+ ///
+ ///
+ public CmsError SetScrap(int num, bool isScrap)
+ {
+ CmsError libraryError = NO_ERROR;
+
+ using (ProdInfoController prodInfoController = new ProdInfoController())
+ {
+ prodInfoController.SetScrap(num, isScrap);
+ }
+
+ return libraryError;
+ }
+ ///
/// Update requested prod quantity
///
///
diff --git a/Thermo.Active/Controllers/WebApi/ProdController.cs b/Thermo.Active/Controllers/WebApi/ProdController.cs
index 4cf7f097..104f6894 100644
--- a/Thermo.Active/Controllers/WebApi/ProdController.cs
+++ b/Thermo.Active/Controllers/WebApi/ProdController.cs
@@ -100,9 +100,42 @@ namespace Thermo.Active.Controllers.WebApi
return Ok();
}
+
+ ///
+ /// Set item as scrap
+ ///
+ /// item NUM
+ /// scrap flag (true/false)
+ ///
+ [Route("setScrap"), HttpPut]
+ [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.RECIPE_MANAGER, Action = ACTIONS.READ)]
+ public IHttpActionResult SetScrap(int num, bool isScrap)
+ {
+ // Try connection
+ CmsError libraryError = ncAdapter.Connect();
+ if (libraryError.IsError())
+ {
+ ThermoActiveLogger.LogError($"NC Not connected! | SetScrap | {libraryError.exception}");
+ return BadRequest(libraryError.localizationKey);
+ }
+
+ // scrivo sul DB che il pezzo è SCRAPPED
+ libraryError = ncAdapter.SetScrap(num, isScrap);
+ if (libraryError.IsError())
+ {
+ ThermoActiveLogger.LogError($"SetScrap error | {libraryError.exception}");
+ return BadRequest(libraryError.localizationKey);
+ }
+
+ // ritorno solo fatto!
+ return Ok();
+ }
+
///
/// Request start production
///
+ /// item NUM
+ /// scrap flag (true/false)
///
[Route("start"), HttpPut]
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.RECIPE_MANAGER, Action = ACTIONS.READ)]