@things-factory/product-base 8.0.94 → 8.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/service/product/product-query.js +2 -0
- package/dist-server/service/product/product-query.js.map +1 -1
- package/dist-server/service/product/product-types.d.ts +12 -0
- package/dist-server/service/product/product-types.js +56 -0
- package/dist-server/service/product/product-types.js.map +1 -1
- package/dist-server/service/product/product.d.ts +15 -0
- package/dist-server/service/product/product.js +52 -1
- package/dist-server/service/product/product.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/server/service/product/product-query.ts +2 -0
- package/server/service/product/product-types.ts +48 -0
- package/server/service/product/product.ts +52 -0
|
@@ -90,6 +90,8 @@ let ProductQuery = class ProductQuery {
|
|
|
90
90
|
.leftJoinAndSelect('Product.routing', 'Routing')
|
|
91
91
|
.leftJoinAndSelect('Product.deliverTo', 'deliverTo')
|
|
92
92
|
.leftJoinAndSelect('Product.manufacturedBy', 'manufacturedBy')
|
|
93
|
+
.leftJoinAndSelect('Product.stockRefProduct', 'stockRefProduct')
|
|
94
|
+
.leftJoinAndSelect('Product.defaultContactPoint', 'defaultContactPoint')
|
|
93
95
|
.getManyAndCount();
|
|
94
96
|
items = items.map(itm => {
|
|
95
97
|
let defaultProductDetail = itm.productDetails.find(itm => itm.isDefault);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-query.js","sourceRoot":"","sources":["../../../server/service/product/product-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, In, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport {\n Bizplace,\n getCompaniesBizplaces,\n getCompanyBizplace,\n getMyBizplace,\n getPartnersCompanyBizplaces,\n getPermittedBizplaceIds\n} from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { buildCondition, Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from './product'\nimport { ProductList } from './product-types'\n\nconst debug = require('debug')('things-factory:product-base:product')\n\n@Resolver(Product)\nexport class ProductQuery {\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Product)\n async product(@Arg('sku') sku: string, @Ctx() context: ResolverContext): Promise<Product> {\n const { domain, user, bizplace } = context.state\n\n if (bizplace) {\n return await getRepository(Product).findOne({\n where: {\n domain: { id: domain.id },\n sku,\n bizplace: { id: bizplace.id }\n },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n } else {\n return await getRepository(Product).findOne({\n where: {\n domain: { id: domain.id },\n sku,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Product)\n async productById(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Product> {\n const { domain, user } = context.state\n return await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async products(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<ProductList> {\n const { domain, user } = context.state\n const { domains }: { domains: Domain[] } = user as any /* TODO clarify this */\n let bizplaces: Bizplace[]\n\n if (!params.filters.find((filter: any) => filter.name === 'bizplace_id')) {\n const warehouseDomain: Domain = domain\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n\n bizplaces = [...companiesBizplaces, ...partnersCompanyBizplaces]\n } else {\n const bizplaceId: string[] = params.filters.filter(param => param.name == 'bizplace_id').map(item => item.value)\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId[0] },\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n bizplaces = [companyBizplace, foundBizplace]\n }\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb\n .leftJoinAndSelect('Product.productDetails', 'ProductDetails')\n .leftJoinAndSelect('ProductDetails.childProductDetail', 'ChildProductDetail')\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async myBizplaceProducts(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const bizplaceFilter = params.filters.find(filter => filter.name === 'bizplace_id')\n\n let bizplaces: Bizplace[] = []\n if (!bizplaceFilter) {\n bizplaces.push(await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } }))\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb\n .leftJoinAndSelect('Product.productDetails', 'ProductDetails')\n .leftJoinAndSelect('Product.routing', 'Routing')\n .leftJoinAndSelect('Product.deliverTo', 'deliverTo')\n .leftJoinAndSelect('Product.manufacturedBy', 'manufacturedBy')\n .getManyAndCount()\n\n items = items.map(itm => {\n let defaultProductDetail = itm.productDetails.find(itm => itm.isDefault)\n return {\n ...itm,\n ...new ProductDetail(defaultProductDetail, true)\n }\n })\n\n return { items, total }\n } catch (error) {\n logger.error(`product-query[myBizplaceProducts]: ${error}`)\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async productsByBizplace(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n const { domain, user } = context.state\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')\n\n try {\n let bizplaces: Bizplace[]\n if (!bizplaceFilter || bizplaceFilter.value == '') {\n bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]\n } else {\n let myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceFilter.value },\n relations: ['company', 'company.domain']\n })\n\n bizplaces = [\n myBizplace,\n await getRepository(Bizplace).findOne({\n where: { domain: { id: myBizplace.company.domain.id } }\n })\n ]\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb.leftJoinAndSelect('Product.productDetails', 'ProductDetails').getManyAndCount()\n\n items = items.map(itm => {\n let defaultProductDetail = itm.productDetails?.find(itm => itm.isDefault)\n return {\n ...itm,\n ...new ProductDetail(defaultProductDetail, true)\n }\n })\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n /**\n * @description this resolver was specially made to return huge products data\n * without dropping off performance due to typegraphql limitations\n * @returns pure product data only. there will be no other table joined to avoid\n * ORM lagging issue (converting to object extremely withdraws the performance)\n * */\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async pureProductsByBizplace(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n const { domain, user } = context.state\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')\n\n try {\n let bizplaces: Bizplace[]\n if (!bizplaceFilter || bizplaceFilter.value == '') {\n bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]\n } else {\n let myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceFilter.value },\n relations: ['company', 'company.domain']\n })\n\n bizplaces = [\n myBizplace,\n await getRepository(Bizplace).findOne({\n where: { domain: { id: myBizplace.company.domain.id } }\n })\n ]\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n let items = await (await qb.getRawMany()).map(item => new Product(item))\n let total = await qb.getCount()\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() product: Product): Promise<Domain> {\n if (product.domainId) return await getRepository(Domain).findOneBy({ id: product.domainId })\n else return null\n }\n\n @FieldResolver(type => Bizplace)\n async bizplace(@Root() product: Product): Promise<Bizplace> {\n if (product.bizplaceId) return await getRepository(Bizplace).findOneBy({ id: product.bizplaceId })\n else return null\n }\n\n @FieldResolver(type => User)\n async creator(@Root() product: Product): Promise<User> {\n if (product.creatorId) return await getRepository(User).findOneBy({ id: product.creatorId })\n else return null\n }\n\n @FieldResolver(type => User)\n async updater(@Root() product: Product): Promise<User> {\n if (product.updaterId) return await getRepository(User).findOneBy({ id: product.updaterId })\n else return null\n }\n\n @FieldResolver(type => Product)\n async parentProductRef(@Root() product: Product): Promise<Product> {\n if (product.parentProductRefId) return await getRepository(Product).findOneBy({ id: product.parentProductRefId })\n else return null\n }\n\n @FieldResolver(type => Product)\n async productRef(@Root() product: Product): Promise<Product> {\n if (product.productRefId) return await getRepository(Product).findOneBy({ id: product.productRefId })\n else return null\n }\n\n @FieldResolver(type => String)\n async thumbnail(@Root() product: Product): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: product.domainId },\n refBy: product.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => String)\n productInformation(@Root() product: Product): String {\n return `[${product.sku}] ${product.name}${product.description ? ` - ${product.description}` : ''}`\n }\n\n @FieldResolver(type => String, { nullable: true })\n async warehouseName(@Root() product: Product): Promise<String | undefined> {\n if (!product.warehouseId) return null\n\n const items = await getRepository(Product).query(`\n SELECT w.name as \"warehouseName\" FROM products p LEFT JOIN warehouses w ON p.warehouse_id::uuid = w.id and w.domain_id = p.domain_id WHERE p.id = '${product.id}'\n `)\n\n return items[0].warehouseName || null\n }\n}\n\nfunction buildCustomConditions(params, context, bizplaces): SelectQueryBuilder<Product> {\n const deletedFilter = params.filters.find(x => x.name == 'deleted')\n const productFilters = params.filters.find(x => x.name == 'product_info')\n const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand', 'id']\n\n // sap코드는 라이크 검색\n params.filters = params.filters.map(x => (x.name == 'brandSku' ? { ...x, operator: 'i_like' } : x))\n\n try {\n params.filters = [\n ...params.filters.filter(x => ['product_info', 'bizplace', 'bizplaceId', 'deleted'].indexOf(x.name) == -1),\n { name: 'deletedAt', operator: deletedFilter?.value ? 'is_not_null' : 'is_null' },\n { name: 'bizplaceId', operator: 'in', value: bizplaces.map(bizplace => bizplace.id) }\n ]\n } catch (err) {\n // error with no bizplace.\n debug('[WARN] params.filters', err.message)\n }\n\n const qb = getQueryBuilderFromListParams({\n repository: getRepository(Product),\n alias: 'Product',\n params,\n domain: context.domain,\n searchables: ['sku', 'name', 'description', 'brandSku']\n })\n\n if (productFilters) {\n qb.andWhere(\n new Brackets(qb2 => {\n productFilterColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productFilters.operator,\n productFilters.value,\n productFilters.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n return qb\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-query.js","sourceRoot":"","sources":["../../../server/service/product/product-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, In, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport {\n Bizplace,\n getCompaniesBizplaces,\n getCompanyBizplace,\n getMyBizplace,\n getPartnersCompanyBizplaces,\n getPermittedBizplaceIds\n} from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { buildCondition, Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from './product'\nimport { ProductList } from './product-types'\n\nconst debug = require('debug')('things-factory:product-base:product')\n\n@Resolver(Product)\nexport class ProductQuery {\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Product)\n async product(@Arg('sku') sku: string, @Ctx() context: ResolverContext): Promise<Product> {\n const { domain, user, bizplace } = context.state\n\n if (bizplace) {\n return await getRepository(Product).findOne({\n where: {\n domain: { id: domain.id },\n sku,\n bizplace: { id: bizplace.id }\n },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n } else {\n return await getRepository(Product).findOne({\n where: {\n domain: { id: domain.id },\n sku,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => Product)\n async productById(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Product> {\n const { domain, user } = context.state\n return await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'bizplace', 'productRef', 'creator', 'updater']\n })\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async products(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<ProductList> {\n const { domain, user } = context.state\n const { domains }: { domains: Domain[] } = user as any /* TODO clarify this */\n let bizplaces: Bizplace[]\n\n if (!params.filters.find((filter: any) => filter.name === 'bizplace_id')) {\n const warehouseDomain: Domain = domain\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n\n bizplaces = [...companiesBizplaces, ...partnersCompanyBizplaces]\n } else {\n const bizplaceId: string[] = params.filters.filter(param => param.name == 'bizplace_id').map(item => item.value)\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId[0] },\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n bizplaces = [companyBizplace, foundBizplace]\n }\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb\n .leftJoinAndSelect('Product.productDetails', 'ProductDetails')\n .leftJoinAndSelect('ProductDetails.childProductDetail', 'ChildProductDetail')\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async myBizplaceProducts(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n try {\n const { domain, user }: { domain: Domain; user: User } = context.state\n const bizplaceFilter = params.filters.find(filter => filter.name === 'bizplace_id')\n\n let bizplaces: Bizplace[] = []\n if (!bizplaceFilter) {\n bizplaces.push(await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } }))\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb\n .leftJoinAndSelect('Product.productDetails', 'ProductDetails')\n .leftJoinAndSelect('Product.routing', 'Routing')\n .leftJoinAndSelect('Product.deliverTo', 'deliverTo')\n .leftJoinAndSelect('Product.manufacturedBy', 'manufacturedBy')\n .leftJoinAndSelect('Product.stockRefProduct', 'stockRefProduct')\n .leftJoinAndSelect('Product.defaultContactPoint', 'defaultContactPoint')\n .getManyAndCount()\n\n items = items.map(itm => {\n let defaultProductDetail = itm.productDetails.find(itm => itm.isDefault)\n return {\n ...itm,\n ...new ProductDetail(defaultProductDetail, true)\n }\n })\n\n return { items, total }\n } catch (error) {\n logger.error(`product-query[myBizplaceProducts]: ${error}`)\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async productsByBizplace(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n const { domain, user } = context.state\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')\n\n try {\n let bizplaces: Bizplace[]\n if (!bizplaceFilter || bizplaceFilter.value == '') {\n bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]\n } else {\n let myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceFilter.value },\n relations: ['company', 'company.domain']\n })\n\n bizplaces = [\n myBizplace,\n await getRepository(Bizplace).findOne({\n where: { domain: { id: myBizplace.company.domain.id } }\n })\n ]\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n\n let [items, total] = await qb.leftJoinAndSelect('Product.productDetails', 'ProductDetails').getManyAndCount()\n\n items = items.map(itm => {\n let defaultProductDetail = itm.productDetails?.find(itm => itm.isDefault)\n return {\n ...itm,\n ...new ProductDetail(defaultProductDetail, true)\n }\n })\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n /**\n * @description this resolver was specially made to return huge products data\n * without dropping off performance due to typegraphql limitations\n * @returns pure product data only. there will be no other table joined to avoid\n * ORM lagging issue (converting to object extremely withdraws the performance)\n * */\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ProductList)\n async pureProductsByBizplace(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductList> {\n const { domain, user } = context.state\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace')\n\n try {\n let bizplaces: Bizplace[]\n if (!bizplaceFilter || bizplaceFilter.value == '') {\n bizplaces = [await getMyBizplace(domain, user), await getCompanyBizplace(domain, user)]\n } else {\n let myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceFilter.value },\n relations: ['company', 'company.domain']\n })\n\n bizplaces = [\n myBizplace,\n await getRepository(Bizplace).findOne({\n where: { domain: { id: myBizplace.company.domain.id } }\n })\n ]\n }\n\n const qb: SelectQueryBuilder<Product> = buildCustomConditions(params, context, bizplaces)\n let items = await (await qb.getRawMany()).map(item => new Product(item))\n let total = await qb.getCount()\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() product: Product): Promise<Domain> {\n if (product.domainId) return await getRepository(Domain).findOneBy({ id: product.domainId })\n else return null\n }\n\n @FieldResolver(type => Bizplace)\n async bizplace(@Root() product: Product): Promise<Bizplace> {\n if (product.bizplaceId) return await getRepository(Bizplace).findOneBy({ id: product.bizplaceId })\n else return null\n }\n\n @FieldResolver(type => User)\n async creator(@Root() product: Product): Promise<User> {\n if (product.creatorId) return await getRepository(User).findOneBy({ id: product.creatorId })\n else return null\n }\n\n @FieldResolver(type => User)\n async updater(@Root() product: Product): Promise<User> {\n if (product.updaterId) return await getRepository(User).findOneBy({ id: product.updaterId })\n else return null\n }\n\n @FieldResolver(type => Product)\n async parentProductRef(@Root() product: Product): Promise<Product> {\n if (product.parentProductRefId) return await getRepository(Product).findOneBy({ id: product.parentProductRefId })\n else return null\n }\n\n @FieldResolver(type => Product)\n async productRef(@Root() product: Product): Promise<Product> {\n if (product.productRefId) return await getRepository(Product).findOneBy({ id: product.productRefId })\n else return null\n }\n\n @FieldResolver(type => String)\n async thumbnail(@Root() product: Product): Promise<string | undefined> {\n const attachment: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: product.domainId },\n refBy: product.id\n }\n })\n\n return attachment?.fullpath\n }\n\n @FieldResolver(type => String)\n productInformation(@Root() product: Product): String {\n return `[${product.sku}] ${product.name}${product.description ? ` - ${product.description}` : ''}`\n }\n\n @FieldResolver(type => String, { nullable: true })\n async warehouseName(@Root() product: Product): Promise<String | undefined> {\n if (!product.warehouseId) return null\n\n const items = await getRepository(Product).query(`\n SELECT w.name as \"warehouseName\" FROM products p LEFT JOIN warehouses w ON p.warehouse_id::uuid = w.id and w.domain_id = p.domain_id WHERE p.id = '${product.id}'\n `)\n\n return items[0].warehouseName || null\n }\n}\n\nfunction buildCustomConditions(params, context, bizplaces): SelectQueryBuilder<Product> {\n const deletedFilter = params.filters.find(x => x.name == 'deleted')\n const productFilters = params.filters.find(x => x.name == 'product_info')\n const productFilterColumns = ['sku', 'brandSku', 'name', 'description', 'brand', 'subBrand', 'id']\n\n // sap코드는 라이크 검색\n params.filters = params.filters.map(x => (x.name == 'brandSku' ? { ...x, operator: 'i_like' } : x))\n\n try {\n params.filters = [\n ...params.filters.filter(x => ['product_info', 'bizplace', 'bizplaceId', 'deleted'].indexOf(x.name) == -1),\n { name: 'deletedAt', operator: deletedFilter?.value ? 'is_not_null' : 'is_null' },\n { name: 'bizplaceId', operator: 'in', value: bizplaces.map(bizplace => bizplace.id) }\n ]\n } catch (err) {\n // error with no bizplace.\n debug('[WARN] params.filters', err.message)\n }\n\n const qb = getQueryBuilderFromListParams({\n repository: getRepository(Product),\n alias: 'Product',\n params,\n domain: context.domain,\n searchables: ['sku', 'name', 'description', 'brandSku']\n })\n\n if (productFilters) {\n qb.andWhere(\n new Brackets(qb2 => {\n productFilterColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productFilters.operator,\n productFilters.value,\n productFilters.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n return qb\n}\n"]}
|
|
@@ -78,6 +78,12 @@ export declare class NewProduct {
|
|
|
78
78
|
sellCurrency?: string;
|
|
79
79
|
costCurrency?: string;
|
|
80
80
|
defaultPrintUomUnit?: string;
|
|
81
|
+
isPurchaseOrder?: boolean;
|
|
82
|
+
purchaseYield?: number;
|
|
83
|
+
purchaseMultiple?: number;
|
|
84
|
+
stockRefProduct?: ObjectRef;
|
|
85
|
+
defaultContactPoint?: ObjectRef;
|
|
86
|
+
secondFloorType?: string;
|
|
81
87
|
}
|
|
82
88
|
export declare class ProductList {
|
|
83
89
|
items?: Product[];
|
|
@@ -161,5 +167,11 @@ export declare class ProductPatch {
|
|
|
161
167
|
sellCurrency?: string;
|
|
162
168
|
costCurrency?: string;
|
|
163
169
|
defaultPrintUomUnit?: string;
|
|
170
|
+
isPurchaseOrder?: boolean;
|
|
171
|
+
purchaseYield?: number;
|
|
172
|
+
purchaseMultiple?: number;
|
|
173
|
+
stockRefProduct?: ObjectRef;
|
|
174
|
+
defaultContactPoint?: ObjectRef;
|
|
175
|
+
secondFloorType?: string;
|
|
164
176
|
cuFlag?: string;
|
|
165
177
|
}
|
|
@@ -307,6 +307,34 @@ tslib_1.__decorate([
|
|
|
307
307
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
308
308
|
tslib_1.__metadata("design:type", String)
|
|
309
309
|
], NewProduct.prototype, "defaultPrintUomUnit", void 0);
|
|
310
|
+
tslib_1.__decorate([
|
|
311
|
+
(0, type_graphql_1.Field)(type => Boolean, { nullable: true }),
|
|
312
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
313
|
+
], NewProduct.prototype, "isPurchaseOrder", void 0);
|
|
314
|
+
tslib_1.__decorate([
|
|
315
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true }),
|
|
316
|
+
tslib_1.__metadata("design:type", Number)
|
|
317
|
+
], NewProduct.prototype, "purchaseYield", void 0);
|
|
318
|
+
tslib_1.__decorate([
|
|
319
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true }),
|
|
320
|
+
tslib_1.__metadata("design:type", Number)
|
|
321
|
+
], NewProduct.prototype, "purchaseMultiple", void 0);
|
|
322
|
+
tslib_1.__decorate([
|
|
323
|
+
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
|
324
|
+
tslib_1.__metadata("design:type", shell_1.ObjectRef
|
|
325
|
+
// 기본거래처(2F)
|
|
326
|
+
)
|
|
327
|
+
], NewProduct.prototype, "stockRefProduct", void 0);
|
|
328
|
+
tslib_1.__decorate([
|
|
329
|
+
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
|
330
|
+
tslib_1.__metadata("design:type", shell_1.ObjectRef
|
|
331
|
+
// 2층구분(2F)
|
|
332
|
+
)
|
|
333
|
+
], NewProduct.prototype, "defaultContactPoint", void 0);
|
|
334
|
+
tslib_1.__decorate([
|
|
335
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
336
|
+
tslib_1.__metadata("design:type", String)
|
|
337
|
+
], NewProduct.prototype, "secondFloorType", void 0);
|
|
310
338
|
exports.NewProduct = NewProduct = tslib_1.__decorate([
|
|
311
339
|
(0, type_graphql_1.InputType)()
|
|
312
340
|
], NewProduct);
|
|
@@ -635,6 +663,34 @@ tslib_1.__decorate([
|
|
|
635
663
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
636
664
|
tslib_1.__metadata("design:type", String)
|
|
637
665
|
], ProductPatch.prototype, "defaultPrintUomUnit", void 0);
|
|
666
|
+
tslib_1.__decorate([
|
|
667
|
+
(0, type_graphql_1.Field)(type => Boolean, { nullable: true }),
|
|
668
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
669
|
+
], ProductPatch.prototype, "isPurchaseOrder", void 0);
|
|
670
|
+
tslib_1.__decorate([
|
|
671
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true }),
|
|
672
|
+
tslib_1.__metadata("design:type", Number)
|
|
673
|
+
], ProductPatch.prototype, "purchaseYield", void 0);
|
|
674
|
+
tslib_1.__decorate([
|
|
675
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true }),
|
|
676
|
+
tslib_1.__metadata("design:type", Number)
|
|
677
|
+
], ProductPatch.prototype, "purchaseMultiple", void 0);
|
|
678
|
+
tslib_1.__decorate([
|
|
679
|
+
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
|
680
|
+
tslib_1.__metadata("design:type", shell_1.ObjectRef
|
|
681
|
+
// 기본거래처(2F)
|
|
682
|
+
)
|
|
683
|
+
], ProductPatch.prototype, "stockRefProduct", void 0);
|
|
684
|
+
tslib_1.__decorate([
|
|
685
|
+
(0, type_graphql_1.Field)(type => shell_1.ObjectRef, { nullable: true }),
|
|
686
|
+
tslib_1.__metadata("design:type", shell_1.ObjectRef
|
|
687
|
+
// 2층구분(2F)
|
|
688
|
+
)
|
|
689
|
+
], ProductPatch.prototype, "defaultContactPoint", void 0);
|
|
690
|
+
tslib_1.__decorate([
|
|
691
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
692
|
+
tslib_1.__metadata("design:type", String)
|
|
693
|
+
], ProductPatch.prototype, "secondFloorType", void 0);
|
|
638
694
|
tslib_1.__decorate([
|
|
639
695
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
640
696
|
tslib_1.__metadata("design:type", String)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-types.js","sourceRoot":"","sources":["../../../server/service/product/product-types.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Field, Float, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { BizplacePatch } from '@things-factory/biz-base'\nimport { ObjectRef } from '@things-factory/shell'\n\nimport { ProductDetailPatch } from '../product-detail/product-detail-types'\nimport { Product } from './product'\n\n@InputType()\nexport class NewProduct {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n sku?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n bizplace?: BizplacePatch\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n origin?: string\n\n @Field(type => ObjectRef, { nullable: true })\n productRef?: ObjectRef\n\n @Field({ nullable: true })\n parentProductRef?: ObjectRef\n\n @Field(type => [ObjectRef], { nullable: true })\n childProducts?: ObjectRef[]\n\n @Field(type => [ProductDetailPatch], { nullable: true })\n productDetails?: ProductDetailPatch[]\n\n @Field(type => Float, { nullable: true })\n bundleQty?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => Int, { nullable: true })\n expirationPeriod?: number\n\n @Field({ nullable: true })\n movement?: string\n\n @Field({ nullable: true })\n weightUnit?: string\n\n @Field(type => Float, { nullable: true })\n nettWeight?: number\n\n @Field(type => Float, { nullable: true })\n density?: number\n\n @Field({ nullable: true })\n packingType?: string\n\n @Field({ nullable: true })\n lengthUnit?: string\n\n @Field(type => Float, { nullable: true })\n costPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxCostPrice?: number\n\n @Field(type => Float, { nullable: true })\n sellPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxSalesPrice?: number\n\n @Field(type => Float, { nullable: true })\n mrpPrice?: number\n\n @Field(type => Float, { nullable: true })\n bufferQty?: number\n\n @Field(type => Float, { nullable: true })\n minQty?: number\n\n @Field(type => Float, { nullable: true })\n maxQty?: number\n\n @Field(type => Float, { nullable: true })\n width?: number\n\n @Field(type => Float, { nullable: true })\n depth?: number\n\n @Field(type => Float, { nullable: true })\n height?: number\n\n @Field({ nullable: true })\n primaryUnit?: string\n\n @Field(type => Float, { nullable: true })\n primaryValue?: number\n\n @Field({ nullable: true })\n uom?: string\n\n @Field(type => Float, { nullable: true })\n uomValue?: number\n\n @Field({ nullable: true })\n inventoryAccountCode?: string\n\n @Field({ nullable: true })\n cogsAccountCode?: string\n\n @Field({ nullable: true })\n auxUnit1?: string\n\n @Field({ nullable: true })\n auxValue1?: string\n\n @Field({ nullable: true })\n auxUnit2?: string\n\n @Field({ nullable: true })\n auxValue2?: string\n\n @Field({ nullable: true })\n auxUnit3?: string\n\n @Field({ nullable: true })\n auxValue3?: string\n\n @Field({ nullable: true })\n auxUnit4?: string\n\n @Field({ nullable: true })\n auxValue4?: string\n\n @Field({ nullable: true })\n auxUnit5?: string\n\n @Field({ nullable: true })\n auxValue5?: string\n\n @Field({ nullable: true })\n groupType?: string\n\n @Field({ nullable: true })\n brandSku?: string\n\n @Field({ nullable: true })\n brand?: string\n\n @Field({ nullable: true })\n subBrand?: string\n\n @Field({ nullable: true })\n isRequiredCheckExpiry?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanning?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanningInbound?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanningOutbound?: boolean\n\n @Field({ nullable: true })\n gtin?: string\n\n @Field(type => Float, { nullable: true })\n grossWeight?: number\n\n @Field(type => Float, { nullable: true })\n volume?: number\n\n @Field(type => Float, { nullable: true })\n volumeSize?: number\n\n @Field(type => ObjectRef, { nullable: true })\n routing?: ObjectRef\n\n @Field({ nullable: true })\n warehouseId?: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n thumbnail?: FileUpload\n\n @Field({ nullable: true })\n pickingStrategy?: string\n\n // 입고 단위\n @Field({ nullable: true })\n inboundUnit?: string\n\n // 변환 kg\n @Field({ nullable: true })\n convertWeight?: number\n\n // 박스입수\n @Field({ nullable: true })\n boxInQty?: number\n\n // 제품군\n @Field({ nullable: true })\n category?: string\n\n // 경매입고\n @Field(type => Boolean, { nullable: true })\n isAuction?: boolean\n\n // 출고유형\n @Field({ nullable: true })\n releaseType?: string\n\n // 바코드\n @Field({ nullable: true })\n barcode?: string\n\n @Field(type => ObjectRef, { nullable: true })\n deliverTo?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n manufacturedBy?: ObjectRef\n\n @Field({ nullable: true })\n sellCurrency?: string\n\n @Field({ nullable: true })\n costCurrency?: string\n\n @Field({ nullable: true })\n defaultPrintUomUnit?: string\n}\n\n@ObjectType()\nexport class ProductList {\n @Field(type => [Product], { nullable: true })\n items?: Product[]\n\n @Field(type => Int, { nullable: true })\n total?: number\n}\n\n@InputType()\nexport class ProductPatch {\n @Field({ nullable: true })\n id?: string\n\n @Field({ nullable: true })\n sku?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n origin?: string\n\n @Field(type => ObjectRef, { nullable: true })\n bizplace?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n productRef?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n parentProductRef?: ObjectRef\n\n @Field(type => [ObjectRef], { nullable: true })\n childProducts?: ObjectRef[]\n\n @Field(type => Float, { nullable: true })\n bundleQty?: number\n\n @Field({ nullable: true })\n refCode?: string\n\n @Field({ nullable: true })\n packingType?: string\n\n @Field(type => Float, { nullable: true })\n packingSize?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => Int, { nullable: true })\n expirationPeriod?: number\n\n @Field({ nullable: true })\n movement?: string\n\n @Field({ nullable: true })\n weightUnit?: string\n\n @Field(type => Float, { nullable: true })\n nettWeight?: number\n\n @Field(type => Float, { nullable: true })\n density?: number\n\n @Field({ nullable: true })\n lengthUnit?: string\n\n @Field(type => Float, { nullable: true })\n costPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxCostPrice: number\n\n @Field(type => Float, { nullable: true })\n sellPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxSalesPrice?: number\n\n @Field(type => Float, { nullable: true })\n mrpPrice?: number\n\n @Field(type => Float, { nullable: true })\n bufferQty?: number\n\n @Field(type => Float, { nullable: true })\n minQty?: number\n\n @Field(type => Float, { nullable: true })\n maxQty?: number\n\n @Field(type => Float, { nullable: true })\n width?: number\n\n @Field(type => Float, { nullable: true })\n depth?: number\n\n @Field(type => Float, { nullable: true })\n height?: number\n\n @Field({ nullable: true })\n inventoryAccountCode?: string\n\n @Field({ nullable: true })\n cogsAccountCode?: string\n\n @Field(type => Boolean, { nullable: true })\n isTrackedAsInventory: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequiredCheckExpiry?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanning?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanningInbound?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanningOutbound?: boolean\n\n @Field({ nullable: true })\n primaryUnit?: string\n\n @Field(type => Float, { nullable: true })\n primaryValue?: number\n\n @Field({ nullable: true })\n uom?: string\n\n @Field(type => Float, { nullable: true })\n uomValue?: number\n\n @Field({ nullable: true })\n auxUnit1?: string\n\n @Field({ nullable: true })\n auxValue1?: string\n\n @Field({ nullable: true })\n auxUnit2?: string\n\n @Field({ nullable: true })\n auxValue2?: string\n\n @Field({ nullable: true })\n auxUnit3?: string\n\n @Field({ nullable: true })\n auxValue3?: string\n\n @Field({ nullable: true })\n auxUnit4?: string\n\n @Field({ nullable: true })\n auxValue4?: string\n\n @Field({ nullable: true })\n auxUnit5?: string\n\n @Field({ nullable: true })\n auxValue5?: string\n\n @Field({ nullable: true })\n brandSku?: string\n\n @Field({ nullable: true })\n brand?: string\n\n @Field({ nullable: true })\n subBrand?: string\n\n @Field({ nullable: true })\n gtin?: string\n\n @Field(type => Float, { nullable: true })\n grossWeight?: number\n\n @Field(type => Float, { nullable: true })\n volume?: number\n\n @Field(type => Float, { nullable: true })\n volumeSize?: number\n\n @Field({ nullable: true })\n childGtin?: string\n\n @Field(type => Float, { nullable: true })\n childQty?: number\n\n @Field(type => ObjectRef, { nullable: true })\n routing?: ObjectRef\n\n @Field({ nullable: true })\n warehouseId?: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n thumbnail?: FileUpload\n\n @Field({ nullable: true })\n pickingStrategy?: string\n\n // 입고 단위\n @Field({ nullable: true })\n inboundUnit?: string\n\n // 변환 kg\n @Field({ nullable: true })\n convertWeight?: number\n\n // 박스입수\n @Field({ nullable: true })\n boxInQty?: number\n\n // 제품군\n @Field({ nullable: true })\n category?: string\n\n // 경매입고\n @Field(type => Boolean, { nullable: true })\n isAuction?: boolean\n\n // 출고유형\n @Field({ nullable: true })\n releaseType?: string\n\n // 바코드\n @Field({ nullable: true })\n barcode?: string\n\n @Field(type => ObjectRef, { nullable: true })\n deliverTo?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n manufacturedBy?: ObjectRef\n\n @Field({ nullable: true })\n sellCurrency?: string\n\n @Field({ nullable: true })\n costCurrency?: string\n\n @Field({ nullable: true })\n defaultPrintUomUnit?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n"]}
|
|
1
|
+
{"version":3,"file":"product-types.js","sourceRoot":"","sources":["../../../server/service/product/product-types.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Field, Float, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { BizplacePatch } from '@things-factory/biz-base'\nimport { ObjectRef } from '@things-factory/shell'\n\nimport { ProductDetailPatch } from '../product-detail/product-detail-types'\nimport { Product } from './product'\n\n@InputType()\nexport class NewProduct {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n sku?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n bizplace?: BizplacePatch\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n origin?: string\n\n @Field(type => ObjectRef, { nullable: true })\n productRef?: ObjectRef\n\n @Field({ nullable: true })\n parentProductRef?: ObjectRef\n\n @Field(type => [ObjectRef], { nullable: true })\n childProducts?: ObjectRef[]\n\n @Field(type => [ProductDetailPatch], { nullable: true })\n productDetails?: ProductDetailPatch[]\n\n @Field(type => Float, { nullable: true })\n bundleQty?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => Int, { nullable: true })\n expirationPeriod?: number\n\n @Field({ nullable: true })\n movement?: string\n\n @Field({ nullable: true })\n weightUnit?: string\n\n @Field(type => Float, { nullable: true })\n nettWeight?: number\n\n @Field(type => Float, { nullable: true })\n density?: number\n\n @Field({ nullable: true })\n packingType?: string\n\n @Field({ nullable: true })\n lengthUnit?: string\n\n @Field(type => Float, { nullable: true })\n costPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxCostPrice?: number\n\n @Field(type => Float, { nullable: true })\n sellPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxSalesPrice?: number\n\n @Field(type => Float, { nullable: true })\n mrpPrice?: number\n\n @Field(type => Float, { nullable: true })\n bufferQty?: number\n\n @Field(type => Float, { nullable: true })\n minQty?: number\n\n @Field(type => Float, { nullable: true })\n maxQty?: number\n\n @Field(type => Float, { nullable: true })\n width?: number\n\n @Field(type => Float, { nullable: true })\n depth?: number\n\n @Field(type => Float, { nullable: true })\n height?: number\n\n @Field({ nullable: true })\n primaryUnit?: string\n\n @Field(type => Float, { nullable: true })\n primaryValue?: number\n\n @Field({ nullable: true })\n uom?: string\n\n @Field(type => Float, { nullable: true })\n uomValue?: number\n\n @Field({ nullable: true })\n inventoryAccountCode?: string\n\n @Field({ nullable: true })\n cogsAccountCode?: string\n\n @Field({ nullable: true })\n auxUnit1?: string\n\n @Field({ nullable: true })\n auxValue1?: string\n\n @Field({ nullable: true })\n auxUnit2?: string\n\n @Field({ nullable: true })\n auxValue2?: string\n\n @Field({ nullable: true })\n auxUnit3?: string\n\n @Field({ nullable: true })\n auxValue3?: string\n\n @Field({ nullable: true })\n auxUnit4?: string\n\n @Field({ nullable: true })\n auxValue4?: string\n\n @Field({ nullable: true })\n auxUnit5?: string\n\n @Field({ nullable: true })\n auxValue5?: string\n\n @Field({ nullable: true })\n groupType?: string\n\n @Field({ nullable: true })\n brandSku?: string\n\n @Field({ nullable: true })\n brand?: string\n\n @Field({ nullable: true })\n subBrand?: string\n\n @Field({ nullable: true })\n isRequiredCheckExpiry?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanning?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanningInbound?: boolean\n\n @Field({ nullable: true })\n isRequireSerialNumberScanningOutbound?: boolean\n\n @Field({ nullable: true })\n gtin?: string\n\n @Field(type => Float, { nullable: true })\n grossWeight?: number\n\n @Field(type => Float, { nullable: true })\n volume?: number\n\n @Field(type => Float, { nullable: true })\n volumeSize?: number\n\n @Field(type => ObjectRef, { nullable: true })\n routing?: ObjectRef\n\n @Field({ nullable: true })\n warehouseId?: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n thumbnail?: FileUpload\n\n @Field({ nullable: true })\n pickingStrategy?: string\n\n // 입고 단위\n @Field({ nullable: true })\n inboundUnit?: string\n\n // 변환 kg\n @Field({ nullable: true })\n convertWeight?: number\n\n // 박스입수\n @Field({ nullable: true })\n boxInQty?: number\n\n // 제품군\n @Field({ nullable: true })\n category?: string\n\n // 경매입고\n @Field(type => Boolean, { nullable: true })\n isAuction?: boolean\n\n // 출고유형\n @Field({ nullable: true })\n releaseType?: string\n\n // 바코드\n @Field({ nullable: true })\n barcode?: string\n\n @Field(type => ObjectRef, { nullable: true })\n deliverTo?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n manufacturedBy?: ObjectRef\n\n @Field({ nullable: true })\n sellCurrency?: string\n\n @Field({ nullable: true })\n costCurrency?: string\n\n @Field({ nullable: true })\n defaultPrintUomUnit?: string\n\n // 발주버튼(2F)\n @Field(type => Boolean, { nullable: true })\n isPurchaseOrder?: boolean\n\n // 발주수율(2F, %)\n @Field(type => Float, { nullable: true })\n purchaseYield?: number\n\n // 발주배수(2F)\n @Field(type => Float, { nullable: true })\n purchaseMultiple?: number\n\n // 실발주 하위지정(2F)\n @Field(type => ObjectRef, { nullable: true })\n stockRefProduct?: ObjectRef\n\n // 기본거래처(2F)\n @Field(type => ObjectRef, { nullable: true })\n defaultContactPoint?: ObjectRef\n\n // 2층구분(2F)\n @Field({ nullable: true })\n secondFloorType?: string\n}\n\n@ObjectType()\nexport class ProductList {\n @Field(type => [Product], { nullable: true })\n items?: Product[]\n\n @Field(type => Int, { nullable: true })\n total?: number\n}\n\n@InputType()\nexport class ProductPatch {\n @Field({ nullable: true })\n id?: string\n\n @Field({ nullable: true })\n sku?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n origin?: string\n\n @Field(type => ObjectRef, { nullable: true })\n bizplace?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n productRef?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n parentProductRef?: ObjectRef\n\n @Field(type => [ObjectRef], { nullable: true })\n childProducts?: ObjectRef[]\n\n @Field(type => Float, { nullable: true })\n bundleQty?: number\n\n @Field({ nullable: true })\n refCode?: string\n\n @Field({ nullable: true })\n packingType?: string\n\n @Field(type => Float, { nullable: true })\n packingSize?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field(type => Int, { nullable: true })\n expirationPeriod?: number\n\n @Field({ nullable: true })\n movement?: string\n\n @Field({ nullable: true })\n weightUnit?: string\n\n @Field(type => Float, { nullable: true })\n nettWeight?: number\n\n @Field(type => Float, { nullable: true })\n density?: number\n\n @Field({ nullable: true })\n lengthUnit?: string\n\n @Field(type => Float, { nullable: true })\n costPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxCostPrice: number\n\n @Field(type => Float, { nullable: true })\n sellPrice?: number\n\n @Field(type => Float, { nullable: true })\n afterTaxSalesPrice?: number\n\n @Field(type => Float, { nullable: true })\n mrpPrice?: number\n\n @Field(type => Float, { nullable: true })\n bufferQty?: number\n\n @Field(type => Float, { nullable: true })\n minQty?: number\n\n @Field(type => Float, { nullable: true })\n maxQty?: number\n\n @Field(type => Float, { nullable: true })\n width?: number\n\n @Field(type => Float, { nullable: true })\n depth?: number\n\n @Field(type => Float, { nullable: true })\n height?: number\n\n @Field({ nullable: true })\n inventoryAccountCode?: string\n\n @Field({ nullable: true })\n cogsAccountCode?: string\n\n @Field(type => Boolean, { nullable: true })\n isTrackedAsInventory: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequiredCheckExpiry?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanning?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanningInbound?: boolean\n\n @Field(type => Boolean, { nullable: true })\n isRequireSerialNumberScanningOutbound?: boolean\n\n @Field({ nullable: true })\n primaryUnit?: string\n\n @Field(type => Float, { nullable: true })\n primaryValue?: number\n\n @Field({ nullable: true })\n uom?: string\n\n @Field(type => Float, { nullable: true })\n uomValue?: number\n\n @Field({ nullable: true })\n auxUnit1?: string\n\n @Field({ nullable: true })\n auxValue1?: string\n\n @Field({ nullable: true })\n auxUnit2?: string\n\n @Field({ nullable: true })\n auxValue2?: string\n\n @Field({ nullable: true })\n auxUnit3?: string\n\n @Field({ nullable: true })\n auxValue3?: string\n\n @Field({ nullable: true })\n auxUnit4?: string\n\n @Field({ nullable: true })\n auxValue4?: string\n\n @Field({ nullable: true })\n auxUnit5?: string\n\n @Field({ nullable: true })\n auxValue5?: string\n\n @Field({ nullable: true })\n brandSku?: string\n\n @Field({ nullable: true })\n brand?: string\n\n @Field({ nullable: true })\n subBrand?: string\n\n @Field({ nullable: true })\n gtin?: string\n\n @Field(type => Float, { nullable: true })\n grossWeight?: number\n\n @Field(type => Float, { nullable: true })\n volume?: number\n\n @Field(type => Float, { nullable: true })\n volumeSize?: number\n\n @Field({ nullable: true })\n childGtin?: string\n\n @Field(type => Float, { nullable: true })\n childQty?: number\n\n @Field(type => ObjectRef, { nullable: true })\n routing?: ObjectRef\n\n @Field({ nullable: true })\n warehouseId?: string\n\n @Field(type => GraphQLUpload, { nullable: true })\n thumbnail?: FileUpload\n\n @Field({ nullable: true })\n pickingStrategy?: string\n\n // 입고 단위\n @Field({ nullable: true })\n inboundUnit?: string\n\n // 변환 kg\n @Field({ nullable: true })\n convertWeight?: number\n\n // 박스입수\n @Field({ nullable: true })\n boxInQty?: number\n\n // 제품군\n @Field({ nullable: true })\n category?: string\n\n // 경매입고\n @Field(type => Boolean, { nullable: true })\n isAuction?: boolean\n\n // 출고유형\n @Field({ nullable: true })\n releaseType?: string\n\n // 바코드\n @Field({ nullable: true })\n barcode?: string\n\n @Field(type => ObjectRef, { nullable: true })\n deliverTo?: ObjectRef\n\n @Field(type => ObjectRef, { nullable: true })\n manufacturedBy?: ObjectRef\n\n @Field({ nullable: true })\n sellCurrency?: string\n\n @Field({ nullable: true })\n costCurrency?: string\n\n @Field({ nullable: true })\n defaultPrintUomUnit?: string\n\n // 발주버튼(2F)\n @Field(type => Boolean, { nullable: true })\n isPurchaseOrder?: boolean\n\n // 발주수율(2F, %)\n @Field(type => Float, { nullable: true })\n purchaseYield?: number\n\n // 발주배수(2F)\n @Field(type => Float, { nullable: true })\n purchaseMultiple?: number\n\n // 실발주 하위지정(2F)\n @Field(type => ObjectRef, { nullable: true })\n stockRefProduct?: ObjectRef\n\n // 기본거래처(2F)\n @Field(type => ObjectRef, { nullable: true })\n defaultContactPoint?: ObjectRef\n\n // 2층구분(2F)\n @Field({ nullable: true })\n secondFloorType?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n"]}
|
|
@@ -11,6 +11,13 @@ export declare enum pickStrategy {
|
|
|
11
11
|
LIFO = "LIFO",
|
|
12
12
|
LOCATION = "LOCATION"
|
|
13
13
|
}
|
|
14
|
+
export declare enum SecondFloorProductType {
|
|
15
|
+
NORMAL = "NORMAL",// 기본
|
|
16
|
+
FINISHED_2F = "FINISHED_2F",// 2층완제품
|
|
17
|
+
HALB_2F = "HALB_2F",// 2층반제품
|
|
18
|
+
SAUCE_2F = "SAUCE_2F",// 2층소스
|
|
19
|
+
SAUCE_DIVIDE_2F = "SAUCE_DIVIDE_2F"
|
|
20
|
+
}
|
|
14
21
|
export declare class Product {
|
|
15
22
|
id: string;
|
|
16
23
|
domain: Domain;
|
|
@@ -28,6 +35,14 @@ export declare class Product {
|
|
|
28
35
|
convertWeight?: number;
|
|
29
36
|
boxInQty?: number;
|
|
30
37
|
category?: string;
|
|
38
|
+
isPurchaseOrder?: boolean;
|
|
39
|
+
purchaseYield?: number;
|
|
40
|
+
purchaseMultiple?: number;
|
|
41
|
+
stockRefProduct?: Product;
|
|
42
|
+
stockRefProductId?: string;
|
|
43
|
+
defaultContactPoint?: ContactPoint;
|
|
44
|
+
defaultContactPointId?: string;
|
|
45
|
+
secondFloorType?: string;
|
|
31
46
|
isAuction?: boolean;
|
|
32
47
|
sellCurrency?: string;
|
|
33
48
|
costCurrency?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Product = exports.pickStrategy = void 0;
|
|
3
|
+
exports.Product = exports.SecondFloorProductType = exports.pickStrategy = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
|
6
6
|
const typeorm_1 = require("typeorm");
|
|
@@ -21,6 +21,15 @@ var pickStrategy;
|
|
|
21
21
|
pickStrategy["LIFO"] = "LIFO";
|
|
22
22
|
pickStrategy["LOCATION"] = "LOCATION";
|
|
23
23
|
})(pickStrategy || (exports.pickStrategy = pickStrategy = {}));
|
|
24
|
+
// 2층구분 (승화 2층 발주/작업지시 시스템)
|
|
25
|
+
var SecondFloorProductType;
|
|
26
|
+
(function (SecondFloorProductType) {
|
|
27
|
+
SecondFloorProductType["NORMAL"] = "NORMAL";
|
|
28
|
+
SecondFloorProductType["FINISHED_2F"] = "FINISHED_2F";
|
|
29
|
+
SecondFloorProductType["HALB_2F"] = "HALB_2F";
|
|
30
|
+
SecondFloorProductType["SAUCE_2F"] = "SAUCE_2F";
|
|
31
|
+
SecondFloorProductType["SAUCE_DIVIDE_2F"] = "SAUCE_DIVIDE_2F"; // 2층소스소분
|
|
32
|
+
})(SecondFloorProductType || (exports.SecondFloorProductType = SecondFloorProductType = {}));
|
|
24
33
|
let Product = class Product {
|
|
25
34
|
constructor(obj) {
|
|
26
35
|
if (obj) {
|
|
@@ -172,6 +181,48 @@ tslib_1.__decorate([
|
|
|
172
181
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
173
182
|
tslib_1.__metadata("design:type", String)
|
|
174
183
|
], Product.prototype, "category", void 0);
|
|
184
|
+
tslib_1.__decorate([
|
|
185
|
+
(0, typeorm_1.Column)({ nullable: true, default: false, comment: '발주버튼(2F) - 구매팀 발주시스템에 뜨는지 여부' }),
|
|
186
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
187
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
188
|
+
], Product.prototype, "isPurchaseOrder", void 0);
|
|
189
|
+
tslib_1.__decorate([
|
|
190
|
+
(0, typeorm_1.Column)('float', { nullable: true, default: 100, transformer: shell_1.roundTransformer, comment: '발주수율(2F, %)' }),
|
|
191
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
192
|
+
tslib_1.__metadata("design:type", Number)
|
|
193
|
+
], Product.prototype, "purchaseYield", void 0);
|
|
194
|
+
tslib_1.__decorate([
|
|
195
|
+
(0, typeorm_1.Column)('float', { nullable: true, default: 1, transformer: shell_1.roundTransformer, comment: '발주배수(2F)' }),
|
|
196
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
197
|
+
tslib_1.__metadata("design:type", Number)
|
|
198
|
+
], Product.prototype, "purchaseMultiple", void 0);
|
|
199
|
+
tslib_1.__decorate([
|
|
200
|
+
(0, typeorm_1.ManyToOne)(type => Product, { nullable: true }),
|
|
201
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
202
|
+
tslib_1.__metadata("design:type", Product)
|
|
203
|
+
], Product.prototype, "stockRefProduct", void 0);
|
|
204
|
+
tslib_1.__decorate([
|
|
205
|
+
(0, typeorm_1.RelationId)((product) => product.stockRefProduct),
|
|
206
|
+
tslib_1.__metadata("design:type", String)
|
|
207
|
+
], Product.prototype, "stockRefProductId", void 0);
|
|
208
|
+
tslib_1.__decorate([
|
|
209
|
+
(0, typeorm_1.ManyToOne)(type => biz_base_1.ContactPoint, { nullable: true }),
|
|
210
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
211
|
+
tslib_1.__metadata("design:type", biz_base_1.ContactPoint)
|
|
212
|
+
], Product.prototype, "defaultContactPoint", void 0);
|
|
213
|
+
tslib_1.__decorate([
|
|
214
|
+
(0, typeorm_1.RelationId)((product) => product.defaultContactPoint),
|
|
215
|
+
tslib_1.__metadata("design:type", String)
|
|
216
|
+
], Product.prototype, "defaultContactPointId", void 0);
|
|
217
|
+
tslib_1.__decorate([
|
|
218
|
+
(0, typeorm_1.Column)({
|
|
219
|
+
nullable: true,
|
|
220
|
+
default: SecondFloorProductType.NORMAL,
|
|
221
|
+
comment: '2층구분(NORMAL/FINISHED_2F/HALB_2F/SAUCE_2F/SAUCE_DIVIDE_2F)'
|
|
222
|
+
}),
|
|
223
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
224
|
+
tslib_1.__metadata("design:type", String)
|
|
225
|
+
], Product.prototype, "secondFloorType", void 0);
|
|
175
226
|
tslib_1.__decorate([
|
|
176
227
|
(0, typeorm_1.Column)({ nullable: true, default: false }),
|
|
177
228
|
(0, type_graphql_1.Field)({ nullable: true }),
|