process/load-kp: typescript fixes
This commit is contained in:
parent
f03ba9d979
commit
58fdfb1ed9
@ -1,6 +1,7 @@
|
||||
import message from 'Elements/message';
|
||||
import { reaction } from 'mobx';
|
||||
import type { ReactionsContext } from 'process/types';
|
||||
import { pick } from 'radash';
|
||||
|
||||
const key = 'KP_LOADING_INFO';
|
||||
|
||||
@ -21,12 +22,15 @@ export default function loadKpReactions({ store, trpcClient }: ReactionsContext)
|
||||
content: `Загружаем КП ${quoteName}...`,
|
||||
});
|
||||
|
||||
const payload = {
|
||||
values: {
|
||||
quote: quoteId,
|
||||
...pick($calculation.$values.values, ['recalcWithRevision']),
|
||||
},
|
||||
};
|
||||
|
||||
trpcClient.quote.getValues
|
||||
.query({
|
||||
values: {
|
||||
quote: quoteId,
|
||||
},
|
||||
})
|
||||
.query(payload)
|
||||
.then(({ values }) => {
|
||||
$calculation.$values.setValues({
|
||||
values,
|
||||
@ -36,7 +40,6 @@ export default function loadKpReactions({ store, trpcClient }: ReactionsContext)
|
||||
key,
|
||||
content: `КП ${quoteName} загружено`,
|
||||
});
|
||||
// hide();
|
||||
})
|
||||
.catch(() => {
|
||||
message.error({
|
||||
|
||||
25
process/load-kp/types.ts
Normal file
25
process/load-kp/types.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import ValuesSchema from 'config/schema/values';
|
||||
import { z } from 'zod';
|
||||
|
||||
export const GetQuoteDataInputSchema = z.object({
|
||||
values: z
|
||||
.object({
|
||||
quote: ValuesSchema.shape.quote.unwrap(),
|
||||
})
|
||||
.merge(
|
||||
ValuesSchema.pick({
|
||||
recalcWithRevision: true,
|
||||
})
|
||||
),
|
||||
});
|
||||
export type GetQuoteDataInput = z.infer<typeof GetQuoteDataInputSchema>;
|
||||
|
||||
export const GetQuoteDataOutputSchema = z.object({
|
||||
values: ValuesSchema,
|
||||
});
|
||||
export type GetQuoteDataOutput = z.infer<typeof GetQuoteDataOutputSchema>;
|
||||
|
||||
export const GetQuoteDataPartOutputSchema = z.object({
|
||||
values: ValuesSchema.partial(),
|
||||
});
|
||||
export type GetQuoteDataPartOutput = z.infer<typeof GetQuoteDataPartOutputSchema>;
|
||||
@ -1,7 +1,7 @@
|
||||
import { gql } from '@apollo/client';
|
||||
import initializeApollo from 'apollo/client';
|
||||
import type * as CRMTypes from 'graphql/crm.types';
|
||||
import type { CalculationValues } from 'stores/calculation/values/types';
|
||||
import type { GetQuoteDataInput, GetQuoteDataPartOutput } from '../../load-kp/types';
|
||||
import getSums from './get-sums';
|
||||
|
||||
const QUERY_GET_AGENTS_DATA_FROM_QUOTE = gql`
|
||||
@ -38,17 +38,9 @@ const QUERY_GET_AGENTS_DATA_FROM_QUOTE = gql`
|
||||
|
||||
export type Quote = NonNullable<CRMTypes.GetAgentsDataFromQuoteQuery['quote']>;
|
||||
|
||||
type GetSupplierAgentsFromKP = {
|
||||
quoteId: NonNullable<CalculationValues['quote']>;
|
||||
};
|
||||
|
||||
type GetSupplierAgentsFromKPResult = {
|
||||
values: Partial<CalculationValues>;
|
||||
};
|
||||
|
||||
export default async function getSupplierAgentsDataFromKP({
|
||||
quoteId,
|
||||
}: GetSupplierAgentsFromKP): Promise<GetSupplierAgentsFromKPResult> {
|
||||
values: { quote: quoteId },
|
||||
}: GetQuoteDataInput): Promise<GetQuoteDataPartOutput> {
|
||||
const apolloClient = initializeApollo();
|
||||
|
||||
const {
|
||||
|
||||
@ -1,30 +1,20 @@
|
||||
import defaultValues from 'config/default-values';
|
||||
import ValuesSchema from 'config/schema/values';
|
||||
import { GetQuoteDataInputSchema, GetQuoteDataOutputSchema } from 'process/load-kp/types';
|
||||
import getSupplierAgentsDataFromKP from 'process/supplier-agent/get-kp-values';
|
||||
import { z } from 'zod';
|
||||
import { t } from '../server';
|
||||
|
||||
const quoteRouter = t.router({
|
||||
getValues: t.procedure
|
||||
.input(
|
||||
z.object({
|
||||
values: ValuesSchema.pick({
|
||||
quote: true,
|
||||
}),
|
||||
})
|
||||
)
|
||||
.output(
|
||||
z.object({
|
||||
values: ValuesSchema,
|
||||
})
|
||||
)
|
||||
.input(GetQuoteDataInputSchema)
|
||||
.output(GetQuoteDataOutputSchema)
|
||||
.query(async ({ input }) => {
|
||||
const { values } = await getSupplierAgentsDataFromKP({
|
||||
quoteId: input.values.quote!,
|
||||
});
|
||||
const { values: supplierAgentsValues } = await getSupplierAgentsDataFromKP(input);
|
||||
|
||||
return {
|
||||
values: Object.assign(defaultValues, values),
|
||||
values: {
|
||||
...defaultValues,
|
||||
...supplierAgentsValues,
|
||||
},
|
||||
};
|
||||
}),
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user