Add link to formulation info field

parent ac2eb06a
......@@ -28,13 +28,22 @@ namespace Actions
public void Execute(ICustomContext aContext)
{
var lMaterial = ((IRequest)aContext.Entity).FormulationMaterial;
var lSaveToSpecPref = DatabaseContext.RndvPref.FirstOrDefault(x => x.PREF_TP == aPrefTp && x.PREF_NAME == aPrefNameSaveToSpec && x.SEQ == 1).PREF_VALUE;
var userId = API.User.GetUser((decimal)aContext.Event.UserName).ID;
var rndtContact = DatabaseContext.RndvContact.FirstOrDefault(c => c.CONTACT == userId);
var userName = string.Join(" ", rndtContact.LAST_NAME, rndtContact.FIRST_NAME, rndtContact.MIDDLE_NAME);
SaveMaterialToSpecification(lMaterial, lSaveToSpecPref, (IRequest)aContext.Entity, userName);
try
{
SaveMaterialToSpecification(lMaterial, lSaveToSpecPref, (IRequest)aContext.Entity, userName);
}
catch (Exception ex)
{
Log.Error(ex);
}
}
public void SaveMaterialToSpecification(IFormulationMaterial aMaterial, string aSaveToSpecPref, IRequest aRequest, string userName)
......@@ -155,11 +164,26 @@ namespace Actions
}
}
}
DatabaseContext.SaveChanges();
var infoFieldFormulation = newSpecification.InfoCards.SelectMany(c => c.InfoFields).FirstOrDefault(c => c.ShortDescription == "FM_FormulaObjLink");
if(infoFieldFormulation != null)
{
var connection = DatabaseContext.Database.Connection;
var serverName = connection.GetType().GetProperty("WorkstationId").GetValue(connection, null)?.ToString().ToLower();
string link = @"https://" +
$"{serverName}" +
@"/OpcenterRDnL/Wizards/OpenRequestWizard/Formulation?page=2&filter=[{%22field%22:%22RQ@RndvRq%22,%22operator%22:%22eq%22,%22value%22:%22" +
$"{aRequest.ID}" +
@"%22}]&taskType=FMlist&taskId=21&showFilter=false\""target=\""_blank\";
string value = $"<a href={link}>Рецептура</a>";
infoFieldFormulation.InfoFieldValue = value;
}
#endregion
DatabaseContext.SaveChanges();
Log.Warn($"Specification {newSpecification.ID} created!");
}
}
else if (aMaterial.ItemChanged == RnD.Common.Enums.NullableBool.True && aSaveToSpecPref == aUpdateSpecPref)
{
aMaterial.ItemChanged = RnD.Common.Enums.NullableBool.False;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment