Categorie: reference Bijgewerkt: 2026-04-08 actionfield workflow actionfield347

ActionField347

Beschrijving: Change InternalChargeSettings for Job (via dialog). Custom: Nee

Propertiesbewerken

Property Type Accessor
Job Job Root
Charge JobChargeType Optional
InstallmentsDescription UltimoString Optional
InstallmentsFixedPrice Boolean Optional
InstallmentsFixedPriceCost CompanyMoney Optional
InstallmentsFrequencyQuantity Int16 Optional
InstallmentsPayInTerms Boolean Optional
InstallmentsTermFrequency Frequency Optional
InstallmentsTermFromDate Date? Optional
InstallmentsTermQuantity Int16 Optional
InternalChargeMethod InternalChargeMethod Optional
ShowDialog Boolean Optional

XMLbewerken

<Workflow Name="ActionField347" Version="2025.07.28" WorkflowType="Standard" xmlns="urn:Ultimo.Framework.Workflow-mapping">
	<Security EditLevel="10" ViewLevel="20" UserContentLevel="30" />
	<Description>Change InternalChargeSettings for Job (via dialog).</Description>
	<Properties>
		<Property	Name="Job"										Type="Job"					Accessor="Root"		Direction="In"						Comment="Job to change the settings for" />

		<Property	Name="Charge"									Type="JobChargeType"		Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsDescription"					Type="UltimoString"			Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsFixedPrice"					Type="Boolean"				Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsFixedPriceCost"				Type="CompanyMoney"			Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsFrequencyQuantity"			Type="Int16"				Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsPayInTerms"					Type="Boolean"				Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsTermFrequency"				Type="Frequency"			Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsTermFromDate"					Type="Date?"				Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InstallmentsTermQuantity"					Type="Int16"				Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="InternalChargeMethod"						Type="InternalChargeMethod"	Accessor="Optional"	Direction="In"						Comment="Property to update in dialog" />
		<Property	Name="ShowDialog"								Type="Boolean"				Accessor="Optional"	Direction="In"		Default="True"	Comment="If True, update through dialog. Otherwise, set properties manually through screen/UserContent" />

		<Property	Name="InstallmentsFixedCostPerTerm"				Type="CompanyMoney"			Accessor="Internal" />
		<Property	Name="JobMaterials"								Type="List[JobMaterial]"	Accessor="Internal" />
		<Property	Name="MessageToDisplay"							Type="Int16?"				Accessor="Internal" />
		<Property	Name="UserHasModifiedInternalChargeSettings"	Type="Boolean"				Accessor="Internal" />
	</Properties>
	<Execution>
		<UserContent Name="Pre" />

		<When Name="Check if the job is a subjob" Condition="${Job.Multijob} != Empty &amp;&amp; ${Job.Multijob} != ${Job}">
			<Validation Name="Only allow changes to invoice settings if the multi-job is not fixed price" Condition="${Job.Multijob.InstallmentsFixedPrice} == False" MessageCode="1424">
				<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
			</Validation>
		</When>

		<WorkflowCall Name="Select new/updated internal charge settings" WorkflowName="DomainObject_SelectInternalChargeSettings">
			<Parameter	Name="DomainObject"								Direction="In"		Value="${Job}" />
			<Parameter	Name="JobHasCustomer"							Direction="In"		Value="=${Job.Customer} != Empty" />
			<Parameter	Name="ShowDialog"								Direction="In"		Value="${ShowDialog}" />
			<Parameter	Name="Charge"									Direction="InOut"	Value="${Charge}"							OutputProperty="${Charge}" />
			<Parameter	Name="InstallmentsDescription"					Direction="InOut"	Value="${InstallmentsDescription}"			OutputProperty="${InstallmentsDescription}" />
			<Parameter	Name="InstallmentsFixedPrice"					Direction="InOut"	Value="${InstallmentsFixedPrice}"			OutputProperty="${InstallmentsFixedPrice}" />
			<Parameter	Name="InstallmentsFixedPriceCost"				Direction="InOut"	Value="${InstallmentsFixedPriceCost}"		OutputProperty="${InstallmentsFixedPriceCost}" />
			<Parameter	Name="InstallmentsFrequencyQuantity"			Direction="InOut"	Value="${InstallmentsFrequencyQuantity}"	OutputProperty="${InstallmentsFrequencyQuantity}" />
			<Parameter	Name="InstallmentsPayInTerms"					Direction="InOut"	Value="${InstallmentsPayInTerms}"			OutputProperty="${InstallmentsPayInTerms}" />
			<Parameter	Name="InstallmentsTermFrequency"				Direction="InOut"	Value="${InstallmentsTermFrequency}"		OutputProperty="${InstallmentsTermFrequency}" />
			<Parameter	Name="InstallmentsTermFromDate"					Direction="InOut"	Value="${InstallmentsTermFromDate}"			OutputProperty="${InstallmentsTermFromDate}" />
			<Parameter	Name="InstallmentsTermQuantity"					Direction="InOut"	Value="${InstallmentsTermQuantity}"			OutputProperty="${InstallmentsTermQuantity}" />
			<Parameter	Name="InternalChargeMethod"						Direction="InOut"	Value="${InternalChargeMethod}"				OutputProperty="${InternalChargeMethod}" />
			<Parameter	Name="InstallmentsFixedCostPerTerm"				Direction="Out"													OutputProperty="${InstallmentsFixedCostPerTerm}" />
			<Parameter	Name="UserHasModifiedInternalChargeSettings"	Direction="Out"													OutputProperty="${UserHasModifiedInternalChargeSettings}" />
		</WorkflowCall>

		<When Name="User has modified invoice settings" Condition="${UserHasModifiedInternalChargeSettings} == True">
			<When Name="Job is a multi-job" Condition="${Job.IsMultijob} == True">
				<Message Name="Tell about subjobs already invoiced" MessageCode="1675">
					<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
				</Message>
			</When>

			<Transaction>
				<Comment><![CDATA[ reset all charge flags on all WarehouseServeOuts related to job ]]></Comment>

				<GetList Name="get jobmaterials grouped on WarehouseServeOut" Type="JobMaterial" OutputProperty="${JobMaterials}" OrderBy="Id" OrderDirection="Ascending">
					<Joins>
						<Join	Name="WarehouseServeOutline"		Alias="whsol"	Type="InnerJoin" />
						<Join	Name="whsol.Id.WarehouseServeOut"	Alias="whso"	Type="InnerJoin" />
					</Joins>
					<Filters>
						<PropertyFilter	PropertyName="Id.Job"	Operator="="		PropertyValue="${Job}" />
					</Filters>
				</GetList>

				<ForEach Name="ForEach JobMaterial" In="${JobMaterials}" As="JobMaterial">
					<Assign Name="reset Charge flag" Property="${JobMaterial.WarehouseServeOutline.Id.WarehouseServeOut.Charge}" Value="False" />
				</ForEach>

				<Assign Name="Set Job.Charge" Property="${Job.Charge}" Value="${Charge}" />
				<Assign Name="Set Job.InstallmentsDescription" Property="${Job.InstallmentsDescription}" Value="${InstallmentsDescription}" />
				<Assign Name="Set Job.InstallmentsFixedCostPerTerm" Property="${Job.InstallmentsFixedCostPerTerm}" Value="${InstallmentsFixedCostPerTerm}" />
				<Assign Name="Set Job.InstallmentsFixedPrice" Property="${Job.InstallmentsFixedPrice}" Value="${InstallmentsFixedPrice}" />
				<Assign Name="Set Job.InstallmentsFrequencyQuantity" Property="${Job.InstallmentsFrequencyQuantity}" Value="${InstallmentsFrequencyQuantity}" />
				<Assign Name="Set Job.InstallmentsPayInTerms" Property="${Job.InstallmentsPayInTerms}" Value="${InstallmentsPayInTerms}" />
				<Assign Name="Set Job.InstallmentsTermFrequency" Property="${Job.InstallmentsTermFrequency}" Value="${InstallmentsTermFrequency}" />
				<Assign Name="Set Job.InstallmentsTermFromDate" Property="${Job.InstallmentsTermFromDate}" Value="${InstallmentsTermFromDate}" />
				<Assign Name="Set Job.InstallmentsTermQuantity" Property="${Job.InstallmentsTermQuantity}" Value="${InstallmentsTermQuantity}" />
				<Assign Name="Set Job.InternalChargeMethod" Property="${Job.InternalChargeMethod}" Value="${InternalChargeMethod}" />

				<WorkflowCall Name="Update Job After Updating Invoice-Setting" WorkflowName="Job_SetAndUpdateAfterUpdateInvoiceSetting">
					<Parameter	Name="InstallmentsFixedPriceCost"	Direction="In"		Value="${InstallmentsFixedPriceCost}" />
					<Parameter	Name="Job"							Direction="In"		Value="${Job}" />
					<Parameter	Name="MessageToDisplay"				Direction="Out"												OutputProperty="${MessageToDisplay}" />
				</WorkflowCall>
			</Transaction>

			<When Name="When a message should be displayed" Condition="${MessageToDisplay} != Empty">
				<Choose Name="Check which message should be displayed">
					<When Name="When message 1423" Condition="${MessageToDisplay} == 1423">
						<Message Name="Notify the user that some sub jobs exist in charge lines" MessageCode="1423">
							<Parameter	Name="JobList"	Direction="In"		Value="${SkippedSubJobs}" />
						</Message>
					</When>


					<When Name="When message 1452" Condition="${MessageToDisplay} == 1452">
						<Message Name="Notify the user that this subjob is part of a non chargable multi-job" MessageCode="1452">
							<Parameter	Name="Job"	Direction="In"		Value="${Job}" />
						</Message>
					</When>
				</Choose>
			</When>
		</When>

		<UserContent Name="Post" />
	</Execution>
</Workflow>