Purchase orders
This commit is contained in:
parent
6be1041f7a
commit
c89ac2dd0d
|
|
@ -43,10 +43,10 @@ class PurchaseOrderFields {
|
|||
static const String autoBillEnabled = 'auto_bill_enabled';
|
||||
static const String contactName = 'contact_name';
|
||||
static const String contactEmail = 'contact_email';
|
||||
static const String clientCity = 'client_city';
|
||||
static const String clientState = 'client_state';
|
||||
static const String clientPostalCode = 'client_postal_code';
|
||||
static const String clientCountry = 'client_country';
|
||||
static const String vendorCity = 'vendor_city';
|
||||
static const String vendorState = 'vendor_state';
|
||||
static const String vendorPostalCode = 'vendor_postal_code';
|
||||
static const String vendorCountry = 'vendor_country';
|
||||
static const String quote = 'quote';
|
||||
static const String recurringInvoice = 'recurring_invoice';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,20 +6,20 @@ import 'package:built_collection/built_collection.dart';
|
|||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
||||
|
||||
ClientEntity purchaseOrderClientSelector(
|
||||
InvoiceEntity purchaseOrder, BuiltMap<String, ClientEntity> clientMap) {
|
||||
return clientMap[purchaseOrder.clientId];
|
||||
VendorEntity purchaseOrderClientSelector(
|
||||
InvoiceEntity purchaseOrder, BuiltMap<String, VendorEntity> vendorMap) {
|
||||
return vendorMap[purchaseOrder.vendorId];
|
||||
}
|
||||
|
||||
ClientContactEntity purchaseOrderContactSelector(
|
||||
InvoiceEntity purchaseOrder, ClientEntity client) {
|
||||
VendorContactEntity purchaseOrderContactSelector(
|
||||
InvoiceEntity purchaseOrder, VendorEntity vendor) {
|
||||
var contactIds = purchaseOrder.invitations
|
||||
.map((invitation) => invitation.clientContactId)
|
||||
.toList();
|
||||
if (contactIds.contains(client.primaryContact.id)) {
|
||||
contactIds = [client.primaryContact.id];
|
||||
if (contactIds.contains(vendor.primaryContact.id)) {
|
||||
contactIds = [vendor.primaryContact.id];
|
||||
}
|
||||
return client.contacts
|
||||
return vendor.contacts
|
||||
.firstWhere((contact) => contactIds.contains(contact.id), orElse: null);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class PurchaseOrderPresenter extends EntityPresenter {
|
|||
return [
|
||||
PurchaseOrderFields.status,
|
||||
PurchaseOrderFields.number,
|
||||
PurchaseOrderFields.client,
|
||||
PurchaseOrderFields.vendor,
|
||||
PurchaseOrderFields.amount,
|
||||
PurchaseOrderFields.date,
|
||||
PurchaseOrderFields.validUntil,
|
||||
|
|
@ -47,13 +47,13 @@ class PurchaseOrderPresenter extends EntityPresenter {
|
|||
PurchaseOrderFields.isViewed,
|
||||
PurchaseOrderFields.lastSentDate,
|
||||
PurchaseOrderFields.project,
|
||||
PurchaseOrderFields.vendor,
|
||||
PurchaseOrderFields.client,
|
||||
PurchaseOrderFields.contactName,
|
||||
PurchaseOrderFields.contactEmail,
|
||||
PurchaseOrderFields.clientState,
|
||||
PurchaseOrderFields.clientCity,
|
||||
PurchaseOrderFields.clientPostalCode,
|
||||
PurchaseOrderFields.clientCountry,
|
||||
PurchaseOrderFields.vendorState,
|
||||
PurchaseOrderFields.vendorCity,
|
||||
PurchaseOrderFields.vendorPostalCode,
|
||||
PurchaseOrderFields.vendorCountry,
|
||||
PurchaseOrderFields.partial,
|
||||
PurchaseOrderFields.partialDueDate,
|
||||
];
|
||||
|
|
@ -65,6 +65,7 @@ class PurchaseOrderPresenter extends EntityPresenter {
|
|||
final state = StoreProvider.of<AppState>(context).state;
|
||||
final purchaseOrder = entity as InvoiceEntity;
|
||||
final client = state.clientState.get(purchaseOrder.clientId);
|
||||
final vendor = state.vendorState.get(purchaseOrder.vendorId);
|
||||
|
||||
switch (field) {
|
||||
case PurchaseOrderFields.status:
|
||||
|
|
@ -125,18 +126,18 @@ class PurchaseOrderPresenter extends EntityPresenter {
|
|||
case PurchaseOrderFields.vendor:
|
||||
final vendor = state.vendorState.get(purchaseOrder.vendorId);
|
||||
return LinkTextRelatedEntity(entity: vendor, relation: purchaseOrder);
|
||||
case PurchaseOrderFields.clientState:
|
||||
return Text(client.state);
|
||||
case PurchaseOrderFields.clientCity:
|
||||
return Text(client.city);
|
||||
case PurchaseOrderFields.clientPostalCode:
|
||||
return Text(client.postalCode);
|
||||
case PurchaseOrderFields.clientCountry:
|
||||
case PurchaseOrderFields.vendorState:
|
||||
return Text(vendor.state);
|
||||
case PurchaseOrderFields.vendorCity:
|
||||
return Text(vendor.city);
|
||||
case PurchaseOrderFields.vendorPostalCode:
|
||||
return Text(vendor.postalCode);
|
||||
case PurchaseOrderFields.vendorCountry:
|
||||
return Text(state.staticState.countryMap[client.countryId]?.name ?? '');
|
||||
case PurchaseOrderFields.contactName:
|
||||
case PurchaseOrderFields.contactEmail:
|
||||
final contact = purchaseOrderContactSelector(
|
||||
purchaseOrder, state.clientState.get(purchaseOrder.clientId));
|
||||
purchaseOrder, state.vendorState.get(purchaseOrder.vendorId));
|
||||
if (contact == null) {
|
||||
return SizedBox();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue