I have one table which contains two column field, 1.frame_id 2.extra_frame_id
Now I want to check if this two column contains vice-versa value or not by laravel validation.
Let say frame_id contains id = 1, where extra_frame_id contains = 2,5,7
Now If I'm adding value frame_id = 5 and extra_frame_id 1,4 then it should fire an error.
Please let me know if it's achievable via laravel validation
Related
I need help on enforcing the validation of checkbox field : there should be only 1 record having checked value = 1. How do I do this?
I have the below requirement to be implemented in a plugin code on an Entity say 'Entity A'-
Below is the data in 'Entity A'
Record 1 with field values
Price = 100
Quantity = 4
Record 2 with field values
Price = 200
Quantity = 2
I need to do 2 things
Add the values of the fields and update it in a new record
Store the Addition Formula in a different config entity
Example shown below -
Record 3
Price
Price Value = 300
Formula Value = 100 + 200
Quantity
Quantity Value = 6
Formula Value = 4 + 2
Entity A has a button named "Perform Addition" and once clicked this will trigger the plugin code.
Below is the code that i have tried -
AttributeList is the list of fields i need to perform sum on. All fields are decimal
Entity EntityA = new EntityA();
EntityA.Id = new Guid({"Guid String"});
var sourceEntityDataList = service.RetrieveMultiple(new FetchExpression(fetchXml)).Entities;
foreach (var value in AttributeList)
{
EntityA[value]= sourceEntityDataList.Sum(e => e.Contains(value) ? e.GetAttributeValue<Decimal>(value) : 0);
}
service.Update(EntityA);
I would like to know if there is a way through linq I can store the formula without looping?
and if not how can I achieve this?
Any help would be appreciated.
Here are some thoughts:
It's interesting that you're calculating values from multiple records and populating the result onto a sibling record rather than a parent record. This is different than a typical "rollup" calculation.
Dynamics uses the SQL sequential GUID generator to generate its ids. If you're generating GUIDs outside of Dynamics, you might want to look into leveraging the same logic.
Here's an example of how you might refactor your code with LINQ:
var target = new Entity("entitya", new Guid("guid"));
var entities = service.RetrieveMultiple(new FetchExpression(fetchXml)).Entities.ToList();
attributes.ForEach(a => target[a] = entities.Sum(e => e.GetAttributeValue<Decimal>(a));
service.Update(target);
The GetAttributeValue<Decimal>() method defaults to 0, so we can skip the Contains call.
As far as storing the formula on a config entities goes, if you're looking for the capability to store and use any formula, you'll need a full expression parser, along the lines of this calculator example.
Whether you'll be able to do the Reflection required in a sandboxed plugin is another question.
If, however, you have a few set formulas, you can code them all into the plugin and determine which to use at runtime based on the entities' properties and/or config data.
I have two lists w/ the following details:
List 1: JobType1; Column: Title
List 2: JobType2; Columns: Title, JobType1 (lookup of Title column of List 1)
On List 3 (Request), I am trying to use PowerApps and I have two fields that are lookups of the two lists:
JobType1 - lookup field that uses the Title column of List 1
JobType2 - lookup field that uses the Title column of List 2
I am trying to filter JobType2 field in the form to display all values on the Title column on List 2 that matches the value of the JobType1 field in the form w/ the JobType1 column on List 2.
I tried using this formula but it does not work. Please help me.
Filter(Choices(IntMktg.Job_x0020_Type_x0020_2), Value in Filter('JobType1', IntMktg.Job_x0020_Type_x0020_1 = DataCardValueClient.Text).Title)
Combo box control doesn't display the result. It seems a bug. I tried it out with the 3 lists and created a form on JobRequest. Here is my formula and it works if you use a dropdown. while waiting for Combo box to be fixed, you can use dropdown instead of Combo box.
Filter(Choices(JobRequest.JobType2), Id in Filter([#JobType2], JobType1.Value = DataCardValue2.Selected.Value).ID)
I have a collection of records.
$pastSessions = Sessions::where('id', $id)->pluck('event_start_time');
This has 12 records.
I'm trying to check if a variable is equal to any of these records, but it's only checking the last one.
if($application->appointment == $pastSessions)
How do I check is it equal to any of the records.
This is all in my controller
You can use contains with name of key and value like this.
$pastSessions->contains('appointment', $application->appointment)
I have a Table called Records with the following four columns:
ID | StartChainage | EndChainage | DistanceTraveled
The DistanceTraveled is the difference between EndChainage and StartChainage. For each new record, the StartChainage should be equal to the EndChainage of the previous one.
I have created a Form called Record1 where I can only add values in the field called EndChainage, while in the field StartChainage I use the following expression:
=IIf([ID]=1,0,DLookUp("[EndChainage]","Record","[ID]=Forms![Record1]![ID]-1"))
Where I actually say that for the first record in the Table "Records" (i.e. ID=1) the value in the StartChainage must be 0, else it should obtain the value of the EndChainage field of the previous record.
This works fine and I have a Form with fields where I only input the value of the EndChainage and the Form sets the value of the StartChainage for the next record and it also calculates the DistanceTraveled.
The problem is that the calculated fields are NOT updating the relevant fields of the Table. In the Table the only updated fields are the EndChainage ones, i.e. the ones I only type manually the values.
How can I make the Table to get automatically updated by the calculated fields of the Form?
Maybe I could use calculated fields in the Table itself, but this is not what I really want.
Try with:
=IIf([ID]=1,0,DLookUp("[EndChainage]","Record","[ID]=" & Forms![Record1]![ID]-1 & ""))
Check if you get the ID:
=Forms![Record1]![ID]-1