integration of quotes into the project section #598
This commit is contained in:
parent
a1900ea267
commit
1a96288ebd
|
|
@ -343,6 +343,29 @@ EntityStats invoiceStatsForProject(
|
|||
return EntityStats(countActive: countActive, countArchived: countArchived);
|
||||
}
|
||||
|
||||
var memoizedQuoteStatsForProject = memo2((
|
||||
String projectId,
|
||||
BuiltMap<String, InvoiceEntity> quoteMap,
|
||||
) =>
|
||||
quoteStatsForProject(projectId, quoteMap));
|
||||
|
||||
EntityStats quoteStatsForProject(
|
||||
String projectId, BuiltMap<String, InvoiceEntity> quoteMap) {
|
||||
int countActive = 0;
|
||||
int countArchived = 0;
|
||||
quoteMap.forEach((quoteId, quote) {
|
||||
if (quote.projectId == projectId) {
|
||||
if (quote.isActive) {
|
||||
countActive++;
|
||||
} else if (quote.isArchived) {
|
||||
countArchived++;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return EntityStats(countActive: countActive, countArchived: countArchived);
|
||||
}
|
||||
|
||||
var memoizedInvoiceStatsForUser = memo2(
|
||||
(String userId, BuiltMap<String, InvoiceEntity> invoiceMap) =>
|
||||
invoiceStatsForUser(userId, invoiceMap));
|
||||
|
|
|
|||
|
|
@ -280,6 +280,12 @@ void handleProjectAction(
|
|||
entity: InvoiceEntity(state: state, client: client)
|
||||
.rebuild((b) => b..projectId = project.id));
|
||||
break;
|
||||
case EntityAction.newQuote:
|
||||
createEntity(
|
||||
entity: InvoiceEntity(
|
||||
state: state, client: client, entityType: EntityType.quote)
|
||||
.rebuild((b) => b..projectId = project.id));
|
||||
break;
|
||||
case EntityAction.invoiceProject:
|
||||
String lastClientId = '';
|
||||
bool hasMultipleClients = false;
|
||||
|
|
|
|||
|
|
@ -154,6 +154,16 @@ class _ProjectOverviewState extends State<ProjectOverview> {
|
|||
project.id, state.invoiceState.map)
|
||||
.present(localization.active, localization.archived),
|
||||
),
|
||||
if (company.isModuleEnabled(EntityType.quote))
|
||||
EntitiesListTile(
|
||||
entity: project,
|
||||
isFilter: widget.isFilter,
|
||||
entityType: EntityType.quote,
|
||||
title: localization.quotes,
|
||||
subtitle:
|
||||
memoizedQuoteStatsForProject(project.id, state.quoteState.map)
|
||||
.present(localization.active, localization.archived),
|
||||
),
|
||||
];
|
||||
|
||||
widgets.addAll([
|
||||
|
|
|
|||
Loading…
Reference in New Issue