Aspose.Tasks for C++
PrimaveraTaskProperties.h
1 #pragma once
2 //-----------------------------------------------------------------------
3 // <copyright file="PrimaveraTaskProperties.cs" company="Aspose Pty Ltd">
4 // Copyright (c) 2002-2025 Aspose Pty Ltd. All Rights Reserved.
5 // </copyright>
6 //-----------------------------------------------------------------------
7 
8 #include <system/string.h>
9 #include <system/decimal.h>
10 #include <system/date_time.h>
11 #include <cstdint>
12 
13 #include "aspose.tasks.cpp/aspose_tasks_api_defs.h"
14 
15 namespace Aspose
16 {
17 namespace Tasks
18 {
19 namespace Connectivity
20 {
21 class PmTaskMapper;
22 class PmWbsMapper;
23 class PrimaveraDbReader;
24 } // namespace Connectivity
25 namespace IO
26 {
27 namespace PrimaveraXml
28 {
29 class P6XmlUtils;
30 class PrimaveraActivityExpenseNodeReader;
31 class PrimaveraActivityNodeReader;
32 class PrimaveraProjectNodeReader;
33 class PrimaveraWBSNodeReader;
34 } // namespace PrimaveraXml
35 namespace Xer
36 {
37 class XerConstraintUtils;
38 class XerExpensesReader;
39 class XerTaskReader;
40 class XerWbsReader;
41 } // namespace Xer
42 } // namespace IO
43 namespace Primavera
44 {
45 enum class PrimaveraActivityType;
46 enum class PrimaveraConstraintType;
47 enum class PrimaveraDurationType;
48 enum class PrimaveraPercentCompleteType;
49 } // namespace Primavera
50 namespace Saving
51 {
52 class PrimaveraActivityNodeWriter;
53 class PrimaveraXerUtils;
54 class XerTaskTable;
55 } // namespace Saving
56 namespace Util
57 {
58 class PrimaveraSummaryTasksCalculator;
59 class PrimaveraTasksProcessor;
60 } // namespace Util
61 } // namespace Tasks
62 } // namespace Aspose
63 
64 namespace Aspose {
65 
66 namespace Tasks {
67 
68 /// <summary>
69 /// Represents Primavera-specific properties for a task read from Primavera files (XER of P6XML).
70 /// </summary>
71 class ASPOSE_TASKS_SHARED_CLASS PrimaveraTaskProperties final : public System::Object
72 {
74  typedef System::Object BaseType;
75 
76  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
77  ASPOSE_TASKS_SHARED_RTTI_INFO_DECL();
78 
79  friend class Aspose::Tasks::IO::PrimaveraXml::P6XmlUtils;
80  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityExpenseNodeReader;
81  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraActivityNodeReader;
82  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraProjectNodeReader;
83  friend class Aspose::Tasks::IO::PrimaveraXml::PrimaveraWBSNodeReader;
84  friend class Aspose::Tasks::IO::Xer::XerExpensesReader;
85  friend class Aspose::Tasks::IO::Xer::XerConstraintUtils;
86  friend class Aspose::Tasks::Util::PrimaveraSummaryTasksCalculator;
87  friend class Aspose::Tasks::Connectivity::PmTaskMapper;
88  friend class Aspose::Tasks::Connectivity::PmWbsMapper;
89  friend class Aspose::Tasks::Connectivity::PrimaveraDbReader;
90  friend class Aspose::Tasks::IO::Xer::XerTaskReader;
91  friend class Aspose::Tasks::IO::Xer::XerWbsReader;
92  friend class Aspose::Tasks::Saving::PrimaveraXerUtils;
93  friend class Aspose::Tasks::Saving::XerTaskTable;
94  friend class Aspose::Tasks::Saving::PrimaveraActivityNodeWriter;
95  friend class Aspose::Tasks::Util::PrimaveraTasksProcessor;
96 
97 public:
98 
99  /// <summary>
100  /// Gets the sequence number of the WBS item (summary tasks). It is used to sort summary tasks in Primavera.
101  /// </summary>
102  /// <remarks>Applicable to WBS items (summary tasks).</remarks>
103  ASPOSE_TASKS_SHARED_API int32_t get_SequenceNumber() const;
104  /// <summary>
105  /// Gets an activity id field - a task's unique identifier used by Primavera.
106  /// </summary>
107  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
108  ASPOSE_TASKS_SHARED_API System::String get_ActivityId() const;
109  /// <summary>
110  /// Gets remaining early finish date - the date when the remaining work for the activity is scheduled to be finished.
111  /// </summary>
112  ASPOSE_TASKS_SHARED_API System::DateTime get_RemainingEarlyFinish() const;
113  /// <summary>
114  /// Gets remaining early start date - the date when the remaining work for the activity is scheduled to begin.
115  /// </summary>
116  ASPOSE_TASKS_SHARED_API System::DateTime get_RemainingEarlyStart() const;
117  /// <summary>
118  /// Gets remaining late start date.
119  /// </summary>
120  ASPOSE_TASKS_SHARED_API System::DateTime get_RemainingLateStart() const;
121  /// <summary>
122  /// Gets remaining late finish date.
123  /// </summary>
124  ASPOSE_TASKS_SHARED_API System::DateTime get_RemainingLateFinish() const;
125  /// <summary>
126  /// Gets raw text representation (as in source file) of 'Duration Type' field of the activity.
127  /// </summary>
128  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
129  ASPOSE_TASKS_SHARED_API System::String get_RawDurationType() const;
130  /// <summary>
131  /// Gets the value of 'Duration Type' field of the activity.
132  /// </summary>
133  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
134  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraDurationType get_DurationType() const;
135  /// <summary>
136  /// Gets raw text representation (as in source file) of 'Activity Type' field of the activity.
137  /// </summary>
138  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
139  ASPOSE_TASKS_SHARED_API System::String get_RawActivityType() const;
140  /// <summary>
141  /// Gets the value of 'Activity Type' field.
142  /// </summary>
143  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
144  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraActivityType get_ActivityType() const;
145  /// <summary>
146  /// Gets the value of '% Complete Type' field of the activity.
147  /// </summary>
148  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
149  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraPercentCompleteType get_PercentCompleteType() const;
150  /// <summary>
151  /// Gets raw text representation (as in source file) of '% Complete Type' field of the activity.
152  /// </summary>
153  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
154  ASPOSE_TASKS_SHARED_API System::String get_RawCompletePercentType() const;
155  /// <summary>
156  /// Gets raw text representation (as in source file) of 'Status' field of the activity.
157  /// </summary>
158  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
159  ASPOSE_TASKS_SHARED_API System::String get_RawStatus() const;
160  /// <summary>
161  /// Gets the value of Physical Percent Complete.
162  /// </summary>
163  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
164  ASPOSE_TASKS_SHARED_API double get_PhysicalPercentComplete() const;
165  /// <summary>
166  /// Gets the value of duration percent complete.
167  /// </summary>
168  ASPOSE_TASKS_SHARED_API double get_DurationPercentComplete() const;
169  /// <summary>
170  /// Gets the value of units percent complete.
171  /// </summary>
172  ASPOSE_TASKS_SHARED_API double get_UnitsPercentComplete();
173  /// <summary>
174  /// Gets the value of actual labor units.
175  /// </summary>
176  ASPOSE_TASKS_SHARED_API double get_ActualLaborUnits() const;
177  /// <summary>
178  /// Gets the value of actual non labor units.
179  /// </summary>
180  ASPOSE_TASKS_SHARED_API double get_ActualNonLaborUnits() const;
181  /// <summary>
182  /// Gets the value of remaining labor units.
183  /// </summary>
184  ASPOSE_TASKS_SHARED_API double get_RemainingLaborUnits() const;
185  /// <summary>
186  /// Gets the value of remaining non labor units.
187  /// </summary>
188  ASPOSE_TASKS_SHARED_API double get_RemainingNonLaborUnits() const;
189  /// <summary>
190  /// Gets the value of actual labor cost .
191  /// </summary>
192  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualLaborCost() const;
193  /// <summary>
194  /// Gets the value of budgeted (or planned) labor cost .
195  /// </summary>
196  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetedLaborCost() const;
197  /// <summary>
198  /// Gets the value of actual non labor cost .
199  /// </summary>
200  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualNonlaborCost() const;
201  /// <summary>
202  /// Gets the value of budgeted (or planned) non labor cost .
203  /// </summary>
204  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetedNonlaborCost() const;
205  /// <summary>
206  /// Gets the value of actual material cost.
207  /// </summary>
208  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualMaterialCost() const;
209  /// <summary>
210  /// Gets the value of of budgeted (or planned) material cost.
211  /// </summary>
212  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetedMaterialCost() const;
213  /// <summary>
214  /// Gets the value of actual expense cost.
215  /// </summary>
216  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualExpenseCost() const;
217  /// <summary>
218  /// Gets the value of remaining expense cost.
219  /// </summary>
220  ASPOSE_TASKS_SHARED_API System::Decimal get_RemainingExpenseCost() const;
221  /// <summary>
222  /// Gets the value of budgeted (or planned) expense cost.
223  /// </summary>
224  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetedExpenseCost() const;
225  /// <summary>
226  /// Gets the total value of actual costs.
227  /// </summary>
228  ASPOSE_TASKS_SHARED_API System::Decimal get_ActualTotalCost();
229  /// <summary>
230  /// Gets the total value of budgeted (or planned) costs.
231  /// </summary>
232  ASPOSE_TASKS_SHARED_API System::Decimal get_BudgetedTotalCost();
233  /// <summary>
234  /// Gets a type of primary constraint.
235  /// </summary>
236  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraConstraintType get_PrimaryConstraintType() const;
237  /// <summary>
238  /// Gets the date of primary constraint.
239  /// </summary>
240  ASPOSE_TASKS_SHARED_API System::DateTime get_PrimaryConstraintDate() const;
241  /// <summary>
242  /// Gets a type of secondary constraint.
243  /// </summary>
244  ASPOSE_TASKS_SHARED_API Primavera::PrimaveraConstraintType get_SecondaryConstraintType() const;
245  /// <summary>
246  /// Gets the date of secondary constraint.
247  /// </summary>
248  ASPOSE_TASKS_SHARED_API System::DateTime get_SecondaryConstraintDate() const;
249 
250 protected:
251 
252  /// <summary>
253  /// Sets the sequence number of the WBS item (summary tasks). It is used to sort summary tasks in Primavera.
254  /// </summary>
255  /// <remarks>Applicable to WBS items (summary tasks).</remarks>
256  ASPOSE_TASKS_SHARED_API void set_SequenceNumber(int32_t value);
257  /// <summary>
258  /// Gets an activity id field - a task's unique identifier used by Primavera.
259  /// </summary>
260  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
261  ASPOSE_TASKS_SHARED_API void set_ActivityId(const System::String& value);
262  /// <summary>
263  /// Gets remaining early finish date - the date when the remaining work for the activity is scheduled to be finished.
264  /// </summary>
265  ASPOSE_TASKS_SHARED_API void set_RemainingEarlyFinish(System::DateTime value);
266  /// <summary>
267  /// Gets remaining early start date - the date when the remaining work for the activity is scheduled to begin.
268  /// </summary>
269  ASPOSE_TASKS_SHARED_API void set_RemainingEarlyStart(System::DateTime value);
270  /// <summary>
271  /// Gets remaining late start date.
272  /// </summary>
273  ASPOSE_TASKS_SHARED_API void set_RemainingLateStart(System::DateTime value);
274  /// <summary>
275  /// Gets remaining late finish date.
276  /// </summary>
277  ASPOSE_TASKS_SHARED_API void set_RemainingLateFinish(System::DateTime value);
278  /// <summary>
279  /// Gets raw text representation (as in source file) of 'Duration Type' field of the activity.
280  /// </summary>
281  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
282  ASPOSE_TASKS_SHARED_API void set_RawDurationType(const System::String& value);
283  /// <summary>
284  /// Gets the value of 'Duration Type' field of the activity.
285  /// </summary>
286  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
287  ASPOSE_TASKS_SHARED_API void set_DurationType(Primavera::PrimaveraDurationType value);
288  /// <summary>
289  /// Gets raw text representation (as in source file) of 'Activity Type' field of the activity.
290  /// </summary>
291  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
292  ASPOSE_TASKS_SHARED_API void set_RawActivityType(const System::String& value);
293  /// <summary>
294  /// Gets the value of 'Activity Type' field.
295  /// </summary>
296  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
297  ASPOSE_TASKS_SHARED_API void set_ActivityType(Primavera::PrimaveraActivityType value);
298  /// <summary>
299  /// Gets the value of '% Complete Type' field of the activity.
300  /// </summary>
301  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
302  ASPOSE_TASKS_SHARED_API void set_PercentCompleteType(Primavera::PrimaveraPercentCompleteType value);
303  /// <summary>
304  /// Gets raw text representation (as in source file) of '% Complete Type' field of the activity.
305  /// </summary>
306  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
307  ASPOSE_TASKS_SHARED_API void set_RawCompletePercentType(const System::String& value);
308  /// <summary>
309  /// Gets raw text representation (as in source file) of 'Status' field of the activity.
310  /// </summary>
311  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
312  ASPOSE_TASKS_SHARED_API void set_RawStatus(const System::String& value);
313  /// <summary>
314  /// Gets the value of Physical Percent Complete.
315  /// </summary>
316  /// <remarks>Applicable only to activities (non-summary tasks).</remarks>
317  ASPOSE_TASKS_SHARED_API void set_PhysicalPercentComplete(double value);
318  /// <summary>
319  /// Gets the value of duration percent complete.
320  /// </summary>
321  ASPOSE_TASKS_SHARED_API void set_DurationPercentComplete(double value);
322  /// <summary>
323  /// Gets the value of actual labor units.
324  /// </summary>
325  ASPOSE_TASKS_SHARED_API void set_ActualLaborUnits(double value);
326  /// <summary>
327  /// Gets the value of actual non labor units.
328  /// </summary>
329  ASPOSE_TASKS_SHARED_API void set_ActualNonLaborUnits(double value);
330  /// <summary>
331  /// Gets the value of remaining labor units.
332  /// </summary>
333  ASPOSE_TASKS_SHARED_API void set_RemainingLaborUnits(double value);
334  /// <summary>
335  /// Gets the value of remaining non labor units.
336  /// </summary>
337  ASPOSE_TASKS_SHARED_API void set_RemainingNonLaborUnits(double value);
338  /// <summary>
339  /// Gets the value of actual labor cost .
340  /// </summary>
341  ASPOSE_TASKS_SHARED_API void set_ActualLaborCost(System::Decimal value);
342  /// <summary>
343  /// Gets the value of budgeted (or planned) labor cost .
344  /// </summary>
345  ASPOSE_TASKS_SHARED_API void set_BudgetedLaborCost(System::Decimal value);
346  /// <summary>
347  /// Gets the value of actual non labor cost .
348  /// </summary>
349  ASPOSE_TASKS_SHARED_API void set_ActualNonlaborCost(System::Decimal value);
350  /// <summary>
351  /// Gets the value of budgeted (or planned) non labor cost .
352  /// </summary>
353  ASPOSE_TASKS_SHARED_API void set_BudgetedNonlaborCost(System::Decimal value);
354  /// <summary>
355  /// Gets the value of actual material cost.
356  /// </summary>
357  ASPOSE_TASKS_SHARED_API void set_ActualMaterialCost(System::Decimal value);
358  /// <summary>
359  /// Gets the value of of budgeted (or planned) material cost.
360  /// </summary>
361  ASPOSE_TASKS_SHARED_API void set_BudgetedMaterialCost(System::Decimal value);
362  /// <summary>
363  /// Gets the value of actual expense cost.
364  /// </summary>
365  ASPOSE_TASKS_SHARED_API void set_ActualExpenseCost(System::Decimal value);
366  /// <summary>
367  /// Gets the value of remaining expense cost.
368  /// </summary>
369  ASPOSE_TASKS_SHARED_API void set_RemainingExpenseCost(System::Decimal value);
370  /// <summary>
371  /// Gets the value of budgeted (or planned) expense cost.
372  /// </summary>
373  ASPOSE_TASKS_SHARED_API void set_BudgetedExpenseCost(System::Decimal value);
374  /// <summary>
375  /// Gets a type of primary constraint.
376  /// </summary>
377  ASPOSE_TASKS_SHARED_API void set_PrimaryConstraintType(Primavera::PrimaveraConstraintType value);
378  /// <summary>
379  /// Gets the date of primary constraint.
380  /// </summary>
381  ASPOSE_TASKS_SHARED_API void set_PrimaryConstraintDate(System::DateTime value);
382  /// <summary>
383  /// Gets a type of secondary constraint.
384  /// </summary>
385  ASPOSE_TASKS_SHARED_API void set_SecondaryConstraintType(Primavera::PrimaveraConstraintType value);
386  /// <summary>
387  /// Gets the date of secondary constraint.
388  /// </summary>
389  ASPOSE_TASKS_SHARED_API void set_SecondaryConstraintDate(System::DateTime value);
390 
391  ASPOSE_TASKS_SHARED_API PrimaveraTaskProperties();
392 
393  ASPOSE_TASKS_SHARED_API MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(PrimaveraTaskProperties, CODEPORTING_ARGS());
394  #ifdef ASPOSE_GET_SHARED_MEMBERS
395  ASPOSE_TASKS_SHARED_API void GetSharedMembers(System::Object::shared_members_type& result) const override;
396  #endif
397 
398 
399 private:
400 
401  int32_t pr_SequenceNumber;
402  System::String pr_ActivityId;
403  System::DateTime pr_RemainingEarlyFinish;
404  System::DateTime pr_RemainingEarlyStart;
405  System::DateTime pr_RemainingLateStart;
406  System::DateTime pr_RemainingLateFinish;
407  System::String pr_RawDurationType;
408  Primavera::PrimaveraDurationType pr_DurationType;
409  System::String pr_RawActivityType;
410  Primavera::PrimaveraActivityType pr_ActivityType;
411  Primavera::PrimaveraPercentCompleteType pr_PercentCompleteType;
412  System::String pr_RawCompletePercentType;
413  System::String pr_RawStatus;
414  double pr_PhysicalPercentComplete;
415  double pr_DurationPercentComplete;
416  double pr_ActualLaborUnits;
417  double pr_ActualNonLaborUnits;
418  double pr_RemainingLaborUnits;
419  double pr_RemainingNonLaborUnits;
420  System::Decimal pr_ActualLaborCost;
421  System::Decimal pr_BudgetedLaborCost;
422  System::Decimal pr_ActualNonlaborCost;
423  System::Decimal pr_BudgetedNonlaborCost;
424  System::Decimal pr_ActualMaterialCost;
425  System::Decimal pr_BudgetedMaterialCost;
426  System::Decimal pr_ActualExpenseCost;
427  System::Decimal pr_RemainingExpenseCost;
428  System::Decimal pr_BudgetedExpenseCost;
429  Primavera::PrimaveraConstraintType pr_PrimaryConstraintType;
430  System::DateTime pr_PrimaryConstraintDate;
431  Primavera::PrimaveraConstraintType pr_SecondaryConstraintType;
432  System::DateTime pr_SecondaryConstraintDate;
433 
434 };
435 
436 } // namespace Tasks
437 } // namespace Aspose
438 
439 
Definition: Asn.h:12
Represents Primavera-specific properties for a task read from Primavera files (XER of P6XML).
Definition: PrimaveraTaskProperties.h:71