Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Products up #4502

Merged
merged 3 commits into from
Jun 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import {
KEY_LABELS,
LANGUAGES,
LOG_RETENTION_DURATION,
MEASUREMENTS,
SERVICE_TYPES
} from '@erxes/ui-settings/src/general/constants';
import { IConfigsMap } from '@erxes/ui-settings/src/general/types';
Expand Down Expand Up @@ -274,15 +273,6 @@ class GeneralSettings extends React.Component<Props, State> {
/>
</FormGroup>

<FormGroup>
<ControlLabel>Unit of measurement</ControlLabel>
<Select
options={MEASUREMENTS}
value={configsMap.dealUOM}
onChange={this.onChangeMultiCombo.bind(this, 'dealUOM')}
multi={true}
/>
</FormGroup>
<FormGroup>
<ControlLabel>
{__('Team members who can access every branches')}
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/data/resolvers/mutations/configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ const configMutations = {
}

if (
['dealUOM', 'dealCurrency'].includes(code) &&
['dealCurrency'].includes(code) &&
(prevConfig.value || '').toString() !==
(updatedConfig.value || '').toString()
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,60 @@ import {
sendProductsMessage
} from '../../../messageBroker';

export const generateProducts = async (subdomain: string, productsData) => {
export const generateProducts = async (
subdomain: string,
productsData?: any[]
) => {
const products: any = [];

if (!productsData || !productsData.length) {
return products;
}

const productIds = productsData
.filter(pd => pd.productId)
.map(pd => pd.productId);

const allProducts = await sendProductsMessage({
subdomain,
action: 'find',
data: { query: { _id: { $in: productIds } }, limit: productsData.length },
isRPC: true,
defaultValue: []
});

for (const data of productsData || []) {
if (!data.productId) {
continue;
}
const product = allProducts.find(p => p._id === data.productId);

const product =
(await sendProductsMessage({
subdomain,
action: 'findOne',
data: { _id: data.productId },
isRPC: true
})) || {};
if (!product) {
continue;
}

const { customFieldsData } = product;

const customFields: any[] = [];

const fieldIds: string[] = [];
for (const customFieldData of customFieldsData || []) {
const field = await sendFormsMessage({
subdomain,
action: 'fields.findOne',
data: {
query: {
_id: customFieldData.field
}
},
isRPC: true
});
fieldIds.push(customFieldData.field);
}

const fields = await sendFormsMessage({
subdomain,
action: 'fields.find',
data: {
query: {
_id: { $in: fieldIds }
}
},
isRPC: true
});

for (const customFieldData of customFieldsData || []) {
const field = fields.find(f => f._id === customFieldData.field);

if (field) {
customFields[customFieldData.field] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,36 +9,60 @@ import {
sendProductsMessage
} from '../../../messageBroker';

export const generateProducts = async (subdomain: string, productsData) => {
export const generateProducts = async (
subdomain: string,
productsData?: any[]
) => {
const products: any = [];

if (!productsData || !productsData.length) {
return products;
}

const productIds = productsData
.filter(pd => pd.productId)
.map(pd => pd.productId);

const allProducts = await sendProductsMessage({
subdomain,
action: 'find',
data: { query: { _id: { $in: productIds } }, limit: productsData.length },
isRPC: true,
defaultValue: []
});

for (const data of productsData || []) {
if (!data.productId) {
continue;
}
const product =
(await sendProductsMessage({
subdomain,
action: 'findOne',
data: { _id: data.productId },
isRPC: true
})) || {};
const product = allProducts.find(p => p._id === data.productId);

if (!product) {
continue;
}

const { customFieldsData } = product;

const customFields: any[] = [];

const fieldIds: string[] = [];
for (const customFieldData of customFieldsData || []) {
const field = await sendFormsMessage({
subdomain,
action: 'fields.findOne',
data: {
query: {
_id: customFieldData.field
}
},
isRPC: true
});
fieldIds.push(customFieldData.field);
}

const fields = await sendFormsMessage({
subdomain,
action: 'fields.find',
data: {
query: {
_id: { $in: fieldIds }
}
},
isRPC: true
});

for (const customFieldData of customFieldsData || []) {
const field = fields.find(f => f._id === customFieldData.field);

if (field) {
customFields[customFieldData.field] = {
Expand Down
37 changes: 0 additions & 37 deletions packages/plugin-cards-api/src/graphql/resolvers/mutations/deals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,43 +114,6 @@ const dealMutations = {
doc: IItemDragCommonFields,
{ user, models, subdomain }: IContext
) {
const deal = await models.Deals.getDeal(doc.itemId);

if (deal.productsData) {
const productsData = deal.productsData;

const stage = await models.Stages.getStage(doc.destinationStageId);
const prevStage = await models.Stages.getStage(doc.sourceStageId);

const productIds = productsData.map(p => p.productId);

if (stage.probability === 'Won' || prevStage.probability === 'Won') {
const products = await sendProductsMessage({
subdomain,
action: 'find',
data: {
query: {
_id: { $in: productIds },
supply: { $ne: 'unlimited' }
}
},
isRPC: true,
defaultValue: []
});

const multiplier = stage.probability === 'Won' ? -1 : 1;

await sendProductsMessage({
subdomain,
action: 'update',
data: {
selector: { _id: { $in: products.map(p => p._id) } },
modifier: { $inc: { productCount: multiplier } }
}
});
}
}

return itemsChange(
models,
subdomain,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -228,42 +228,6 @@ const purchaseMutations = {
doc: IItemDragCommonFields,
{ user, models, subdomain }: IContext
) {
const purchase = await models.Purchases.getPurchase(doc.itemId);

if (purchase.productsData) {
const productsData = purchase.productsData;
const stage = await models.Stages.getStage(doc.destinationStageId);
const prevStage = await models.Stages.getStage(doc.sourceStageId);

const productIds = productsData.map(p => p.productId);

if (stage.probability === 'Won' || prevStage.probability === 'Won') {
const products = await sendProductsMessage({
subdomain,
action: 'find',
data: {
query: {
_id: { $in: productIds },
supply: { $ne: 'unlimited' }
}
},
isRPC: true,
defaultValue: []
});

const multiplier = stage.probability === 'Won' ? -1 : 1;

await sendProductsMessage({
subdomain,
action: 'update',
data: {
selector: { _id: { $in: products.map(p => p._id) } },
modifier: { $inc: { productCount: multiplier } }
}
});
}
}

return itemsChange(
models,
subdomain,
Expand Down
31 changes: 0 additions & 31 deletions packages/plugin-cards-api/src/models/definitions/constants.ts
Original file line number Diff line number Diff line change
@@ -1,34 +1,3 @@
export const PRODUCT_TYPES = {
PRODUCT: 'product',
SERVICE: 'service',
ALL: ['product', 'service']
};

export const PRODUCT_STATUSES = {
ACTIVE: 'active',
DELETED: 'deleted',
ALL: ['active', 'deleted']
};

export const PRODUCT_TEMPLATE_STATUSES = {
ACTIVE: 'active',
ARCHIVED: 'archived',
ALL: ['active', 'archived']
};
export const PRODUCT_CATEGORY_STATUSES = {
ACTIVE: 'active',
DISABLED: 'disabled',
ARCHIVED: 'archived',
ALL: ['active', 'disabled', 'archived']
};

export const PRODUCT_SUPPLY = {
UNIQUE: 'unique',
LIMITED: 'limited',
UNLIMITED: 'unlimited',
ALL: ['unique', 'limited', 'unlimited']
};

export const VISIBLITIES = {
PUBLIC: 'public',
PRIVATE: 'private',
Expand Down