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