Add task amount to task table and report
This commit is contained in:
parent
520522c419
commit
3105492c10
|
|
@ -81,6 +81,7 @@ class TaskFields {
|
|||
static const String date = 'date';
|
||||
static const String assignedTo = 'assigned_to';
|
||||
static const String createdBy = 'created_by';
|
||||
static const String amount = 'amount';
|
||||
}
|
||||
|
||||
abstract class TaskTime implements Built<TaskTime, TaskTimeBuilder> {
|
||||
|
|
@ -668,6 +669,7 @@ abstract class TaskEntity extends Object
|
|||
|
||||
switch (sortField) {
|
||||
case TaskFields.duration:
|
||||
case TaskFields.amount:
|
||||
response =
|
||||
taskA.calculateDuration().compareTo(taskB.calculateDuration());
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ enum TaskReportFields {
|
|||
status,
|
||||
assigned_to,
|
||||
created_by,
|
||||
amount,
|
||||
}
|
||||
|
||||
var memoizedTaskReport = memo10((
|
||||
|
|
@ -231,6 +232,17 @@ ReportResult taskReport(
|
|||
case TaskReportFields.created_by:
|
||||
value = userMap[task.createdUserId]?.listDisplayName ?? '';
|
||||
break;
|
||||
case TaskReportFields.amount:
|
||||
value = task.calculateAmount(
|
||||
taskRateSelector(
|
||||
company: userCompany.company,
|
||||
project: project,
|
||||
client: client,
|
||||
task: task,
|
||||
group: group,
|
||||
),
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!ReportResult.matchField(
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ class TaskPresenter extends EntityPresenter {
|
|||
TaskFields.customValue4,
|
||||
TaskFields.documents,
|
||||
TaskFields.date,
|
||||
TaskFields.amount,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -55,17 +56,16 @@ class TaskPresenter extends EntityPresenter {
|
|||
final task = entity as TaskEntity;
|
||||
final store = StoreProvider.of<AppState>(context);
|
||||
final state = store.state;
|
||||
final client = state.clientState.get(task.clientId);
|
||||
|
||||
switch (field) {
|
||||
case TaskFields.status:
|
||||
return EntityStatusChip(entity: task, showState: true);
|
||||
case TaskFields.client:
|
||||
final client = state.clientState.get(task.clientId);
|
||||
return LinkTextRelatedEntity(entity: client, relation: task);
|
||||
case TaskFields.rate:
|
||||
return Text(formatNumber(task.rate, context, clientId: task.clientId));
|
||||
case TaskFields.calculatedRate:
|
||||
final client = state.clientState.get(task.clientId);
|
||||
final rate = taskRateSelector(
|
||||
task: task,
|
||||
client: client,
|
||||
|
|
@ -119,6 +119,20 @@ class TaskPresenter extends EntityPresenter {
|
|||
return Text(presentCustomField(context, task.customValue4));
|
||||
case TaskFields.documents:
|
||||
return Text('${task.documents.length}');
|
||||
case TaskFields.amount:
|
||||
return Text(formatNumber(
|
||||
task.calculateAmount(
|
||||
taskRateSelector(
|
||||
company: state.company,
|
||||
project: state.projectState.map[task.projectId],
|
||||
client: state.clientState.map[task.clientId],
|
||||
task: task,
|
||||
group: state.groupState.map[client?.groupId],
|
||||
),
|
||||
),
|
||||
context,
|
||||
clientId: client?.id,
|
||||
));
|
||||
}
|
||||
|
||||
return super.getField(field: field, context: context);
|
||||
|
|
|
|||
Loading…
Reference in New Issue