{"version":3,"file":"static/js/6b6048cf452a952111b1.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity.ts?a3aa","webpack://Msdyn365.Commerce.Online/./src/actions/get-categories.ts?0ce6","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/utilities/getFormJSON.ts?db0b","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/ecomm-product-details-form.tsx?c143","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/component/ecomm-form-get-service-objects.tsx?3ec9","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/component/popup.tsx?5290","webpack://Msdyn365.Commerce.Online/./src/modules/ecomm-product-details-form/ecomm-product-details-form.view.tsx?fa98","webpack://Msdyn365.Commerce.Online/./lib/ecomm-product-details-form/module-registration.js?2d67","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?5119"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * GetActivecategorymenustate Input Action\r\n */\r\nexport class GetSelectedQuantityValuesInput implements Msdyn365.IActionInput {\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `SelectedProductQuamtity`;\r\n public getCacheObjectType = () => 'SelectedProductQuamtity';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// TODO: Create a data model here or import one to capture the response of the action\r\nexport interface IGetSelectedQuantityStateData {\r\n selectedQuantity: number;\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetSelectedQuantityValuesInput();\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nasync function getSelectedQuantityValuesStateAction(input: GetSelectedQuantityValuesInput, ctx: Msdyn365.IActionContext):Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // TODO: Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { selectedQuantity: 1 };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getSelectedQuantityValuesStateAction,\r\n // TODO: Give your data action a unique id\r\n id: 'GetSelectedQuantityValuesStateActionState',\r\n input: createInput\r\n // TODO: Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});","import { createObservableDataAction, IAction, ICreateActionContext } from '@msdyn365-commerce/core';\r\nimport { Category, retailAction } from '@msdyn365-commerce/retail-proxy';\r\nimport { createGetCategoriesInput } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CategoriesDataActions.g';\r\n\r\n/**\r\n * Get Org Unit Configuration Data Action\r\n */\r\nexport default createObservableDataAction({\r\n action: >retailAction,\r\n input: (context: ICreateActionContext) => {\r\n return createGetCategoriesInput({ Paging: { Top: 0 } }, context.requestContext.apiSettings.channelId);\r\n }\r\n});\r\n","import { Attributes, IFormStructure } from '../ecomm-product-details-form.data';\r\n\r\nexport default (attributes: Attributes): IFormStructure => {\r\n switch (attributes.formName) {\r\n case '3-Category + Names':\r\n return {\r\n formName: 'threeCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case '3-Category + Names + Consecration':\r\n return {\r\n formName: 'threeCategoryNamesConsecrationForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Amount + Category (Family or Deceased) + Names':\r\n return {\r\n formName: 'amountDeceasedNameForm',\r\n fields: [\r\n {\r\n field_name: 'amount',\r\n field_type: 'radio',\r\n field_options: attributes.amounts,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number3: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category (Family or Deceased) + Names':\r\n return {\r\n formName: 'deceasedCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names + Address + Contact no':\r\n return {\r\n formName: 'categoryNamesAddressForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names + Collection or Donation':\r\n return {\r\n formName: 'categoryNamesCollectionForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'option',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Category + Names':\r\n return {\r\n formName: 'categoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Donation':\r\n return {\r\n formName: 'donationForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'amount',\r\n field_type: 'radio',\r\n field_options: attributes.amounts,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Courses':\r\n return {\r\n formName: 'coursesForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Category + Names':\r\n return {\r\n formName: 'eventCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Names':\r\n return {\r\n formName: 'ceremonyForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event date + Name of Deceased + Dedicated by':\r\n return {\r\n formName: 'eventDeceasedDedicatedByForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'deceasedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n field_number: attributes.deceasedNames,\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Event dates + Names + NRIC + Contact Number + Address':\r\n return {\r\n formName: 'eventTaxDeductionForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'tax',\r\n field_type: 'checkbox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nric',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n }; \r\n\r\n case 'Name + Birth date + School name + In-person/Online':\r\n return {\r\n formName: 'nameBirthdaySchoolForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'school',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'option',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Name + Birth date + Time of birth':\r\n return {\r\n formName: 'nameBirthDatetimeForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Name of Deceased + Dedicated by':\r\n return {\r\n formName: 'deceasedDedicatedByForm',\r\n fields: [\r\n {\r\n field_name: 'deceasedName',\r\n field_type: 'textBox',\r\n field_number: attributes.deceasedNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names Only':\r\n return {\r\n formName: 'namesOnlyForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names + Remarks':\r\n return {\r\n formName: 'namesRemarksForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Names + Address + Contact no':\r\n return {\r\n formName: 'namesAddressContactnoForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'No. of years + Category + Names':\r\n return {\r\n formName: 'noOfYearsCategoryNamesForm',\r\n fields: [\r\n {\r\n field_name: 'noOfYears',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameChange',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'period',\r\n field_type: 'label',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'category',\r\n field_type: 'radio',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Business':\r\n return {\r\n formName: 'servicesBusinessForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Deceased':\r\n return {\r\n formName: 'servicesDeceasedForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'dedicatedby',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Education':\r\n return {\r\n formName: 'servicesEducationForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services General':\r\n return {\r\n formName: 'servicesGeneralForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Health \\u2013 Surgery':\r\n return {\r\n formName: 'servicesHealthSurgeryForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Infant Spirit':\r\n return {\r\n formName: 'servicesInfantSpiritForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Services Marriage':\r\n return {\r\n formName: 'servicesMarriageForm',\r\n fields: [\r\n {\r\n field_name: 'period',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'true',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'birthtime',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'building',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'unit',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'postal',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'country',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Events Chinese Name':\r\n return {\r\n formName: 'eventsChineseNameForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'chineseName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n\r\n case 'Events Next of Kin Name':\r\n return {\r\n formName: 'eventsNextOfKinNameForm',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n \r\n case 'Events Passport Upload':\r\n return {\r\n formName: 'eventsPassportUpload',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportNumber',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportExpiryDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportIssueDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportUpload',\r\n field_type: 'file_upload',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n case 'Events Passport Upload with Insurance':\r\n return {\r\n formName: 'eventsPassportUploadWithInsurance',\r\n fields: [\r\n {\r\n field_name: 'event',\r\n field_type: 'dropdown',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'attendeeName',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phone',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'birthdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'nameNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'phoneNextOfKin',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportNumber',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportExpiryDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportIssueDate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'passportUpload',\r\n field_type: 'file_upload',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_label: 'Subtotal',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n case 'Name + Dedication Date':\r\n return {\r\n formName: 'nameDedicationStartDateForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_number: attributes.noOfNames,\r\n field_number2: attributes.companyNames,\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'startdate',\r\n field_type: 'date',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n \r\n \r\n default:\r\n return {\r\n formName: 'offeringForm',\r\n fields: [\r\n {\r\n field_name: 'name',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'message',\r\n field_type: 'textBox',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'remark',\r\n field_type: 'textArea',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: 'string'\r\n },\r\n {\r\n field_name: 'subtotal',\r\n field_type: 'product_price',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: ''\r\n },\r\n {\r\n field_name: 'operation',\r\n field_type: 'action',\r\n field_label: '',\r\n field_placeholder: '',\r\n required: 'false',\r\n validation: '',\r\n action: 'delete_row'\r\n }\r\n ],\r\n hasSerial: attributes.hasSerial\r\n };\r\n }\r\n}","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { CartLine, SimpleProduct, AsyncResult, ProductSearchResult, ProductPrice, ProductWarehouseInventoryAvailability, AttributeValue, SalesOrder } from '@msdyn365-commerce/retail-proxy';\r\n\r\nimport { getOrderHistoryAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\r\nimport { getAttributeValuesAsync, getByIdAsync, getEstimatedAvailabilityAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\n\r\nimport { getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { GetSelectedQuantityValuesInput, IGetSelectedQuantityStateData } from '../../actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity';\r\nimport { getByCustomerBTGPTransactionAsync, getAllBTGPCartLineAsync, checkAvailableSerialAsync, getEventAvailabilityAsync, getProductEventsByIdAsync, } from '../../actions/DataActionExtension.g';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { getProductServiceObjects } from './component/ecomm-form-get-service-objects';\r\n\r\nimport resource from './resources/resource.json';\r\n\r\nimport { InventoryLvls } from '../../components/enums';\r\n\r\nimport getFormJSON from './utilities/getFormJSON';\r\n\r\nimport { IEcommProductDetailsFormData, Attributes, IField, IFormStructure, IdState,IEvent, IEventDetails } from './ecomm-product-details-form.data';\r\nimport { IEcommProductDetailsFormProps } from './ecomm-product-details-form.props.autogenerated';\r\n\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface IEcommProductDetailsFormViewProps extends IEcommProductDetailsFormProps {\r\n telemetryContent: ITelemetryContent;\r\n productsList: ProductSearchResult[];\r\n simpleProducts: SimpleProduct[];\r\n productsIds: number[];\r\n productPriceList: ProductPrice[];\r\n attributesList: AttributeValue[];\r\n productAvailabilities: ProductWarehouseInventoryAvailability[];\r\n formScheme: IField[];\r\n formsHeaders: string[];\r\n formName: string;\r\n selectedProduct: AsyncResult;\r\n subProduct: SimpleProduct;\r\n hasSerial: boolean;\r\n registrationClosed: boolean;\r\n itemUnavailable: boolean;\r\n eventAvailable: boolean;\r\n rowsData: IdState[];\r\n matchingCartItems: [];\r\n addRow(noOfRows: number): void;\r\n replaceRow(noOfRows: number, idx: number[]): void;\r\n removeRow(idx: number): void;\r\n removeMultipleRows(ix: number): void;\r\n retrieveRow(input: any[]): void;\r\n isCustomPrice: boolean;\r\n isEditMode: boolean;\r\n eventProduct: boolean;\r\n eventId: string;\r\n eventRecords: IEvent[];\r\n eventMinCapacityThreshold: number;\r\n eventDetails: IEventDetails[];\r\n allowMultipleRegistrations: boolean;\r\n showRemarksField: boolean;\r\n insuranceAmount: string;\r\n insuranceFeeLabel: string;\r\n makeChineseNameMandatory: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * EcommProductDetailsForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass EcommProductDetailsForm extends React.PureComponent> {\r\n public tableHeaderArray: string[] = [];\r\n\r\n private telemetryContent: ITelemetryContent;\r\n private localeCode = this.props.context.request.locale.split('-')[0];\r\n\r\n constructor(props: IEcommProductDetailsFormProps) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedProduct: {}, addRow: {}, replaceRow:{}, removeRow: {}, removeMultipleRows: {}, retrieveRow: {},\r\n headerArrayState: [], formStructState: [], formName: '', rowsData: [{ id: uuidv4() }],\r\n productResult: [], simpleProductResult: [], productsIds: [], productPriceArr: [],\r\n attributesList: [], productsAvailability: {}, matchingCartItems: [], \r\n hasSerial: false, registrationClosed: false, itemUnavailable: false, isEditMode: false,\r\n eventProduct: true, eventAvailable:false,eventRecords:[], eventMinCapacityThreshold: 0,\r\n eventDetails:[], allowMultipleRegistrations: true, showRemarksField: true, insuranceAmount:'0', insuranceFeeLabel: '',\r\n makeChineseNameMandatory: true, registrationClosedApiLoaded: false, eventAvailableApiLoaded: false, itemUnavailableSerialApiLoaded: false, \r\n itemUnavailableStockApiLoaded: false\r\n };\r\n\r\n this.telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n }\r\n\r\n private delay(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n const { data: { categories, cart, product, selectedQuantity } } = this.props;\r\n\r\n let formStructure: IFormStructure;\r\n\r\n if (!categories.result) {\r\n await this.delay(300);\r\n }\r\n\r\n let categoryId = categories.result!.filter(category => category.ParentCategory == 0)[0].RecordId;\r\n\r\n let resultObj = await getProductServiceObjects(this.props, categoryId)\r\n .catch(error => {\r\n console.log('[product-list] error', error);\r\n if (this.state['productResult']?.length > 0 || this.state['simpleProductResult']?.length > 0 || this.state['productsIds']?.length > 0 || this.state['productPriceArr']?.length > 0 || this.state['attributesList']?.length > 0) {\r\n this.setState({ productResult: [], simpleProductResult: [], productsAvailability: {}, productsIds: [], productPriceArr: [], attributesList: [] });\r\n }\r\n });\r\n\r\n let productList: ProductSearchResult[] = [];\r\n let simpleProductList: SimpleProduct[] | undefined = [];\r\n let productsIds: number[] | undefined = [];\r\n let productPriceList: ProductPrice[] | undefined = [];\r\n let productsAvailability: ProductWarehouseInventoryAvailability[] | undefined = [];\r\n let attributeList: AttributeValue[] | undefined = [];\r\n\r\n if (resultObj && resultObj.selectedProducts) {\r\n productList = resultObj.selectedProducts;\r\n simpleProductList = resultObj.productsSimpleDetails;\r\n productPriceList = resultObj.activePrices;\r\n productsIds = resultObj.productIds;\r\n productsAvailability = resultObj.productsAvailability;\r\n attributeList = resultObj.attributesList;\r\n }\r\n\r\n if (JSON.stringify(productList) !== JSON.stringify(this.state['productResult'])) {\r\n this.setState({\r\n simpleProductResult: simpleProductList,\r\n productsAvailability: productsAvailability, productsIds: productsIds, productPriceArr: productPriceList, attributesList: attributeList, productResult: productList\r\n });\r\n }\r\n\r\n let matchingItemsLength = 1;\r\n\r\n let itemArray = [];\r\n let eventProduct = true;\r\n\r\n const parameters = window.location.search;\r\n const cartlineId = new URLSearchParams(parameters).get('cartlineId');\r\n\r\n // Unable to pass populated array of either cart items/ past transactions to view file.\r\n // This portion of the code is replicated in view to ensure that formItem array is not empty.\r\n // This portion of the code in controller is meant for buildFormStructure.\r\n // Check state matchingCartItems array again.\r\n if (cartlineId && cart.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const found = cartLines.find(cartline => cartline.LineId === cartlineId);\r\n\r\n let cartLineData: any[] = [];\r\n\r\n let getAllCartLineResult = await getAllBTGPCartLineAsync({ callerContext: this.props.context.actionContext }, (await cart).cart.Id);\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.map((record) => { cartLineData.push(JSON.parse(record)); });\r\n }\r\n\r\n let cartLineIndex = cartLineData.findIndex((cl => cl['CartLineID'] === cartlineId));\r\n\r\n if (found && cartLineIndex >= 0) {\r\n let childCartLines = cartLineData.filter((cl => cl['ParentCartLineID'] === cartlineId));\r\n\r\n let eventNames = cartLineData[`${cartLineIndex}`]['EventName'];\r\n let eventIds = cartLineData[`${cartLineIndex}`]['EventID'];\r\n let quantity = found.Quantity ? found.Quantity : 1;\r\n let subProductQuantity = 0;\r\n\r\n childCartLines.map((child) => {\r\n quantity++;\r\n eventNames += ';' + child['EventName'];\r\n eventIds += ';' + child['EventID'];\r\n\r\n if (child['ProductID'] !== String(found.ProductId)) {\r\n let subProductfound = cartLines.find(cartline => cartline.LineId === child['CartLineID']);\r\n if (subProductfound) {\r\n subProductQuantity = subProductfound.Quantity!;\r\n }\r\n }\r\n });\r\n\r\n itemArray.push({\r\n \"comment\": found.Comment ? found.Comment : '',\r\n \"quantity\": quantity,\r\n \"names\": [\r\n cartLineData[`${cartLineIndex}`]['Name_1'], cartLineData[`${cartLineIndex}`]['Name_2'], cartLineData[`${cartLineIndex}`]['Name_3'], cartLineData[`${cartLineIndex}`]['Name_4'], cartLineData[`${cartLineIndex}`]['Name_5'], cartLineData[`${cartLineIndex}`]['Name_6'], cartLineData[`${cartLineIndex}`]['Name_7'], cartLineData[`${cartLineIndex}`]['Name_8'], cartLineData[`${cartLineIndex}`]['Name_9'], cartLineData[`${cartLineIndex}`]['Name_10'], cartLineData[`${cartLineIndex}`]['Name_11'], cartLineData[`${cartLineIndex}`]['Name_12'], cartLineData[`${cartLineIndex}`]['Name_13'], cartLineData[`${cartLineIndex}`]['Name_14'], cartLineData[`${cartLineIndex}`]['Name_15'], cartLineData[`${cartLineIndex}`]['Name_16'], cartLineData[`${cartLineIndex}`]['Name_17'], cartLineData[`${cartLineIndex}`]['Name_18'], cartLineData[`${cartLineIndex}`]['Name_19'], cartLineData[`${cartLineIndex}`]['Name_20']\r\n ],\r\n \"category\": cartLineData[`${cartLineIndex}`]['Category'],\r\n \"eventID\": eventIds,\r\n \"eventName\": eventNames,\r\n \"remarks\": cartLineData[`${cartLineIndex}`]['Remarks'],\r\n \"message\": cartLineData[`${cartLineIndex}`]['Message'],\r\n \"dedicatedBy\": cartLineData[`${cartLineIndex}`]['DedicatedBy'],\r\n \"buildingName\": cartLineData[`${cartLineIndex}`]['BuildingName'],\r\n \"unitNumber\": cartLineData[`${cartLineIndex}`]['UnitNumber'],\r\n \"postalCode\": cartLineData[`${cartLineIndex}`]['PostalCode'],\r\n \"birthDate\": cartLineData[`${cartLineIndex}`]['BirthDate'],\r\n \"phoneNumber\": cartLineData[`${cartLineIndex}`]['PhoneNumber'],\r\n \"schoolName\": cartLineData[`${cartLineIndex}`]['SchoolName'],\r\n \"donationOption\": cartLineData[`${cartLineIndex}`]['DonationOption'],\r\n \"blessingOption\": cartLineData[`${cartLineIndex}`]['BlessingOption'],\r\n \"birthTime\": cartLineData[`${cartLineIndex}`]['BirthTime'],\r\n \"lightOption\": cartLineData[`${cartLineIndex}`]['LightOption'],\r\n \"validFrom\": cartLineData[`${cartLineIndex}`]['ValidFrom'],\r\n \"validTo\": cartLineData[`${cartLineIndex}`]['ValidTo'],\r\n \"dedicationPeriod\": cartLineData[`${cartLineIndex}`]['DedicationPeriod'],\r\n 'startDate': cartLineData[`${cartLineIndex}`]['StartDate'],\r\n 'gender': cartLineData[`${cartLineIndex}`]['Gender'],\r\n \"country\": cartLineData[`${cartLineIndex}`]['Country'],\r\n \"companyName\": cartLineData[`${cartLineIndex}`]['CompanyName'],\r\n \"deceasedRelationship\": cartLineData[`${cartLineIndex}`]['DeceasedRelationship'],\r\n \"surgeryDate\": cartLineData[`${cartLineIndex}`]['SurgeryDate'],\r\n \"deathDate\": cartLineData[`${cartLineIndex}`]['DeathDate'],\r\n \"deathTime\": cartLineData[`${cartLineIndex}`]['DeathTime'],\r\n \"nameChange\": cartLineData[`${cartLineIndex}`]['NameChange'],\r\n \"oldName_1\": cartLineData[`${cartLineIndex}`]['OldName_1'],\r\n \"oldName_2\": cartLineData[`${cartLineIndex}`]['OldName_2'],\r\n \"birthDate_2\": cartLineData[`${cartLineIndex}`]['BirthDate_2'],\r\n \"birthTime_2\": cartLineData[`${cartLineIndex}`]['BirthTime_2'],\r\n \"isCustomPrice\": found.IsPriceKeyedIn ? found.IsPriceKeyedIn : false,\r\n \"customPriceAmount\": found.Price ? found.Price : 0,\r\n \"cartLineId\": found.LineId,\r\n \"subProductQuantity\": subProductQuantity,\r\n \"chineseName\": cartLineData[`${cartLineIndex}`]['ChineseName'],\r\n \"contactNumber\": cartLineData[`${cartLineIndex}`]['ContactNumber'],\r\n \"nameNextKin\": cartLineData[`${cartLineIndex}`]['NameNextKin'],\r\n \"contactNumberNextKin\": cartLineData[`${cartLineIndex}`]['ContactNumberNextKin'],\r\n \"passportNumber\": cartLineData[`${cartLineIndex}`][\"PassportNumber\"],\r\n \"passportExpiryDate\": cartLineData[`${cartLineIndex}`][\"PassportExpiryDate\"],\r\n \"passportIssuedDate\": cartLineData[`${cartLineIndex}`][\"PassportIssuedDate\"],\r\n \"consent\": cartLineData[`${cartLineIndex}`][\"Consent\"],\r\n \"isInsuranceIncluded\": cartLineData[`${cartLineIndex}`][\"IsInsuranceIncluded\"]\r\n });\r\n\r\n this.setState({ isEditMode: true });\r\n } else {\r\n this.setState({ isEditMode: false });\r\n }\r\n } else if (parameters === '') {\r\n // Retrieve form inputs if user is logged in.\r\n const { context, context: { request: { user } } } = this.props;\r\n\r\n if (user.customerAccountNumber) {\r\n let itemInCart = false;\r\n\r\n if (cart.result && product.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const foundInCart = cartLines.find(cartline => cartline.ProductId === product.result!.RecordId);\r\n\r\n if (foundInCart) {\r\n itemInCart = true;\r\n }\r\n }\r\n\r\n if (!itemInCart) {\r\n let lastOrderCE: any;\r\n let lastOrderCommerce: any;\r\n let records: string[] = [];\r\n\r\n // Retrieves all extension table records of this product.\r\n if (product.result) {\r\n records = await getByCustomerBTGPTransactionAsync({ callerContext: context.actionContext }, user.customerAccountNumber, user.emailAddress!, product.result.RecordId.toString(), this.props.config.isUat);\r\n\r\n if (records.length > 0) {\r\n // Filters for records from CE.\r\n const recordsCE = records.filter(record => {\r\n const input = JSON.parse(record);\r\n\r\n return input['FromCE'] === true;\r\n });\r\n\r\n // Gets the most recent order from CE of this product.\r\n lastOrderCE = recordsCE && recordsCE.length > 0 ? JSON.parse(recordsCE[0]) : undefined;\r\n }\r\n }\r\n\r\n const orders = await getOrderHistoryAsync({ callerContext: context.actionContext }, user.customerAccountNumber);\r\n\r\n if (orders && orders.length > 0) {\r\n // Finds the most recent order from Commerce that contains this product.\r\n lastOrderCommerce = orders.find((order: SalesOrder) => {\r\n const found = records.find(record => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs['SalesOrderID'] === order.Id && inputs['FromCE'] === false ? order.Id : '';\r\n });\r\n\r\n return found && found !== '' ? order : undefined;\r\n });\r\n }\r\n\r\n let mostRecentOrderID = '';\r\n\r\n if (lastOrderCE && lastOrderCommerce) {\r\n mostRecentOrderID = moment(lastOrderCE['DateOfTrasaction']).isBefore(moment(lastOrderCommerce.CreatedDateTime)) ? lastOrderCommerce.Id : lastOrderCE['SalesOrderID'];\r\n } else if (lastOrderCE === undefined && lastOrderCommerce) {\r\n mostRecentOrderID = lastOrderCommerce.Id;\r\n } else if (lastOrderCE && lastOrderCommerce === undefined) {\r\n mostRecentOrderID = lastOrderCE['SalesOrderID'];\r\n }\r\n\r\n if (mostRecentOrderID !== '') {\r\n const batch = records.filter(record => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs['SalesOrderID'] === mostRecentOrderID;\r\n });\r\n\r\n for (let i = 0; i < batch.length; ++i) {\r\n const item = JSON.parse(batch[`${i}`]);\r\n\r\n itemArray.push({\r\n \"comment\": '',\r\n \"quantity\": item['Quantity'] ? item['Quantity'] : 1,\r\n \"names\": [\r\n item['Name_1'], item['Name_2'], item['Name_3'], item['Name_4'], item['Name_5'], item['Name_6'], item['Name_7'], item['Name_8'], item['Name_9'], item['Name_10'], item['Name_11'], item['Name_12'], item['Name_13'], item['Name_14'], item['Name_15'], item['Name_16'], item['Name_17'], item['Name_18'], item['Name_19'], item['Name_20']\r\n ],\r\n \"category\": item['Category'],\r\n \"eventID\": '',\r\n \"eventName\": '',\r\n \"remarks\": item['Remarks'],\r\n \"message\": item['Message'],\r\n \"dedicatedBy\": item['DedicatedBy'],\r\n \"buildingName\": item['BuildingName'],\r\n \"unitNumber\": item['UnitNumber'],\r\n \"postalCode\": item['PostalCode'],\r\n \"birthDate\": item['BirthDate'],\r\n \"phoneNumber\": item['PhoneNumber'],\r\n \"schoolName\": item['SchoolName'],\r\n \"donationOption\": item['DonationOption'],\r\n \"blessingOption\": item['BlessingOption'],\r\n \"birthTime\": item['BirthTime'],\r\n \"lightOption\": item['LightOption'],\r\n \"validFrom\": item['ValidFrom'],\r\n \"validTo\": item['ValidTo'],\r\n \"dedicationPeriod\": item['DedicationPeriod'],\r\n 'startDate': item['StartDate'],\r\n 'gender': item['Gender'],\r\n \"country\": item['Country'],\r\n \"companyName\": item['CompanyName'],\r\n \"deceasedRelationship\": item['DeceasedRelationship'],\r\n \"surgeryDate\": item['SurgeryDate'],\r\n \"deathDate\": item['DeathDate'],\r\n \"deathTime\": item['DeathTime'],\r\n \"nameChange\": item['NameChange'],\r\n \"oldName_1\": item['OldName_1'],\r\n \"oldName_2\": item['OldName_2'],\r\n \"birthDate_2\": item['BirthDate_2'],\r\n \"birthTime_2\": item['BirthTime_2'],\r\n \"isCustomPrice\": false,\r\n \"customPriceAmount\": 0,\r\n \"cartLineId\": '',\r\n \"chineseName\": item[\"ChineseName\"],\r\n \"nameNextKin\": item[\"NameNextKin\"],\r\n \"contactNumber\": item[\"ContactNumber\"],\r\n \"contactNumberNextKin\": item[\"ContactNumberNextKin\"],\r\n \"passportNumber\": item[\"PassportNumber\"],\r\n \"passportExpiryDate\": item[\"PassportExpiryDate\"],\r\n \"passportIssuedDate\": item[\"PassportIssuedDate\"],\r\n \"consent\": item[\"Consent\"],\r\n \"isInsuranceIncluded\": item[\"IsInsuranceIncluded\"]\r\n });\r\n }\r\n\r\n matchingItemsLength = itemArray.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (product && product.result) {\r\n let resultObj = await this.getProductAttributes(product.result);\r\n\r\n formStructure = getFormJSON(resultObj);\r\n\r\n const formRows = formStructure.formName === 'noOfYearsCategoryNamesForm' ? 1 : matchingItemsLength;\r\n\r\n this.setState({eventMinCapacityThreshold: resultObj.eventMinCapacityThreshold,allowMultipleRegistrations:resultObj.allowMultipleRegistrations, showRemarksField: resultObj.showRemarksField, insuranceAmount: resultObj.insuranceAmount, insuranceFeeLabel: resultObj.insuranceFeeLabel, makeChineseNameMandatory: resultObj.makeChineseNameMandatory});\r\n \r\n this.buildFormStructure(formStructure, selectedQuantity, formRows);\r\n\r\n if (resultObj.courseProduct || (resultObj.eventProduct && resultObj.hasCapacityCheck))\r\n {\r\n await this._checkEventAvailability();\r\n }\r\n else if (resultObj.courseProduct || resultObj.eventProduct)\r\n {\r\n await this._getEventsForProductWithoutAvailability(this.props.data.product.result?.RecordId!);\r\n }\r\n else{\r\n this.setState({ eventAvailableApiLoaded: true, registrationClosedApiLoaded: true });\r\n }\r\n\r\n if (resultObj.hasSerial) {\r\n await this._checkAvailableSerial();\r\n this.setState({itemUnavailableSerialApiLoaded: true});\r\n }\r\n\r\n if (!resultObj.hasSerial) {\r\n await this._checkAvailableStock();\r\n this.setState({itemUnavailableStockApiLoaded: true});\r\n }\r\n\r\n if (resultObj.subProductRecordId != 0) {\r\n this.getSubProduct(resultObj.subProductRecordId);\r\n }\r\n\r\n eventProduct = resultObj.eventProduct;\r\n } else {\r\n formStructure = getFormJSON({ formName: 'Offering', amounts: [], noOfNames: 1, companyNames: 1, deceasedNames: 1, subProductRecordId: 0, hasSerial: false, eventProduct: false, courseProduct:false, hasCapacityCheck:false, eventMinCapacityThreshold:0, allowMultipleRegistrations: true,showRemarksField: true, insuranceAmount: '0', insuranceFeeLabel: '', makeChineseNameMandatory: true});\r\n\r\n const formRows = formStructure.formName === 'noOfYearsCategoryNamesForm' ? 1 : matchingItemsLength;\r\n\r\n this.buildFormStructure(formStructure, selectedQuantity, formRows);\r\n }\r\n\r\n this.setState({ matchingCartItems: itemArray, eventProduct: eventProduct });\r\n }\r\n\r\n private async getSubProduct(subProductRecordId: number) {\r\n const data = await getByIdAsync({ callerContext: this.props.context.actionContext }, subProductRecordId, this.props.context.actionContext.requestContext.apiSettings.channelId);\r\n\r\n this.setState({ subProduct: data });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { data: { product } } = this.props;\r\n\r\n let customPriceCheck: boolean = false\r\n\r\n if (product.result?.BasePrice == 0 || this.state['insuranceAmount'] !== \"0\") {\r\n customPriceCheck = true;\r\n }\r\n\r\n const ProductDetailsViewProps = {\r\n ...this.props,\r\n hasInitOnce: this.state['hasInitOnce'],\r\n setHasInitOnce: this.state['setHasInitOnce'],\r\n formScheme: this.state['formStructState'],\r\n formsHeaders: this.state['headerArrayState'],\r\n formName: this.state['formName'],\r\n hasSerial: this.state['hasSerial'],\r\n registrationClosed: this.state['registrationClosed'],\r\n itemUnavailable: this.state['itemUnavailable'],\r\n eventAvailable: this.state['eventAvailable'],\r\n selectedProduct: product,\r\n rowsData: this.state['rowsData'],\r\n addRow: this.state['addRow'],\r\n replaceRow: this.state['replaceRow'],\r\n removeRow: this.state['removeRow'],\r\n removeMultipleRows: this.state['removeMultipleRows'],\r\n retrieveRow: this.state['retrieveRow'],\r\n telemetryContent: this.telemetryContent,\r\n productsList: this.state['productResult'],\r\n simpleProducts: this.state['simpleProductResult'],\r\n subProduct: this.state['subProduct'],\r\n productsIds: this.state['productsIds'],\r\n productPriceList: this.state['productPriceArr'],\r\n productAvailabilities: this.state['productsAvailability'],\r\n matchingCartItems: this.state['matchingCartItems'],\r\n isCustomPrice: customPriceCheck,\r\n isEditMode: this.state['isEditMode'],\r\n eventProduct: this.state['eventProduct'],\r\n eventRecords: this.state['eventRecords'],\r\n eventMinCapacityThreshold: this.state['eventMinCapacityThreshold'],\r\n eventDetails: this.state['eventDetails'],\r\n allowMultipleRegistrations: this.state['allowMultipleRegistrations'],\r\n showRemarksField: this.state['showRemarksField'],\r\n insuranceAmount: this.state['insuranceAmount'],\r\n insuranceFeeLabel: this.state['insuranceFeeLabel'],\r\n makeChineseNameMandatory: this.state['makeChineseNameMandatory']\r\n \r\n };\r\n\r\n if (this.state['registrationClosedApiLoaded'] || this.state['eventAvailableApiLoaded'] || this.state['itemUnavailableSerialApiLoaded'] || this.state['itemUnavailableStockApiLoaded']){\r\n return this.props.renderView(ProductDetailsViewProps);\r\n }\r\n else{\r\n return null;\r\n }\r\n }\r\n\r\n private _checkRegistrationPeriod(productEvents: any[]) {\r\n if (productEvents.length == 0) {\r\n this.setState({ registrationClosed: true });\r\n } else {\r\n let latestEvent = productEvents[productEvents.length - 1];\r\n let eventStartDate = moment(latestEvent['startDateTime']);\r\n let currentTime = moment();\r\n\r\n if (currentTime.diff(eventStartDate, 'd') > 0) {\r\n this.setState({ registrationClosed: true });\r\n }\r\n }\r\n }\r\n\r\n private async _checkAvailableStock() {\r\n let haveStock = true;\r\n let productId = (await this.props.data.product).RecordId;\r\n\r\n const availability = await getEstimatedAvailabilityAsync({ callerContext: this.props.context.actionContext }, { ProductIds: [productId], DefaultWarehouseOnly: true }).\r\n catch(error => console.log('[_checkAvailableStock] getEstimatedAvailabilityAsync error: ', error));\r\n\r\n if (availability && availability.ProductWarehouseInventoryAvailabilities) {\r\n const warehouse = availability.ProductWarehouseInventoryAvailabilities;\r\n\r\n if (warehouse.length > 0) {\r\n const found = warehouse.find(stock => stock.ProductId === productId);\r\n\r\n if (found && (found.PhysicalAvailableInventoryLevelCode && found.PhysicalAvailableInventoryLevelCode !== InventoryLvls.AVAIL)) {\r\n haveStock = false;\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n }\r\n }\r\n\r\n return haveStock;\r\n }\r\n\r\n private async _checkAvailableSerial() {\r\n let haveSerial = true;\r\n\r\n let checkAvailableSerialResult = await checkAvailableSerialAsync({ callerContext: this.props.context.actionContext }, this.props.config.isUat, this.props.data.product.result?.RecordId.toString()!);\r\n\r\n if (checkAvailableSerialResult && typeof checkAvailableSerialResult === 'object' && checkAvailableSerialResult['value'] == false) {\r\n haveSerial = false;\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n\r\n return haveSerial;\r\n }\r\n\r\n private async _getEventsForProductWithoutAvailability(ecommId: number) {\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n let eventRecords:IEvent[] =[];\r\n\r\n const data = await getProductEventsByIdAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n startDate.toISOString(),\r\n ecommId.toString()\r\n );\r\n\r\n data.map((event) => {\r\n const eventJson = JSON.parse(event);\r\n\r\n const eventObj: IEvent = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n };\r\n\r\n eventRecords.push(eventObj);\r\n });\r\n\r\n this._checkRegistrationPeriod(eventRecords);\r\n this.setState({ eventRecords: eventRecords, registrationClosedApiLoaded: true });\r\n }\r\n\r\n private async _getEventsForProduct(ecommId: number) {\r\n let startDate = new Date();\r\n startDate.setHours(0, 0, 0, 0);\r\n let eventRecords:IEvent[] =[];\r\n let eventDetails: IEventDetails[]=[];\r\n\r\n\r\n const data = await getProductEventsByIdAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n startDate.toISOString(),\r\n ecommId.toString()\r\n );\r\n\r\n await Promise.all(data.map(async(event) => {\r\n const eventJson = JSON.parse(event);\r\n\r\n let checkEventAvailableResult = await getEventAvailabilityAsync({ callerContext: this.props.context.actionContext }, this.props.config.isUat, eventJson[\"EventId\"])\r\n\r\n if (checkEventAvailableResult && checkEventAvailableResult[0] !== '') {\r\n const eventAvailabiltyDetails = JSON.parse(checkEventAvailableResult[0]);\r\n \r\n if(eventAvailabiltyDetails.isEventAvailable == true)\r\n {\r\n const remainingSlots = eventAvailabiltyDetails.maxEventCapacity - eventAvailabiltyDetails.registrationCount;\r\n const hideAddMoreButton = remainingSlots > this.state['eventMinCapacityThreshold'] ? false: true;\r\n const remainingEcommSlots = remainingSlots > this.state['eventMinCapacityThreshold'] ? remainingSlots: 0;\r\n \r\n const eventObj: IEvent = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n };\r\n\r\n const eventDetailsObj:IEventDetails = {\r\n id: eventJson[\"EventId\"],\r\n name: eventJson[\"Name\"],\r\n startDateTime: eventJson[\"StartDateTime\"],\r\n endDateTime: eventJson[\"EndDateTime\"],\r\n startLunarDate: eventJson[\"StartLunarDate\"],\r\n endLunarDate: eventJson[\"EndLunarDate\"],\r\n hideAddMoreButton: hideAddMoreButton,\r\n eventAvailableSlot: remainingEcommSlots\r\n }\r\n \r\n eventRecords.push(eventObj);\r\n eventDetails.push(eventDetailsObj);\r\n }\r\n }\r\n }));\r\n\r\n this._checkRegistrationPeriod(eventRecords);\r\n this.setState({ eventRecords: eventRecords, eventDetails: eventDetails, registrationClosedApiLoaded: true });\r\n\r\n return eventRecords;\r\n }\r\n\r\n private async _checkEventAvailability()\r\n {\r\n let eventAvailable = false; \r\n let eventIdResult = await this._getEventsForProduct(this.props.data.product.result?.RecordId!);\r\n \r\n\r\n if (eventIdResult.length>0) {\r\n eventAvailable = true;\r\n\r\n this.setState({ eventAvailable: eventAvailable });\r\n }\r\n\r\n this.setState({ eventAvailableApiLoaded: true });\r\n\r\n return eventAvailable;\r\n }\r\n\r\n private buildFormStructure(formStructure: IFormStructure, selectedQuantity: AsyncResult, matchingItemsLength: number) {\r\n const { context } = this.props;\r\n\r\n this.tableHeaderArray = [];\r\n\r\n formStructure.fields?.map((element: any) => {\r\n this.tableHeaderArray.push(element.field_label);\r\n });\r\n\r\n const addRowAction = (noOfRows: number) => {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length + noOfRows });\r\n\r\n let rowsDataArray = this.state['rowsData'].slice();\r\n for (let i = 0; i < noOfRows; i++) {\r\n rowsDataArray.push({ id: uuidv4() });\r\n }\r\n this.setState({ rowsData: rowsDataArray });\r\n \r\n };\r\n this.setState({ addRow: addRowAction });\r\n\r\n const replaceRowAction = (noOfRows: number, idx: number[]) => {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length + noOfRows });\r\n\r\n let rowsDataArray = this.state['rowsData'].slice();\r\n for (let i = 0; i < noOfRows; i++) {\r\n rowsDataArray.push({ id: uuidv4() });\r\n }\r\n this.setState({ rowsData: rowsDataArray }, ()=>removeMultipleRowsAction(idx));\r\n \r\n };\r\n this.setState({ replaceRow: replaceRowAction });\r\n \r\n\r\n const removeRowAction = (index: number) => {\r\n\r\n if (this.state['rowsData'].length > 1) {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length - 1 });\r\n\r\n this.setState({ rowsData: [...this.state['rowsData'].slice(0, index), ...this.state['rowsData'].slice(index + 1)] });\r\n }\r\n else {\r\n this.setState({ isEditMode: false });\r\n }\r\n };\r\n\r\n this.setState({ removeRow: removeRowAction });\r\n\r\n const removeMultipleRowsAction = (index: number[]) => {\r\n\r\n if (this.state['rowsData'].length > 1) {\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: this.state['rowsData'].length - 1 });\r\n\r\n const stateData = [...this.state['rowsData']];\r\n for(let i=0; i< index.length; i++){\r\n stateData.splice(index[`${i}`], 1);\r\n }\r\n\r\n this.setState({ rowsData: [...stateData ]});\r\n }\r\n else {\r\n this.setState({ isEditMode: false });\r\n }\r\n };\r\n\r\n this.setState({ removeMultipleRows: removeMultipleRowsAction });\r\n\r\n const retrieveRowsAction = (input: any[]) => {\r\n if (input.length !== 0) {\r\n const ids = [];\r\n\r\n for (let i = 0; i < input.length; ++i) {\r\n ids.push({ id: input[`${i}`].DraftID });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: ids.length });\r\n\r\n this.setState({ rowsData: ids });\r\n }\r\n }\r\n\r\n this.setState({ retrieveRow: retrieveRowsAction });\r\n\r\n if (this.tableHeaderArray.length > 0 && this.state['headerArrayState'].length !== this.tableHeaderArray.length) {\r\n this.setState({ headerArrayState: this.tableHeaderArray });\r\n }\r\n\r\n if (formStructure && formStructure.fields && formStructure.fields.length > 0 && formStructure.fields.length !== this.state['formStructState'].length) {\r\n this.setState({ formStructState: formStructure.fields });\r\n }\r\n\r\n if (formStructure && formStructure.formName && formStructure.formName !== this.state['formName']) {\r\n this.setState({ formName: formStructure.formName });\r\n }\r\n\r\n if (formStructure && formStructure.hasSerial && formStructure.hasSerial != this.state['hasSerial']) {\r\n this.setState({ hasSerial: formStructure.hasSerial });\r\n }\r\n\r\n if (!this.state['isEditMode'] && selectedQuantity.result && matchingItemsLength > 0 && matchingItemsLength !== this.state['rowsData'].length) {\r\n if (matchingItemsLength > this.state['rowsData'].length) {\r\n const difference = matchingItemsLength - this.state['rowsData'].length;\r\n\r\n for (let i = 0; i < difference; i++) {\r\n this.setState({ rowsData: [...this.state['rowsData'], { id: uuidv4() }] });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: selectedQuantity.result.selectedQuantity });\r\n }\r\n\r\n if (matchingItemsLength < this.state['rowsData'].length) {\r\n const difference = this.state['rowsData'].length - matchingItemsLength;\r\n\r\n let index = this.state['rowsData'].length - 1;\r\n\r\n for (let j = 0; j < difference; j++) {\r\n this.setState({ rowsData: [...this.state['rowsData'].slice(0, index), ...this.state['rowsData'].slice(index + 1)] });\r\n }\r\n\r\n context.actionContext.update(new GetSelectedQuantityValuesInput(), { selectedQuantity: selectedQuantity.result.selectedQuantity });\r\n }\r\n }\r\n }\r\n\r\n private async getProductAttributes(product: SimpleProduct): Promise {\r\n const { context } = this.props;\r\n\r\n const attributesList = await getAttributeValuesAsync({ callerContext: context.actionContext }, product.RecordId, context.request.apiSettings.channelId, context.request.apiSettings.catalogId);\r\n\r\n let formName = '';\r\n let amountArray: string[] = [];\r\n let names: number = 1;\r\n let companyNames: number = 1;\r\n let deceasedNames: number = 1;\r\n let subProductRecordId: number = 0;\r\n let hasSerial: boolean = false;\r\n let eventProduct: boolean = true;\r\n let courseProduct: boolean = false;\r\n let hasCapacityCheck: boolean = false;\r\n let eventMinCapacityThreshold: number = 0;\r\n let allowMultipleEventRegistrations: boolean = true;\r\n let showRemarksField:boolean = true;\r\n let insuranceAmount: string = '0';\r\n let insuranceFeeLabel: string = '';\r\n let makeChineseNameMandatory: boolean = true;\r\n\r\n\r\n for (let i = 0; i < attributesList.length; i++) {\r\n if (attributesList[`${i}`].Name?.includes('Form')) {\r\n formName = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : 'Offering';\r\n } else if (attributesList[`${i}`].Name?.includes('Donation Amount')) {\r\n let amount = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '2,5,10,50';\r\n\r\n amountArray = amount.split(',')\r\n amountArray.push(resource.otherLabel[this.localeCode]);\r\n } else if (attributesList[`${i}`].Name?.includes('No Of Names')) {\r\n names = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Company Names')) {\r\n companyNames = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Deceased Names')) {\r\n deceasedNames = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 1;\r\n } else if (attributesList[`${i}`].Name?.includes('Sub Product Record ID')) {\r\n subProductRecordId = attributesList[`${i}`].TextValue ? +attributesList[`${i}`].TextValue! : 0;\r\n } else if (attributesList[`${i}`].Name?.includes('Has Serial')) {\r\n hasSerial = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n } else if (attributesList[`${i}`].Name?.includes('EventProduct')) {\r\n eventProduct = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('CourseProduct')){\r\n courseProduct = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('HasCapacityCheck')){\r\n hasCapacityCheck = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }else if(attributesList[`${i}`].Name?.includes('EventMinCapacityThreshold')){\r\n eventMinCapacityThreshold = attributesList[`${i}`].IntegerValue ? attributesList[`${i}`].IntegerValue! : 0;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('AllowMultipleEventRegistrations')){\r\n allowMultipleEventRegistrations = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('ShowRemarksField')){\r\n showRemarksField = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceAmount')){\r\n insuranceAmount = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '0';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('InsuranceFeeLabel')){\r\n insuranceFeeLabel = attributesList[`${i}`].TextValue ? attributesList[`${i}`].TextValue! : '0';\r\n }\r\n else if(attributesList[`${i}`].Name?.includes('MakeChineseNameMandatory')){\r\n makeChineseNameMandatory = attributesList[`${i}`].BooleanValue ? attributesList[`${i}`].BooleanValue! : false;\r\n }\r\n\r\n }\r\n\r\n return {\r\n formName: formName,\r\n amounts: amountArray,\r\n noOfNames: names,\r\n companyNames: companyNames,\r\n deceasedNames: deceasedNames,\r\n subProductRecordId: subProductRecordId,\r\n hasSerial: hasSerial,\r\n eventProduct: eventProduct,\r\n courseProduct: courseProduct,\r\n hasCapacityCheck: hasCapacityCheck,\r\n eventMinCapacityThreshold: eventMinCapacityThreshold,\r\n allowMultipleRegistrations: allowMultipleEventRegistrations,\r\n showRemarksField: showRemarksField,\r\n insuranceAmount: insuranceAmount,\r\n insuranceFeeLabel: insuranceFeeLabel,\r\n makeChineseNameMandatory: makeChineseNameMandatory\r\n };\r\n }\r\n}\r\n\r\nexport default EcommProductDetailsForm;","import { ProductSearchResult, SimpleProduct, ProductPrice, ProductWarehouseInventoryInformation, AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { getAttributeValuesAsync, getByIdsAsync, searchByCategoryAsync, getActivePricesAsync, getEstimatedAvailabilityAsync, } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { IEcommProductCartDataSet } from './components-interfaces-definition';\r\nimport { IEcommProductDetailsFormData } from '../ecomm-product-details-form.data';\r\nimport { IEcommProductDetailsFormProps } from '../ecomm-product-details-form.props.autogenerated';\r\n\r\nexport async function getProductServiceObjects(props: IEcommProductDetailsFormProps, categoryId: number):Promise {\r\n const { context } = props;\r\n const projectDomain = { ChannelId: + context.actionContext.requestContext.apiSettings.channelId, CatalogId: +context.actionContext.requestContext.apiSettings.catalogId };\r\n \r\n let productObject: SimpleProduct = await props.data.product;\r\n let productSearchResult: ProductSearchResult[];\r\n let productSearchResultFiltered: ProductSearchResult[];\r\n let productsAvailabilityResults: ProductWarehouseInventoryInformation = {};\r\n let attributesList: AttributeValue[]=[];\r\n let simpleProductsResults: SimpleProduct[] = [];\r\n let activePricesResult: ProductPrice[] = [];\r\n let productIds: number[] = [];\r\n let resultObject: IEcommProductCartDataSet = {};\r\n \r\n productSearchResult= await searchByCategoryAsync({ callerContext: context.actionContext }, context.request.apiSettings.channelId, context.request.apiSettings.catalogId, categoryId);\r\n productIds.push(productObject.RecordId);\r\n productSearchResultFiltered= productSearchResult.filter(elem=> { return elem.RecordId===productObject.RecordId; });\r\n\r\n\r\n if (productSearchResultFiltered) {\r\n simpleProductsResults= await getByIdsAsync({ callerContext: context.actionContext }, context.request.apiSettings.channelId,productIds);\r\n activePricesResult= await getActivePricesAsync({ callerContext: context.actionContext, queryResultSettings: {} }, projectDomain,productIds, new Date(), null, [], true);\r\n productsAvailabilityResults= await getEstimatedAvailabilityAsync({ callerContext: context.actionContext }, { ProductIds: productIds, DefaultWarehouseOnly: true });\r\n attributesList= await getAttributeValuesAsync({callerContext: context.actionContext }, productIds[0],context.request.apiSettings.channelId,context.request.apiSettings.catalogId);\r\n }\r\n\r\n resultObject= {\r\n productIds: productIds,\r\n attributesList: attributesList,\r\n selectedProducts: productSearchResultFiltered,\r\n productsSimpleDetails: simpleProductsResults,\r\n activePrices: activePricesResult,\r\n productsAvailability: (productsAvailabilityResults&&productsAvailabilityResults.ProductWarehouseInventoryAvailabilities?productsAvailabilityResults.ProductWarehouseInventoryAvailabilities:undefined)\r\n };\r\n\r\n return resultObject;\r\n}","import * as React from 'react';\r\n\r\nimport resource from '../resources/resource.json';\r\n\r\nimport Modal from 'react-bootstrap/Modal';\r\n\r\ninterface IEcommPopupProps\r\n{\r\n showPopup: boolean;\r\n callback: any;\r\n callbackProceed: any;\r\n locale: string;\r\n renewableLamps: any[];\r\n callbackChecked: any;\r\n}\r\n\r\n/**\r\n *\r\n * Event component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Popup extends React.PureComponent {\r\n private formLabels = resource.noOfYearsCategoryNamesForm[this.props.locale];\r\n\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n \r\n {this._titleText()}\r\n \r\n\r\n \r\n {this._renderMessage()}\r\n {this.props.renewableLamps.length > 0 && this._renderLampsHeader()}\r\n {this.props.renewableLamps.length > 0 && this._renderLamps()}\r\n \r\n\r\n \r\n {this._goButtonText()}\r\n {this._renderCancelButton()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _callbackRedirect = () => {\r\n this.props.callbackProceed();\r\n }\r\n\r\n private _callbackHide = () => {\r\n event?.preventDefault();\r\n this.props.callback();\r\n }\r\n\r\n private _titleText(): string {\r\n return this.formLabels.renewDialogTitle;\r\n }\r\n\r\n private _cancelButtonText(): string {\r\n return this.formLabels.renewDialogValidCancelTitle;\r\n }\r\n\r\n private _goButtonText(): string {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return this.formLabels.renewDialogProceedTitle;\r\n }\r\n }\r\n\r\n return this.formLabels.renewDialogOkayTitle;\r\n } else {\r\n return this.formLabels.renewDialogOkayTitle;\r\n }\r\n }\r\n\r\n private _renderMessage(): JSX.Element | null {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return (\r\n
\r\n

{this.formLabels.renewMessageText}

\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n

{this.formLabels.renewSelectedAllMessageText}

\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderLampsHeader(): JSX.Element | null {\r\n return (\r\n
\r\n
\r\n

{this.formLabels.renewDialogSerialNoTitle}

\r\n

{this.formLabels.renewDialogNameTitle}

\r\n

{this.formLabels.renewDialogValidTillTitle}

\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderLamps(): JSX.Element | null {\r\n return (\r\n
\r\n {this._renderLampOption()}\r\n
\r\n );\r\n }\r\n\r\n private _renderLampOption(): JSX.Element[] | null {\r\n return this.props.renewableLamps.map((lamp) => {\r\n const serialNumber = lamp['serialNumber'];\r\n const serialId = lamp['serialId'];\r\n const name_1 = lamp['name_1'];\r\n const name_2 = lamp['name_2'];\r\n const validTo = lamp['validTo'];\r\n let isChecked = lamp['isChecked'];\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n })\r\n }\r\n\r\n private _renderCancelButton(): JSX.Element | null {\r\n if (this.props.renewableLamps.length > 0) {\r\n for (let i = 0; i < this.props.renewableLamps.length; i++) {\r\n if (this.props.renewableLamps[`${i}`]['isChecked'] === false) {\r\n return (\r\n {this._cancelButtonText()}\r\n );\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n \r\n return (\r\n {this._cancelButtonText()}\r\n );\r\n }\r\n}\r\n\r\nexport default Popup;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from \"react\";\r\n\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\n\r\nimport { getUrlSync } from \"@msdyn365-commerce/core\";\r\n\r\nimport {\r\n CartLine,\r\n SalesOrder\r\n} from \"@msdyn365-commerce/retail-proxy\";\r\nimport { getOrderHistoryAsync } from \"@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g\";\r\n\r\nimport {\r\n getContactDetailsAsync,\r\n createOrUpdateBTGPDraftAsync,\r\n getAllBTGPCartLineAsync,\r\n getByCustomerBTGPTransactionAsync,\r\n getAllBTGPDraftAsync,\r\n getRenewableSerialsAsync,\r\n checkAvailableSerialAsync,\r\n} from \"../../actions/DataActionExtension.g\";\r\nimport { FormDetails } from \"../../actions/ecomm-interfaces\";\r\nimport { generateErrorLog } from \"../../actions/helper-functions\";\r\n\r\nimport { isMobile } from \"../../components/breakpoints\";\r\n\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { Popup } from \"./component/popup\";\r\n\r\nimport resource from \"./resources/resource.json\";\r\n\r\nimport { ProductDetailsAddtoCartButton } from \"./component/ecomm-form-add-to-cart.component\";\r\n\r\nimport AmountDeceasedNameForm from \"./formsComponents/amountDeceasedNameForm.component\";\r\nimport CategoryNamesForm from \"./formsComponents/categoryNamesForm.component\";\r\nimport CategoryNamesAddressForm from \"./formsComponents/categoryNamesAddressForm.component\";\r\nimport CategoryNamesCollectionForm from \"./formsComponents/categoryNamesCollectionForm.component\";\r\nimport CeremonyForm from \"./formsComponents/ceremonyForm.component\";\r\nimport DeceasedCategoryNamesForm from \"./formsComponents/deceasedCategoryNamesForm.component\";\r\nimport DeceasedDedicatedByForm from \"./formsComponents/deceasedDedicatedByForm.component\";\r\nimport DonationForm from \"./formsComponents/donationForm.component\";\r\nimport CoursesForm from \"./formsComponents/coursesForm.component\";\r\nimport EventChineseNameForm from \"./formsComponents/eventsChineseNameForm.component\";\r\nimport EventNextOfKinNameForm from \"./formsComponents/eventsNextOfKinNameForm.component\";\r\nimport EventCategoryNamesForm from \"./formsComponents/eventCategoryNamesForm.component\";\r\nimport EventDeceasedDedicatedByForm from \"./formsComponents/eventDeceasedDedicatedByForm.component\";\r\nimport EventTaxDeductionForm from \"./formsComponents/eventTaxDeductionForm.component\";\r\nimport NameBirthDatetimeForm from \"./formsComponents/nameBirthDatetimeForm.component\";\r\nimport NameBirthdaySchoolForm from \"./formsComponents/nameBirthdaySchoolForm.component\";\r\nimport NamesOnlyForm from \"./formsComponents/namesOnlyForm.component\";\r\nimport NamesRemarksForm from \"./formsComponents/namesRemarksForm.component\";\r\nimport NamesAddressContactnoForm from \"./formsComponents/namesAddressContactnoForm.component\";\r\nimport NoOfYearsCategoryNamesForm from \"./formsComponents/noOfYearsCategoryNamesForm.component\";\r\nimport OfferingForm from \"./formsComponents/offeringForm.component\";\r\nimport ServicesBusinessForm from \"./formsComponents/servicesBusinessForm.component\";\r\nimport ServicesDeceasedForm from \"./formsComponents/servicesDeceasedForm.component\";\r\nimport ServicesEducationForm from \"./formsComponents/servicesEducationForm.component\";\r\nimport ServicesGeneralForm from \"./formsComponents/servicesGeneralForm.component\";\r\nimport ServicesHealthSurgeryForm from \"./formsComponents/servicesHealthSurgeryForm.component\";\r\nimport ServicesInfantSpiritForm from \"./formsComponents/servicesInfantSpiritForm.component\";\r\nimport ServicesMarriageForm from \"./formsComponents/servicesMarriageForm.component\";\r\nimport ThreeCategoryNamesForm from \"./formsComponents/threeCategoryNamesForm.component\";\r\nimport ThreeCategoryNamesConsecrationForm from \"./formsComponents/threeCategoryNamesConsecrationForm.component\";\r\n\r\nimport { IEcommProductDetailsFormViewProps } from \"./ecomm-product-details-form\";\r\nimport EventPassportUploadForm from \"./formsComponents/eventsPassportUploadForm.component\";\r\nimport EventPassportUploadInsuranceForm from \"./formsComponents/eventPassportUploadInsuranceForm.component\";\r\nimport NamesDedicationStartDateForm from \"./formsComponents/nameDedicationStartDate.component\";\r\n\r\nconst moment = require(\"moment\");\r\n\r\nexport class EcommProductDetailsFormView extends React.PureComponent<\r\n IEcommProductDetailsFormViewProps\r\n> {\r\n public state: any = {\r\n customerTotalPrice: 0,\r\n customerPrices: [0],\r\n customerEvents: [\"\"],\r\n customerEventIDs: [\"\"],\r\n categories: [\"\"],\r\n customerNames: [\"\"],\r\n customerRemarks: [\"\"],\r\n customerMessages: [\"\"],\r\n customerSerialIDs: [\"\"],\r\n customerSerialNumbers: [\"\"],\r\n customerSerialNames: [\"\"],\r\n dedicatedBy: [\"\"],\r\n collectionOptions: [\"\"],\r\n buildingNames: [\"\"],\r\n unitNumbers: [\"\"],\r\n postalCodes: [\"\"],\r\n phoneNumbers: [\"\"],\r\n chineseNames: [\"\"],\r\n birthDates: [\"\"],\r\n birthTimes: [\"\"],\r\n schoolNames: [\"\"],\r\n blessingOptions: [\"\"],\r\n lightOptions: [\"\"],\r\n validFroms: [\"\"],\r\n validTos: [\"\"],\r\n quantities: [1],\r\n subProductQuantity: [0],\r\n dedicationPeriods: [\"\"],\r\n countries: [\"\"],\r\n companyNames: [\"\"],\r\n deceasedRelationships: [\"\"],\r\n surgeryDates: [\"\"],\r\n deathDates: [\"\"],\r\n deathTimes: [\"\"],\r\n oldNames: [\"\"],\r\n nameChanges: [\"\"],\r\n hasTaxDeductions: [false],\r\n nrics: [\"\"],\r\n startDates: [\"\"],\r\n genders: [\"\"],\r\n formsValidated: false,\r\n eventsSelected: false,\r\n namesEntered: false,\r\n chineseNamesEntered: false,\r\n phoneNumbersEntered: false,\r\n passportNumberEntered: false,\r\n relationshipsEntered: false,\r\n companiesEntered: false,\r\n schoolsEntered: false,\r\n pricesEntered: false,\r\n addressEntered: false,\r\n dateEntered: false,\r\n passportExpiryDateEntered: false,\r\n passportIssueDateEntered: false,\r\n fileUploaded: false,\r\n formItems: [],\r\n drafts: [],\r\n userData: undefined,\r\n renewableLamps: [],\r\n productEvents: [],\r\n showPopup: false,\r\n addRenewLamp: false,\r\n hasMounted: false,\r\n width: 0,\r\n registrationClosed: false,\r\n itemUnavailable: false,\r\n eventAvailable: false,\r\n nextKinNames: [\"\"],\r\n contactNumbers:[\"\"],\r\n contactNumbersNextKins:[\"\"],\r\n passportNumbers:[\"\"],\r\n passportExpiryDates:[\"\"],\r\n passportIssuedDates:[\"\"],\r\n consents: [0],\r\n isInsuranceIncluded: [false],\r\n isInsuranceIncludedNum: [0]\r\n\r\n };\r\n\r\n private localeCode = this.props.context.request.locale.split(\"-\")[0];\r\n private eventDateLimit = 100;\r\n\r\n public async componentDidMount() {\r\n if (!this.state.hasMounted) {\r\n window.addEventListener(\"resize\", this._updateDimensions);\r\n\r\n this._getDrafts();\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n await this._getRenewableLamps();\r\n\r\n const {\r\n config,\r\n data: { cart, product },\r\n context: {\r\n request: { user },\r\n },\r\n } = this.props;\r\n\r\n const formItemsArray = [];\r\n\r\n const parameters = window.location.search;\r\n const cartlineId = new URLSearchParams(parameters).get(\"cartlineId\");\r\n\r\n // If: navigated to defaultpdp page from cart page to edit a cartline item.\r\n // Else: display past transactions made by logged in user.\r\n if (cartlineId && cart.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n\r\n const found = cartLines.find(\r\n (cartline) => cartline.LineId === cartlineId\r\n );\r\n\r\n const cartLineData: any[] = [];\r\n\r\n const getAllCartLineResult = await getAllBTGPCartLineAsync(\r\n { callerContext: this.props.context.actionContext },\r\n (await cart).cart.Id\r\n );\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.forEach((record) =>\r\n cartLineData.push(JSON.parse(record))\r\n );\r\n }\r\n\r\n const cartLineIndex = cartLineData.findIndex(\r\n (cl) => cl[\"CartLineID\"] === cartlineId\r\n );\r\n\r\n if (found && cartLineIndex >= 0) {\r\n let childCartLines = cartLineData\r\n .filter((cl) => cl[\"ParentCartLineID\"] === cartlineId)\r\n .sort((a, b) =>\r\n a[\"EventName\"] > b[\"EventName\"]\r\n ? 1\r\n : b[\"EventName\"] > a[\"EventName\"]\r\n ? -1\r\n : 0\r\n );\r\n\r\n let eventNames = cartLineData[`${cartLineIndex}`][\"EventName\"];\r\n let eventIds = cartLineData[`${cartLineIndex}`][\"EventID\"];\r\n let quantity = found.Quantity ? found.Quantity : 1;\r\n let subProductQuantity = 0;\r\n\r\n childCartLines.map((child) => {\r\n quantity++;\r\n eventNames += \";\" + child[\"EventName\"];\r\n eventIds += \";\" + child[\"EventID\"];\r\n\r\n if (child[\"ProductID\"] !== String(found.ProductId)) {\r\n let subProductfound = cartLines.find(\r\n (cartline) => cartline.LineId === child[\"CartLineID\"]\r\n );\r\n\r\n if (subProductfound) {\r\n subProductQuantity = subProductfound.Quantity!;\r\n }\r\n }\r\n });\r\n\r\n formItemsArray.push({\r\n comment: found.Comment ? found.Comment : \"\",\r\n quantity: quantity,\r\n names: [\r\n cartLineData[`${cartLineIndex}`][\"Name_1\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_2\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_3\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_4\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_5\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_6\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_7\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_8\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_9\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_10\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_11\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_12\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_13\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_14\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_15\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_16\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_17\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_18\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_19\"],\r\n cartLineData[`${cartLineIndex}`][\"Name_20\"],\r\n ],\r\n category: cartLineData[`${cartLineIndex}`][\"Category\"],\r\n eventID: eventIds,\r\n eventName: eventNames,\r\n remarks: cartLineData[`${cartLineIndex}`][\"Remarks\"],\r\n message: cartLineData[`${cartLineIndex}`][\"Message\"],\r\n dedicatedBy: cartLineData[`${cartLineIndex}`][\"DedicatedBy\"],\r\n hasTaxDeduction:\r\n cartLineData[`${cartLineIndex}`][\"HasTaxDeduction\"],\r\n nric: cartLineData[`${cartLineIndex}`][\"Nric\"],\r\n buildingName: cartLineData[`${cartLineIndex}`][\"BuildingName\"],\r\n unitNumber: cartLineData[`${cartLineIndex}`][\"UnitNumber\"],\r\n postalCode: cartLineData[`${cartLineIndex}`][\"PostalCode\"],\r\n birthDate: cartLineData[`${cartLineIndex}`][\"BirthDate\"],\r\n phoneNumber: cartLineData[`${cartLineIndex}`][\"PhoneNumber\"],\r\n schoolName: cartLineData[`${cartLineIndex}`][\"SchoolName\"],\r\n donationOption: cartLineData[`${cartLineIndex}`][\"DonationOption\"],\r\n blessingOption: cartLineData[`${cartLineIndex}`][\"BlessingOption\"],\r\n birthTime: cartLineData[`${cartLineIndex}`][\"BirthTime\"],\r\n lightOption: cartLineData[`${cartLineIndex}`][\"LightOption\"],\r\n validFrom: cartLineData[`${cartLineIndex}`][\"ValidFrom\"],\r\n validTo: cartLineData[`${cartLineIndex}`][\"ValidTo\"],\r\n dedicationPeriod:\r\n cartLineData[`${cartLineIndex}`][\"DedicationPeriod\"],\r\n startDate: cartLineData[`${cartLineIndex}`][\"StartDate\"],\r\n gender: cartLineData[`${cartLineIndex}`][\"Gender\"],\r\n country: cartLineData[`${cartLineIndex}`][\"Country\"],\r\n companyName: cartLineData[`${cartLineIndex}`][\"CompanyName\"],\r\n deceasedRelationship:\r\n cartLineData[`${cartLineIndex}`][\"DeceasedRelationship\"],\r\n surgeryDate: cartLineData[`${cartLineIndex}`][\"SurgeryDate\"],\r\n deathDate: cartLineData[`${cartLineIndex}`][\"DeathDate\"],\r\n deathTime: cartLineData[`${cartLineIndex}`][\"DeathTime\"],\r\n nameChange: cartLineData[`${cartLineIndex}`][\"NameChange\"],\r\n oldName_1: cartLineData[`${cartLineIndex}`][\"OldName_1\"],\r\n oldName_2: cartLineData[`${cartLineIndex}`][\"OldName_2\"],\r\n birthDate_2: cartLineData[`${cartLineIndex}`][\"BirthDate_2\"],\r\n birthTime_2: cartLineData[`${cartLineIndex}`][\"BirthTime_2\"],\r\n chineseName: cartLineData[`${cartLineIndex}`][\"ChineseName\"],\r\n contactNumber: cartLineData[`${cartLineIndex}`][\"ContactNumber\"],\r\n nameNextKin: cartLineData[`${cartLineIndex}`][\"NameNextKin\"],\r\n contactNumberNextKin: cartLineData[`${cartLineIndex}`][\"ContactNumberNextKin\"],\r\n passportNumber: cartLineData[`${cartLineIndex}`][\"PassportNumber\"],\r\n passportExpiryDate: cartLineData[`${cartLineIndex}`][\"PassportExpiryDate\"],\r\n passportIssuedDate: cartLineData[`${cartLineIndex}`][\"PassportIssuedDate\"],\r\n consent: cartLineData[`${cartLineIndex}`][\"Consent\"],\r\n isInsuranceIncluded: cartLineData[`${cartLineIndex}`][\"IsInsuranceIncluded\"],\r\n isCustomPrice: found.IsPriceKeyedIn ? found.IsPriceKeyedIn : false,\r\n customPriceAmount: found.Price ? found.Price : 0,\r\n cartLineId: found.LineId,\r\n subProductQuantity: subProductQuantity,\r\n isPastTransaction: false,\r\n });\r\n\r\n this.setState({ isEditMode: true });\r\n } else {\r\n this.setState({ isEditMode: false });\r\n }\r\n } else if (parameters === \"\") {\r\n // Retrieve form inputs if user is logged in.\r\n const {\r\n context,\r\n context: {\r\n request: { user },\r\n },\r\n } = this.props;\r\n\r\n if (user.customerAccountNumber) {\r\n let itemInCart = false;\r\n\r\n if (cart.result && product.result) {\r\n const cartLines: CartLine[] = cart.result.cart.CartLines!;\r\n const foundInCart = cartLines.find(\r\n (cartline) => cartline.ProductId === product.result!.RecordId\r\n );\r\n\r\n if (foundInCart) {\r\n itemInCart = true;\r\n }\r\n }\r\n\r\n if (!itemInCart) {\r\n let lastOrderCE: any;\r\n let lastOrderCommerce: any;\r\n let records: string[] = [];\r\n\r\n // Retrieves all extension table records of this product.\r\n if (product.result) {\r\n records = await getByCustomerBTGPTransactionAsync(\r\n { callerContext: context.actionContext },\r\n user.customerAccountNumber,\r\n user.emailAddress!,\r\n product.result.RecordId.toString(),\r\n this.props.config.isUat\r\n );\r\n\r\n if (records.length > 0) {\r\n // Filters for records from CE.\r\n const recordsCE = records.filter((record) => {\r\n const input = JSON.parse(record);\r\n\r\n return input[\"FromCE\"] === true;\r\n });\r\n\r\n // Gets the most recent order from CE of this product.\r\n lastOrderCE =\r\n recordsCE && recordsCE.length > 0\r\n ? JSON.parse(recordsCE[0])\r\n : undefined;\r\n }\r\n }\r\n\r\n const orders = await getOrderHistoryAsync(\r\n { callerContext: context.actionContext },\r\n user.customerAccountNumber\r\n );\r\n\r\n // Finds the most recent order from Commerce that contains this product.\r\n if (orders && orders.length > 0) {\r\n lastOrderCommerce = orders.find((order: SalesOrder) => {\r\n const found = records.find((record) => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs[\"SalesOrderID\"] === order.Id &&\r\n inputs[\"FromCE\"] === false\r\n ? order.Id\r\n : \"\";\r\n });\r\n\r\n return found && found !== \"\" ? order : undefined;\r\n });\r\n }\r\n\r\n let mostRecentOrderID = \"\";\r\n\r\n if (lastOrderCE && lastOrderCommerce) {\r\n mostRecentOrderID = moment(\r\n lastOrderCE[\"DateOfTrasaction\"]\r\n ).isBefore(moment(lastOrderCommerce.CreatedDateTime))\r\n ? lastOrderCommerce.Id\r\n : lastOrderCE[\"SalesOrderID\"];\r\n } else if (lastOrderCE === undefined && lastOrderCommerce) {\r\n mostRecentOrderID = lastOrderCommerce.Id;\r\n } else if (lastOrderCE && lastOrderCommerce === undefined) {\r\n mostRecentOrderID = lastOrderCE[\"SalesOrderID\"];\r\n }\r\n\r\n if (mostRecentOrderID !== \"\") {\r\n const batch = records.filter((record) => {\r\n const inputs = JSON.parse(record);\r\n\r\n return inputs[\"SalesOrderID\"] === mostRecentOrderID;\r\n });\r\n\r\n // const items: any[] = [];\r\n\r\n // batch.forEach(item => items.push(JSON.parse(item)));\r\n\r\n // items.sort((a, b) => {\r\n // const x = a.Name_1 as string;\r\n // const y = b.Name_1 as string;\r\n\r\n // return (x > y) ? 1 : ((x < y) ? -1 : 0);\r\n // });\r\n\r\n for (let i = 0; i < batch.length; ++i) {\r\n const item = JSON.parse(batch[`${i}`]);\r\n\r\n const eventName = \"\";\r\n const eventId = \"\";\r\n\r\n // const selections = items.filter(record => {\r\n // if (item['EventID'] !== record['EventID'] && item['Name_1'] === record['Name_1']) {\r\n // return record;\r\n // }\r\n // });\r\n\r\n // for (let j = 0; j < selections.length; ++j) {\r\n // eventName += ';' + selections[`${j}`]['EventName'];\r\n // eventId += ';' + selections[`${j}`]['EventID'];\r\n // }\r\n\r\n // i += selections.length;\r\n\r\n formItemsArray.push({\r\n comment: \"\",\r\n quantity: item[\"Quantity\"] ? item[\"Quantity\"] : 1,\r\n names: [\r\n item[\"Name_1\"],\r\n item[\"Name_2\"],\r\n item[\"Name_3\"],\r\n item[\"Name_4\"],\r\n item[\"Name_5\"],\r\n item[\"Name_6\"],\r\n item[\"Name_7\"],\r\n item[\"Name_8\"],\r\n item[\"Name_9\"],\r\n item[\"Name_10\"],\r\n item[\"Name_11\"],\r\n item[\"Name_12\"],\r\n item[\"Name_13\"],\r\n item[\"Name_14\"],\r\n item[\"Name_15\"],\r\n item[\"Name_16\"],\r\n item[\"Name_17\"],\r\n item[\"Name_18\"],\r\n item[\"Name_19\"],\r\n item[\"Name_20\"],\r\n ],\r\n category: item[\"Category\"],\r\n eventID: eventId,\r\n eventName: eventName,\r\n remarks: item[\"Remarks\"],\r\n message: item[\"Message\"],\r\n dedicatedBy: item[\"DedicatedBy\"],\r\n hasTaxDeduction: item[\"HasTaxDeduction\"],\r\n nric: item[\"Nric\"],\r\n buildingName: item[\"BuildingName\"],\r\n unitNumber: item[\"UnitNumber\"],\r\n postalCode: item[\"PostalCode\"],\r\n birthDate: item[\"BirthDate\"],\r\n phoneNumber: item[\"PhoneNumber\"],\r\n schoolName: item[\"SchoolName\"],\r\n donationOption: item[\"DonationOption\"],\r\n blessingOption: item[\"BlessingOption\"],\r\n birthTime: item[\"BirthTime\"],\r\n lightOption: item[\"LightOption\"],\r\n validFrom: item[\"ValidFrom\"],\r\n validTo: item[\"ValidTo\"],\r\n dedicationPeriod: item[\"DedicationPeriod\"],\r\n gender: item[\"Gender\"],\r\n country: item[\"Country\"],\r\n companyName: item[\"CompanyName\"],\r\n deceasedRelationship: item[\"DeceasedRelationship\"],\r\n surgeryDate: item[\"SurgeryDate\"],\r\n deathDate: item[\"DeathDate\"],\r\n deathTime: item[\"DeathTime\"],\r\n nameChange: item[\"NameChange\"],\r\n oldName_1: item[\"OldName_1\"],\r\n oldName_2: item[\"OldName_2\"],\r\n birthDate_2: item[\"BirthDate_2\"],\r\n birthTime_2: item[\"BirthTime_2\"],\r\n chineseName: item[\"ChineseName\"],\r\n contactNumber: item[\"ContactNumber\"],\r\n nameNextKin: item[\"NameNextKin\"],\r\n contactNumberNextKin: item[\"ContactNumberNextKin\"],\r\n passportNumber: item[\"PassportNumber\"],\r\n passportExpiryDate: item[\"PassportExpiryDate\"],\r\n passportIssuedDate: item[\"PassportIssuedDate\"],\r\n consent: item[\"Consent\"],\r\n isInsuranceIncluded: item[\"IsInsuranceIncluded\"],\r\n isCustomPrice: false,\r\n customPriceAmount: 0,\r\n cartLineId: \"\",\r\n isPastTransaction: true,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n const data = user.isAuthenticated\r\n ? await getContactDetailsAsync(\r\n { callerContext: this.props.context.actionContext },\r\n user.emailAddress ? user.emailAddress : \"\",\r\n config.isUat\r\n )\r\n : [\"\"];\r\n\r\n // TODO: MOVE TO CONTROLLER\r\n const parseUserData =\r\n data && data[0] && data[0] !== \"\" ? JSON.parse(data[0]) : undefined;\r\n\r\n this.setState({\r\n formItems: formItemsArray,\r\n userData: parseUserData,\r\n hasMounted: true,\r\n width: window.innerWidth\r\n });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this.state.hasMounted) {\r\n return null;\r\n }\r\n\r\n const {\r\n resources,\r\n config,\r\n context,\r\n productsList,\r\n telemetryContent,\r\n productPriceList,\r\n simpleProducts,\r\n productAvailabilities,\r\n data: { cart /*, product */ },\r\n } = this.props;\r\n\r\n let Total: number = 0;\r\n\r\n this.setState({ registrationClosed: this.props.registrationClosed });\r\n\r\n const addRow = (noOfRows: number): void => {\r\n this.props.addRow(noOfRows);\r\n };\r\n\r\n const replaceRow = (noOfRows: number, idx: number[]): void => {\r\n this.props.replaceRow(noOfRows, idx);\r\n };\r\n\r\n const deleteRow = (idx: number): void => {\r\n this.props.removeRow(idx);\r\n };\r\n\r\n const itemAddedToCart = (): void => {\r\n _navigateToCart();\r\n };\r\n\r\n const _navigateToCart = () => {\r\n const cartAliasUrl =\r\n getUrlSync(\"cart\", this.props.context.actionContext) || \"\";\r\n\r\n if (cartAliasUrl) {\r\n window.location.assign(cartAliasUrl);\r\n }\r\n };\r\n\r\n if (\r\n this.props.rowsData.length &&\r\n this.props.selectedProduct.result &&\r\n this.props.selectedProduct.result.Price\r\n ) {\r\n let quantitiesArray = this.state.quantities;\r\n let subProductQuantityArray = this.state.subProductQuantity;\r\n\r\n for (let i = 0; i < this.props.rowsData.length; i++) {\r\n Total +=\r\n this.props.selectedProduct.result.Price *\r\n (typeof quantitiesArray[`${i}`] !== \"undefined\"\r\n ? quantitiesArray[`${i}`]\r\n : 1) +\r\n (this.props.subProduct\r\n ? this.props.subProduct.Price *\r\n (typeof subProductQuantityArray[`${i}`] !== \"undefined\"\r\n ? subProductQuantityArray[`${i}`]\r\n : 0)\r\n : 0);\r\n }\r\n }\r\n\r\n let enableButton = false;\r\n\r\n switch (this.props.formName) {\r\n case \"amountDeceasedNameForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"categoryNamesAddressForm\":\r\n enableButton = this.state.namesEntered && this.state.addressEntered;\r\n break;\r\n\r\n case \"categoryNamesCollectionForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"categoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"ceremonyForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"deceasedCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"deceasedDedicatedByForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"donationForm\":\r\n enableButton = this.state.namesEntered && this.state.pricesEntered;\r\n break;\r\n\r\n case \"coursesForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break; \r\n\r\n case \"eventsChineseNameForm\":\r\n enableButton = this.props.makeChineseNameMandatory ? this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.chineseNamesEntered:this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered;\r\n break; \r\n\r\n case \"eventsPassportUpload\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.passportNumberEntered && this.state.dateEntered && this.state.passportExpiryDateEntered && this.state.passportIssueDateEntered && this.state.fileUploaded;\r\n break; \r\n case \"eventsPassportUploadWithInsurance\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered && this.state.passportNumberEntered && this.state.dateEntered && this.state.passportExpiryDateEntered && this.state.passportIssueDateEntered && this.state.fileUploaded;\r\n break; \r\n\r\n case \"eventsNextOfKinNameForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected && this.state.phoneNumbersEntered;\r\n break; \r\n\r\n case \"eventCategoryNamesForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"eventDeceasedDedicatedByForm\":\r\n enableButton = this.state.namesEntered && this.state.eventsSelected;\r\n break;\r\n\r\n case \"eventTaxDeductionForm\":\r\n enableButton = this.state.formsValidated;\r\n break;\r\n\r\n case \"nameBirthDatetimeForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"nameBirthdaySchoolForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.schoolsEntered &&\r\n this.state.dateEntered;\r\n break;\r\n\r\n case \"namesOnlyForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"namesRemarksForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"namesAddressContactnoForm\":\r\n enableButton = this.state.namesEntered && this.state.phoneNumbersEntered;\r\n break;\r\n\r\n case \"noOfYearsCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"offeringForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"servicesBusinessForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.companiesEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesDeceasedForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.relationshipsEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesEducationForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.schoolsEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesGeneralForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n \r\n case \"nameDedicationStartDateForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered \r\n break;\r\n\r\n case \"servicesHealthSurgeryForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesInfantSpiritForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"servicesMarriageForm\":\r\n enableButton =\r\n this.state.namesEntered &&\r\n this.state.dateEntered &&\r\n this.state.addressEntered;\r\n break;\r\n\r\n case \"threeCategoryNamesForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n\r\n case \"threeCategoryNamesConsecrationForm\":\r\n enableButton = this.state.namesEntered;\r\n break;\r\n }\r\n\r\n const showSubDetails =\r\n (!this.props.itemUnavailable && !this.state.registrationClosed && this.props.formName !=\"coursesForm\" && this.props.formName != \"eventsChineseNameForm\" && this.props.formName != \"eventsNextOfKinNameForm\" && this.props.formName !='eventsPassportUpload' && this.props.formName!= \"eventsPassportUploadWithInsurance\")\r\n ? true\r\n : this.state.renewableLamps.length > 0 &&\r\n this.props.itemUnavailable &&\r\n this.state.addRenewLamp\r\n ? true\r\n : (this.props.formName == \"coursesForm\" || this.props.formName == \"eventsChineseNameForm\" || this.props.formName == \"eventsNextOfKinNameForm\" || this.props.formName == \"eventsPassportUpload\" || this.props.formName == \"eventsPassportUploadWithInsurance\") && this.props.eventAvailable? true: false;\r\n\r\n const showNoOfYearsCategoryNamesForm =\r\n this.state.renewableLamps.length > 0 &&\r\n this.props.itemUnavailable &&\r\n this.state.addRenewLamp\r\n ? true\r\n : !this.props.itemUnavailable && !this.state.registrationClosed\r\n ? true\r\n : false;\r\n\r\n const showItemUnavailableNotice = (this.props.itemUnavailable &&\r\n !this.state.addRenewLamp &&\r\n !this.state.registrationClosed) \r\n ? true\r\n : this.state.addRenewLamp && this.state.registrationClosed\r\n ? true\r\n : false;\r\n\r\n const showCartAmount = !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.props.formName !=\"coursesForm\" && this.props.formName !=\"eventsChineseNameForm\" && this.props.formName !=\"eventsNextOfKinNameForm\" && this.props.formName != \"eventsPassportUpload\" && this.props.formName !=\"eventsPassportUploadWithInsurance\" ? true: (this.props.itemUnavailable &&\r\n this.state.renewableLamps.length > 0 &&\r\n !this.state.registrationClosed &&\r\n this.state.addRenewLamp)? true: (this.props.formName ==\"coursesForm\" || this.props.formName==\"eventsChineseNameForm\" || this.props.formName==\"eventsNextOfKinNameForm\" || this.props.formName == \"eventsPassportUpload\" || this.props.formName == \"eventsPassportUploadWithInsurance\") && this.props.eventAvailable?true: false;\r\n\r\n return (\r\n
\r\n
\r\n {!(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n this._renderTop()}\r\n\r\n {(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n this.state.renewableLamps.length > 0 &&\r\n this._renderRenewableLamp()}\r\n\r\n {showItemUnavailableNotice && this._renderItemUnavailableNotice()}\r\n\r\n\r\n {this.state.registrationClosed &&\r\n this._renderRegistrationClosedNotice()}\r\n\r\n {showSubDetails && this._renderSub()}\r\n
\r\n\r\n {this.props.formName === \"amountDeceasedNameForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesAddressForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesCollectionForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"categoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"ceremonyForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"deceasedCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"deceasedDedicatedByForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"donationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"coursesForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"coursesForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"coursesForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsChineseNameForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsChineseNameForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsChineseNameForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsNextOfKinNameForm\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n\r\n {this.props.formName === \"eventsNextOfKinNameForm\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsNextOfKinNameForm\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsPassportUpload\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsPassportUpload\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsPassportUpload\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" &&\r\n this.props.eventAvailable &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && this.state.userData &&(\r\n \r\n )}\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" && !this.state.userData && this.props.eventAvailable &&\r\n (\r\n this._renderCoursesItemUnavailableNotice()\r\n )}\r\n {this.props.formName === \"eventsPassportUploadWithInsurance\" && \r\n !this.props.eventAvailable && \r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed &&\r\n (\r\n this._renderItemUnavailableNotice()\r\n )}\r\n\r\n {this.props.formName === \"eventCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"eventDeceasedDedicatedByForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"eventTaxDeductionForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameBirthDatetimeForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameBirthdaySchoolForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"namesOnlyForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {this.props.formName === \"namesRemarksForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {this.props.formName === \"namesAddressContactnoForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n\r\n {/* SERIAL NAME */}\r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" &&\r\n showNoOfYearsCategoryNamesForm && (\r\n \r\n )}\r\n {this.props.formName === \"offeringForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesBusinessForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesDeceasedForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesEducationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesGeneralForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"nameDedicationStartDateForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesHealthSurgeryForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesInfantSpiritForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"servicesMarriageForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"threeCategoryNamesForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {this.props.formName === \"threeCategoryNamesConsecrationForm\" &&\r\n !(this.state.itemUnavailable || this.props.itemUnavailable) &&\r\n !this.state.registrationClosed && (\r\n \r\n )}\r\n {showCartAmount && (\r\n
\r\n
\r\n

\r\n {resource.totalTitle[this.localeCode]} : $\r\n {Total !== 0 && !this.state.isInsuranceIncluded.includes(true) ? Total : this.state.customerTotalPrice}\r\n

\r\n {productsList && productsList.length > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n\r\n \r\n
\r\n );\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this._updateDimensions);\r\n }\r\n\r\n private _renderTop(): JSX.Element | null {\r\n const {\r\n config,\r\n context: {\r\n request: { user },\r\n },\r\n formName,\r\n } = this.props;\r\n\r\n const saveDraft = this.state.namesEntered\r\n ? \"save-draft\"\r\n : \"save-draft disabled\";\r\n const retrieveDraft =\r\n this.state.drafts.length !== 0\r\n ? \"retrieve-draft\"\r\n : \"retrieve-draft disabled\";\r\n const renewLamp =\r\n this.state.renewableLamps.length !== 0 && this.props.isEditMode != true\r\n ? \"renew-lamp\"\r\n : \"renew-lamp disabled\";\r\n\r\n const showPrompt =\r\n formName === \"ceremonyForm\" ||\r\n formName === \"eventCategoryNamesForm\" ||\r\n formName === \"eventDeceasedDedicatedByForm\"\r\n ? true\r\n : false;\r\n\r\n return (\r\n
\r\n \r\n {resource.headerText[this.localeCode]}\r\n

\r\n
\r\n {user.isAuthenticated ? (\r\n
\r\n \r\n {resource.saveDraft[this.localeCode]}\r\n \r\n |\r\n \r\n {resource.retrieveDraft[this.localeCode]}\r\n \r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" && (\r\n \r\n {\r\n resource.noOfYearsCategoryNamesForm[this.localeCode]\r\n .renewLampTitle\r\n }\r\n \r\n )}\r\n {showPrompt && (\r\n
\r\n {resource.saveDraftEventDatePrompt[this.localeCode]}\r\n
\r\n )}\r\n
\r\n ) : (\r\n

\r\n {resource.accountCheckText[this.localeCode]}{\" \"}\r\n \r\n {resource.signInTitle[this.localeCode]}\r\n \r\n

\r\n )}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderRenewableLamp(): JSX.Element | null {\r\n const {\r\n config,\r\n context: {\r\n request: { user },\r\n },\r\n formName,\r\n } = this.props;\r\n\r\n const renewLamp =\r\n this.state.renewableLamps.length !== 0 && this.props.isEditMode != true\r\n ? \"renew-lamp\"\r\n : \"renew-lamp disabled\";\r\n\r\n const showPrompt =\r\n formName === \"ceremonyForm\" ||\r\n formName === \"eventCategoryNamesForm\" ||\r\n formName === \"eventDeceasedDedicatedByForm\"\r\n ? true\r\n : false;\r\n\r\n return (\r\n
\r\n \r\n {resource.headerText[this.localeCode]}\r\n

\r\n
\r\n {user.isAuthenticated ? (\r\n
\r\n {this.props.formName === \"noOfYearsCategoryNamesForm\" && (\r\n \r\n {\r\n resource.noOfYearsCategoryNamesForm[this.localeCode]\r\n .renewLampTitle\r\n }\r\n \r\n )}\r\n {showPrompt && (\r\n
\r\n {resource.saveDraftEventDatePrompt[this.localeCode]}\r\n
\r\n )}\r\n
\r\n ) : (\r\n

\r\n {resource.accountCheckText[this.localeCode]}{\" \"}\r\n \r\n {resource.signInTitle[this.localeCode]}\r\n \r\n

\r\n )}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSub(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {resource.detailsTitle[this.localeCode]}\r\n

\r\n {isMobile(this.state.width) ? null : (\r\n

\r\n {resource.subTotalTitle[this.localeCode]}\r\n

\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderItemUnavailableNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].itemUnavailableHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.itemUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _renderCoursesItemUnavailableNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].itemUnavailableHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.coursesUnavailableNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _renderRegistrationClosedNotice(): JSX.Element | null {\r\n return (\r\n
\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].registrationClosedHeader\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine1\r\n }\r\n

\r\n
\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point1\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point2\r\n }\r\n

\r\n

\r\n {\r\n resource.registrationClosedNotice[this.localeCode][\r\n this.props.config.organisation!\r\n ].messageLine2Point3\r\n }\r\n

\r\n
\r\n );\r\n }\r\n\r\n private _handleOnClickPrice = (value: number[]) => {\r\n this.setState({\r\n customerPrices: value,\r\n customerTotalPrice: value.reduce((a, b) => this.fpFix(a + b), 0),\r\n });\r\n };\r\n\r\n private _handleEventInput = (value: string[]) => {\r\n this.setState({ customerEvents: value });\r\n };\r\n\r\n private _handleEventIDInput = (value: string[]) => {\r\n this.setState({ customerEventIDs: value });\r\n };\r\n\r\n private _handleCategoryInput = (value: string[]) => {\r\n this.setState({ categories: value });\r\n };\r\n\r\n private _handleDedicationPeriodInput = (value: string[]) => {\r\n this.setState({ dedicationPeriods: value });\r\n };\r\n\r\n private _handleStartDateInput = (value: string[]) => {\r\n this.setState({ startDates: value });\r\n };\r\n\r\n private _handleGenderInput = (value: string[]) => {\r\n this.setState({ genders: value });\r\n };\r\n\r\n private _handleNameInput = (value: string[]) => {\r\n this.setState({ customerNames: value });\r\n };\r\n\r\n private _handleDedicatedByInput = (value: string[]) => {\r\n this.setState({ dedicatedBy: value });\r\n };\r\n\r\n private _handleSubProductQuantityInput = (value: number[]) => {\r\n this.setState({ subProductQuantity: value });\r\n };\r\n\r\n private _handleMessageInput = (value: string[]) => {\r\n this.setState({ customerMessages: value });\r\n };\r\n\r\n private _handleRemarkInput = (value: string[]) => {\r\n this.setState({ customerRemarks: value });\r\n };\r\n\r\n private _handleCollectionOptionInput = (value: string[]) => {\r\n this.setState({ collectionOptions: value });\r\n };\r\n\r\n private _handleTaxDeductionInput = (value: boolean[]) => {\r\n this.setState({ hasTaxDeductions: value });\r\n };\r\n\r\n private _handleNRICInput = (value: string[]) => {\r\n this.setState({ nrics: value });\r\n };\r\n\r\n private _handleBuildingNameInput = (value: string[]) => {\r\n this.setState({ buildingNames: value });\r\n };\r\n\r\n private _handleUnitNumberInput = (value: string[]) => {\r\n this.setState({ unitNumbers: value });\r\n };\r\n\r\n private _handlePostalCodeInput = (value: string[]) => {\r\n this.setState({ postalCodes: value });\r\n };\r\n\r\n private _handlePhoneNumberInput = (value: string[]) => {\r\n this.setState({ phoneNumbers: value });\r\n };\r\n\r\n private _handleChineseNameInput = (value: string[]) => {\r\n this.setState({ chineseNames: value });\r\n };\r\n\r\n private _handleNextOfKinNameInput = (value: string[]) => {\r\n this.setState({ nextKinNames: value });\r\n };\r\n\r\n private _handlePassportNumberInput = (value: string[]) => {\r\n this.setState({ passportNumbers: value });\r\n };\r\n\r\n private _handlePassportExpiryDateInput = (value: string[]) => {\r\n this.setState({ passportExpiryDates: value });\r\n };\r\n\r\n private _handlePassportIssuedDateInput = (value: string[]) => {\r\n this.setState({ passportIssuedDates: value });\r\n };\r\n\r\n private _handleConsentsInput = (value: string[]) => {\r\n this.setState({ consents: value });\r\n };\r\n\r\n private _handleIsInsuranceIncludedInput = (value: boolean[]) => {\r\n this.setState({ isInsuranceIncluded: value });\r\n };\r\n\r\n private _handleIsInsuranceIncludedNumInput = (value: number[]) => {\r\n this.setState({ isInsuranceIncludedNum: value });\r\n };\r\n\r\n private _handleNextOfKinPhoneNumberInput = (value: string[]) => {\r\n this.setState({ contactNumbersNextKins: value });\r\n };\r\n\r\n private _handleSurgeryDateInput = (value: string[]) => {\r\n this.setState({ surgeryDates: value });\r\n };\r\n\r\n private _handleBirthDateInput = (value: string[]) => {\r\n this.setState({ birthDates: value });\r\n };\r\n\r\n private _handleBirthTimeInput = (value: string[]) => {\r\n this.setState({ birthTimes: value });\r\n };\r\n\r\n private _handleSchoolNameInput = (value: string[]) => {\r\n this.setState({ schoolNames: value });\r\n };\r\n\r\n private _handleBlessingOptionInput = (value: string[]) => {\r\n this.setState({ blessingOptions: value });\r\n };\r\n\r\n private _handleLightOptionInput = (value: string[]) => {\r\n this.setState({ lightOptions: value });\r\n };\r\n\r\n private _handleQuantitiesInput = (value: number[]) => {\r\n this.setState({ quantities: value });\r\n };\r\n\r\n private _handleValidFromInput = (value: string[]) => {\r\n this.setState({ validFroms: value });\r\n };\r\n\r\n private _handleValidToInput = (value: string[]) => {\r\n this.setState({ validTos: value });\r\n };\r\n\r\n private _handleCountryInput = (value: string[]) => {\r\n this.setState({ countries: value });\r\n };\r\n\r\n private _handleCompanyNameInput = (value: string[]) => {\r\n this.setState({ companyNames: value });\r\n };\r\n\r\n private _handleDeceasedRelationshipInput = (value: string[]) => {\r\n this.setState({ deceasedRelationships: value });\r\n };\r\n\r\n private _handleDeathDateInput = (value: string[]) => {\r\n this.setState({ deathDates: value });\r\n };\r\n\r\n private _handleDeathTimeInput = (value: string[]) => {\r\n this.setState({ deathTimes: value });\r\n };\r\n\r\n private _handleOldNameInput = (value: string[]) => {\r\n this.setState({ oldNames: value });\r\n };\r\n\r\n private _handleNameChangeInput = (value: string[]) => {\r\n this.setState({ nameChanges: value });\r\n };\r\n\r\n private _handleSerialIdInput = (value: string[]) => {\r\n this.setState({ customerSerialIDs: value });\r\n };\r\n\r\n private _handleSerialNumberInput = (value: string[]) => {\r\n this.setState({ customerSerialNumbers: value });\r\n };\r\n\r\n private _handleSerialNamesInput = (value: string[]) => {\r\n this.setState({ customerSerialNames: value });\r\n };\r\n\r\n private _handleFormsValidation = (value: boolean) => {\r\n this.setState({ formsValidated: value });\r\n };\r\n\r\n private _handleEventsSelected = (value: boolean) => {\r\n this.setState({ eventsSelected: value });\r\n };\r\n\r\n private _handleNamesEntered = (value: boolean) => {\r\n this.setState({ namesEntered: value });\r\n };\r\n \r\n private _handleChineseNamesEntered = (value: boolean) => {\r\n this.setState({ chineseNamesEntered: value });\r\n };\r\n\r\n private _handlePhoneNumbersEntered = (value: boolean) => {\r\n this.setState({ phoneNumbersEntered: value });\r\n };\r\n\r\n private _handlePassportNumberEntered = (value: boolean) => {\r\n this.setState({ passportNumberEntered: value });\r\n };\r\n\r\n private _handleRelationshipsEntered = (value: boolean) => {\r\n this.setState({ relationshipsEntered: value });\r\n };\r\n\r\n private _handleCompaniesEntered = (value: boolean) => {\r\n this.setState({ companiesEntered: value });\r\n };\r\n\r\n private _handleSchoolsEntered = (value: boolean) => {\r\n this.setState({ schoolsEntered: value });\r\n };\r\n\r\n private _handlePricesEntered = (value: boolean) => {\r\n this.setState({ pricesEntered: value });\r\n };\r\n\r\n private _handleAddressEntered = (value: boolean) => {\r\n this.setState({ addressEntered: value });\r\n };\r\n\r\n private _handleDateEntered = (value: boolean) => {\r\n this.setState({ dateEntered: value });\r\n };\r\n\r\n private _handlePassportExpiryDateEntered = (value: boolean) => {\r\n this.setState({ passportExpiryDateEntered: value });\r\n };\r\n\r\n private _handlePassportIssueDateEntered = (value: boolean) => {\r\n this.setState({ passportIssueDateEntered: value });\r\n };\r\n\r\n private _handleFileUploaded = (value: boolean) => {\r\n this.setState({ fileUploaded: value });\r\n };\r\n\r\n private _handleRenewableLampChecked = (value: any[]) => {\r\n this.setState({ renewableLamps: value });\r\n };\r\n\r\n private _handleRenewableLampRemove = (value: string) => {\r\n let lamps: any[] = this.state.renewableLamps.slice();\r\n\r\n let removeLampIndex = lamps.findIndex((lamp) => lamp[\"serialId\"] === value);\r\n\r\n if (removeLampIndex >= 0) {\r\n lamps[`${removeLampIndex}`][\"isChecked\"] = false;\r\n lamps[`${removeLampIndex}`][\"isAdded\"] = false;\r\n\r\n this.setState({ renewableLamps: lamps });\r\n }\r\n };\r\n\r\n private _updateDimensions = () => {\r\n this.setState({ width: window.innerWidth });\r\n };\r\n\r\n private fpFix(value: number) {\r\n return Math.round(value * 100) / 100;\r\n }\r\n\r\n private _saveDraft = () => {\r\n if (this.props.eventProduct) {\r\n this._checkRegistrationPeriod();\r\n }\r\n\r\n this._checkAvailableSerial();\r\n\r\n if (this.state.namesEntered && !this.state[\"registrationClosed\"] && !this.state[\"itemUnavailable\"]) {\r\n const {\r\n context,\r\n data: { accountInformation, product },\r\n rowsData,\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n const nullDate = new Date(1900, 1, 1, 0, 0, 0).toISOString();\r\n\r\n if (this._checkUnderEventDatesLimit()) {\r\n for (let i = 0; i < rowsData.length; ++i) {\r\n const eventNames = this.state.customerEvents[`${i}`]\r\n ? this.state.customerEvents[`${i}`]\r\n : \"\";\r\n const eventIDs = this.state.customerEventIDs[`${i}`]\r\n ? this.state.customerEventIDs[`${i}`]\r\n : \"\";\r\n\r\n const eventNamesArray = eventNames.split(\";\");\r\n const eventIDsArray = eventIDs.split(\";\");\r\n\r\n const serialId = this.state.customerSerialIDs[`${i}`]\r\n ? this.state.customerSerialIDs[`${i}`]\r\n : \"\";\r\n const serialNumber = this.state.customerSerialNumbers[`${i}`]\r\n ? this.state.customerSerialNumbers[`${i}`]\r\n : \"\";\r\n const serialName = this.state.customerSerialNames[`${i}`]\r\n ? this.state.customerSerialNames[`${i}`]\r\n : \"\";\r\n\r\n const names = this.state.customerNames[`${i}`].split(\";\");\r\n\r\n const remarks = this.state.customerRemarks[`${i}`]\r\n ? this.state.customerRemarks[`${i}`]\r\n : \"\";\r\n const messages = this.state.customerMessages[`${i}`]\r\n ? this.state.customerMessages[`${i}`]\r\n : \"\";\r\n\r\n const category = this.state.categories[`${i}`]\r\n ? this.state.categories[`${i}`]\r\n : \"\";\r\n\r\n const dedicatedBy = this.state.dedicatedBy[`${i}`]\r\n ? this.state.dedicatedBy[`${i}`]\r\n : \"\";\r\n\r\n const hasTaxDeduction = this.state.hasTaxDeductions[`${i}`]\r\n ? this.state.hasTaxDeductions[`${i}`]\r\n : false;\r\n const nric = this.state.nrics[`${i}`] ? this.state.nrics[`${i}`] : \"\";\r\n\r\n const buildingName = this.state.buildingNames[`${i}`]\r\n ? this.state.buildingNames[`${i}`]\r\n : \"\";\r\n const unitNumber = this.state.unitNumbers[`${i}`]\r\n ? this.state.unitNumbers[`${i}`]\r\n : \"\";\r\n const postalCode = this.state.postalCodes[`${i}`]\r\n ? this.state.postalCodes[`${i}`]\r\n : \"\";\r\n const phoneNumber = this.state.phoneNumbers[`${i}`]\r\n ? this.state.phoneNumbers[`${i}`]\r\n : \"\";\r\n const chineseName = this.state.chineseNames[`${i}`]\r\n ? this.state.chineseNames[`${i}`]\r\n :\"\";\r\n const nameNextKin = this.state.nextKinNames[`${i}`]\r\n ? this.state.nextKinNames[`${i}`]\r\n :\"\";\r\n const contactNumber = this.state.contactNumbers[`${i}`]\r\n ? this.state.contactNumbers[`${i}`]\r\n :\"\";\r\n const contactNumberNextKin = this.state.contactNumbersNextKins[`${i}`]\r\n ? this.state.contactNumbersNextKins[`${i}`]\r\n :\"\";\r\n const passportNumber = this.state.passportNumbers[`${i}`]\r\n ? this.state.passportNumbers[`${i}`]\r\n :\"\";\r\n const passportExpiryDate = this.state.passportExpiryDates[`${i}`] &&\r\n this.state.passportExpiryDates[`${i}`] !== \"\"\r\n ? this.state.passportExpiryDates[`${i}`]\r\n :nullDate;\r\n const passportIssuedDate = this.state.passportIssuedDates[`${i}`] &&\r\n this.state.passportIssuedDates[`${i}`] !== \"\"\r\n ? this.state.passportIssuedDates[`${i}`]\r\n :nullDate;\r\n const consent = this.state.consents[`${i}`]\r\n ? this.state.consents[`${i}`]\r\n :0;\r\n const isInsuranceIncluded = this.state.isInsuranceIncludedNum[`${i}`]\r\n ? this.state.isInsuranceIncludedNum[`${i}`]\r\n :0;\r\n const country = this.state.countries[`${i}`]\r\n ? this.state.countries[`${i}`]\r\n : \"\";\r\n\r\n const birthDates = this.state.birthDates[`${i}`]\r\n ? this.state.birthDates[`${i}`].split(\";\")\r\n : [];\r\n const birthTimes = this.state.birthTimes[`${i}`]\r\n ? this.state.birthTimes[`${i}`].split(\";\")\r\n : [];\r\n\r\n const schoolName = this.state.schoolNames[`${i}`]\r\n ? this.state.schoolNames[`${i}`]\r\n : \"\";\r\n\r\n const collectionOption = this.state.collectionOptions[`${i}`]\r\n ? this.state.collectionOptions[`${i}`]\r\n : \"\";\r\n const blessingOption = this.state.blessingOptions[`${i}`]\r\n ? this.state.blessingOptions[`${i}`]\r\n : \"\";\r\n const lightOption = this.state.lightOptions[`${i}`]\r\n ? this.state.lightOptions[`${i}`]\r\n : \"\";\r\n\r\n const validFrom =\r\n this.state.validFroms[`${i}`] &&\r\n this.state.validFroms[`${i}`] !== \"\"\r\n ? this.state.validFroms[`${i}`]\r\n : nullDate;\r\n const validTo =\r\n this.state.validTos[`${i}`] && this.state.validTos[`${i}`] !== \"\"\r\n ? this.state.validTos[`${i}`]\r\n : nullDate;\r\n\r\n const surgeryDate =\r\n this.state.surgeryDates[`${i}`] &&\r\n this.state.surgeryDates[`${i}`] !== \"\"\r\n ? this.state.surgeryDates[`${i}`]\r\n : nullDate;\r\n\r\n const dedicationPeriod = this.state.dedicationPeriods[`${i}`]\r\n ? this.state.dedicationPeriods[`${i}`]\r\n : \"\";\r\n const startDate = this.state.startDates[`${i}`]\r\n ? this.state.startDates[`${i}`]\r\n : nullDate;\r\n\r\n const companyName = this.state.companyNames[`${i}`]\r\n ? this.state.companyNames[`${i}`]\r\n : \"\";\r\n\r\n const deceasedRelationship = this.state.deceasedRelationships[`${i}`]\r\n ? this.state.deceasedRelationships[`${i}`]\r\n : \"\";\r\n const deathDate =\r\n this.state.deathDates[`${i}`] &&\r\n this.state.deathDates[`${i}`] !== \"\"\r\n ? this.state.deathDates[`${i}`]\r\n : nullDate;\r\n const deathTime = this.state.deathTimes[`${i}`]\r\n ? this.state.deathTimes[`${i}`]\r\n : \"\";\r\n\r\n const quantity = 1;\r\n\r\n const nameChange = this.state.nameChanges[`${i}`]\r\n ? this.state.nameChanges[`${i}`]\r\n : \"\";\r\n const oldNames = this.state.oldNames[`${i}`]\r\n ? this.state.oldNames[`${i}`].split(\";\")\r\n : [];\r\n\r\n const gender = this.state.genders[`${i}`]\r\n ? this.state.genders[`${i}`]\r\n : \"\";\r\n\r\n for (let j = 0; j < eventNamesArray.length; ++j) {\r\n createOrUpdateBTGPDraftAsync(\r\n { callerContext: context.actionContext },\r\n uuidv4(),\r\n customer?.AccountNumber!,\r\n product.result?.RecordId.toString()!,\r\n eventIDsArray[`${j}`],\r\n eventNamesArray[`${j}`],\r\n serialId,\r\n serialNumber,\r\n serialName,\r\n names[0] ? names[0] : \"\",\r\n names[1] ? names[1] : \"\",\r\n names[2] ? names[2] : \"\",\r\n names[3] ? names[3] : \"\",\r\n names[4] ? names[4] : \"\",\r\n names[5] ? names[5] : \"\",\r\n names[6] ? names[6] : \"\",\r\n names[7] ? names[7] : \"\",\r\n names[8] ? names[8] : \"\",\r\n names[9] ? names[9] : \"\",\r\n names[10] ? names[10] : \"\",\r\n names[11] ? names[11] : \"\",\r\n names[12] ? names[12] : \"\",\r\n names[13] ? names[13] : \"\",\r\n names[14] ? names[14] : \"\",\r\n names[15] ? names[15] : \"\",\r\n names[16] ? names[16] : \"\",\r\n names[17] ? names[17] : \"\",\r\n names[18] ? names[18] : \"\",\r\n names[19] ? names[19] : \"\",\r\n remarks,\r\n messages,\r\n category,\r\n dedicatedBy,\r\n hasTaxDeduction,\r\n nric,\r\n buildingName,\r\n unitNumber,\r\n postalCode,\r\n birthDates[0] ? birthDates[0] : nullDate,\r\n phoneNumber,\r\n schoolName,\r\n collectionOption,\r\n blessingOption,\r\n \"1\",\r\n new Date().toISOString(),\r\n birthTimes[0] ? birthTimes[0] : \"\",\r\n lightOption,\r\n validFrom,\r\n validTo,\r\n rowsData[`${i}`].id,\r\n dedicationPeriod,\r\n country,\r\n companyName,\r\n deceasedRelationship,\r\n surgeryDate,\r\n deathDate,\r\n deathTime,\r\n quantity,\r\n nameChange,\r\n oldNames[0] ? oldNames[0] : \"\",\r\n oldNames[1] ? oldNames[1] : \"\",\r\n birthDates[1] ? birthDates[1] : \"\",\r\n birthTimes[1] ? birthTimes[1] : \"\",\r\n startDate,\r\n gender,\r\n chineseName,\r\n contactNumber,\r\n nameNextKin,\r\n contactNumberNextKin,\r\n passportNumber,\r\n passportExpiryDate,\r\n passportIssuedDate,\r\n consent,\r\n isInsuranceIncluded\r\n )\r\n .then((result) => {\r\n if (result) {\r\n if (j === eventNamesArray.length - 1) {\r\n this._getDrafts();\r\n\r\n toast.success(\r\n resource.saveDraftSuccessMsg[this.localeCode]\r\n );\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n const extra = \"Customer: \" + customer?.AccountNumber!;\r\n\r\n const item: FormDetails = {\r\n CartLineID: \"\",\r\n CartID: \"\",\r\n CartLineComment: \"\",\r\n ParentCartLineID: rowsData[`${i}`].id,\r\n ProductID: product.result?.RecordId.toString()!,\r\n EventID: eventIDsArray[`${j}`],\r\n EventName: eventNamesArray[`${j}`],\r\n SerialID: serialId,\r\n SerialNumber: serialNumber,\r\n SerialName: serialName,\r\n Name_1: names[0] ? names[0] : \"\",\r\n Name_2: names[1] ? names[1] : \"\",\r\n Name_3: names[2] ? names[2] : \"\",\r\n Name_4: names[3] ? names[3] : \"\",\r\n Name_5: names[4] ? names[4] : \"\",\r\n Name_6: names[5] ? names[5] : \"\",\r\n Name_7: names[6] ? names[6] : \"\",\r\n Name_8: names[7] ? names[7] : \"\",\r\n Name_9: names[8] ? names[8] : \"\",\r\n Name_10: names[9] ? names[9] : \"\",\r\n Name_11: names[10] ? names[10] : \"\",\r\n Name_12: names[11] ? names[11] : \"\",\r\n Name_13: names[12] ? names[12] : \"\",\r\n Name_14: names[13] ? names[13] : \"\",\r\n Name_15: names[14] ? names[14] : \"\",\r\n Name_16: names[15] ? names[15] : \"\",\r\n Name_17: names[16] ? names[16] : \"\",\r\n Name_18: names[17] ? names[17] : \"\",\r\n Name_19: names[18] ? names[18] : \"\",\r\n Name_20: names[19] ? names[19] : \"\",\r\n Remarks: remarks,\r\n Message: messages,\r\n Category: category,\r\n DedicatedBy: dedicatedBy,\r\n HasTaxDeduction: hasTaxDeduction,\r\n Nric: nric,\r\n BuildingName: buildingName,\r\n UnitNumber: unitNumber,\r\n PostalCode: postalCode,\r\n PhoneNumber: phoneNumber,\r\n ChineseName: chineseName,\r\n Country: country,\r\n SchoolName: schoolName,\r\n CompanyName: companyName,\r\n DonationOption: collectionOption,\r\n BlessingOption: blessingOption,\r\n LightOption: lightOption,\r\n ValidFrom: validFrom,\r\n ValidTo: validTo,\r\n DedicationPeriod: dedicationPeriod,\r\n StartDate: startDate,\r\n Gender: gender,\r\n SurgeryDate: surgeryDate,\r\n BirthDate: birthDates[0] ? birthDates[0] : nullDate,\r\n BirthTime: birthTimes[0] ? birthTimes[0] : \"\",\r\n BirthDate_2: birthDates[1] ? birthDates[1] : \"\",\r\n BirthTime_2: birthTimes[1] ? birthTimes[1] : \"\",\r\n DeathDate: deathDate,\r\n DeathTime: deathTime,\r\n DeceasedRelationship: deceasedRelationship,\r\n NameChange: nameChange,\r\n OldName_1: oldNames[0] ? oldNames[0] : \"\",\r\n OldName_2: oldNames[1] ? oldNames[1] : \"\",\r\n NameNextKin: nameNextKin,\r\n ContactNumber: contactNumber,\r\n ContactNumberNextKin: contactNumberNextKin,\r\n PassportNumber: passportNumber,\r\n PassportExpiryDate: passportExpiryDate,\r\n PassportIssuedDate: passportIssuedDate ,\r\n Consent: consent,\r\n IsInsuranceIncluded: isInsuranceIncluded\r\n };\r\n\r\n generateErrorLog(\r\n context,\r\n \"ERROR ecomm-product-detaials-form _saveDraft\",\r\n extra + \" | Error: \" + error,\r\n item\r\n );\r\n\r\n toast.error(resource.saveDraftErrorMsg[this.localeCode]);\r\n });\r\n }\r\n }\r\n } else {\r\n toast.warning(resource.saveDraftOverLimitMsg[this.localeCode]);\r\n }\r\n }\r\n };\r\n\r\n private _retrieveDraft = () => {\r\n if (this.props.eventProduct) {\r\n this._checkRegistrationPeriod();\r\n }\r\n\r\n this._checkAvailableSerial();\r\n\r\n if (!this.state[\"registrationClosed\"] && !this.state[\"itemUnavailable\"]) {\r\n this._populateFormDisplay();\r\n\r\n this.props.retrieveRow(this.state.drafts);\r\n\r\n toast.success(resource.retrieveDraft[this.localeCode]);\r\n }\r\n };\r\n\r\n private _getDrafts() {\r\n const {\r\n context,\r\n data: { accountInformation, product },\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n\r\n if (customer?.AccountNumber) {\r\n getAllBTGPDraftAsync(\r\n { callerContext: context.actionContext },\r\n customer?.AccountNumber,\r\n product.result?.RecordId.toString()!\r\n ).then((result) => {\r\n if (result.length !== 0) {\r\n const latest = new Date(JSON.parse(result[0]).ModifiedDateTime);\r\n\r\n const batch = result.filter((item) => {\r\n const draft = JSON.parse(item);\r\n const date = new Date(draft.ModifiedDateTime);\r\n\r\n if (\r\n date.getUTCDate() === latest.getUTCDate() &&\r\n date.getUTCMonth() === latest.getUTCMonth() &&\r\n date.getFullYear() === latest.getUTCFullYear() &&\r\n date.getUTCMinutes() === latest.getUTCMinutes() &&\r\n date.getUTCHours() === latest.getUTCHours() &&\r\n draft.IsValid === \"1\"\r\n ) {\r\n return draft;\r\n }\r\n });\r\n\r\n const items: any[] = [];\r\n\r\n batch.forEach((item) => items.push(JSON.parse(item)));\r\n\r\n items.sort((a, b) => {\r\n const x = a.ParentDraftID as string;\r\n const y = b.ParentDraftID as string;\r\n\r\n return x > y ? 1 : x < y ? -1 : 0;\r\n });\r\n\r\n const inputs = [];\r\n\r\n for (let i = 0; i < items.length; ++i) {\r\n const input = items[`${i}`];\r\n\r\n const names = [\r\n input.Name_1,\r\n input.Name_2,\r\n input.Name_3,\r\n input.Name_4,\r\n input.Name_5,\r\n input.Name_6,\r\n input.Name_7,\r\n input.Name_8,\r\n input.Name_9,\r\n input.Name_10,\r\n input.Name_11,\r\n input.Name_12,\r\n input.Name_13,\r\n input.Name_14,\r\n input.Name_15,\r\n input.Name_16,\r\n input.Name_17,\r\n input.Name_18,\r\n input.Name_19,\r\n input.Name_20,\r\n ];\r\n\r\n const category =\r\n input.Category !== \"\"\r\n ? input.Category\r\n : resource.categoryFamilyLabel[this.localeCode];\r\n const donationOption =\r\n input.DonationOption !== \"\"\r\n ? input.DonationOption\r\n : resource.optionCollectionLabel[this.localeCode];\r\n const blessingOption =\r\n input.BlessingOption !== \"\"\r\n ? input.BlessingOption\r\n : resource.optionInPersonLabel[this.localeCode];\r\n\r\n let eventNames = input.EventName;\r\n let eventIds = input.EventID;\r\n\r\n const selections = items.filter((record) => {\r\n if (\r\n input.DraftID !== record.DraftID &&\r\n input.ParentDraftID === record.ParentDraftID\r\n ) {\r\n return record;\r\n }\r\n });\r\n\r\n for (let j = 0; j < selections.length; ++j) {\r\n eventNames += \";\" + selections[`${j}`].EventName;\r\n eventIds += \";\" + selections[`${j}`].EventID;\r\n }\r\n\r\n i += selections.length;\r\n\r\n const item = {\r\n DraftID: input.DraftID,\r\n CustomerID: input.CustomerID,\r\n ProductID: input.ProductID,\r\n EventID: eventIds,\r\n EventName: eventNames,\r\n SerialID: input.SerialID,\r\n SerialNumber: input.SerialNumber,\r\n SerialName: input.SerialName,\r\n Names: names,\r\n Remarks: input.Remarks,\r\n Message: input.Message,\r\n Category: category,\r\n DedicatedBy: input.DedicatedBy,\r\n HasTaxDeduction: input.HasTaxDeduction,\r\n Nric: input.Nric,\r\n BuildingName: input.BuildingName,\r\n UnitNumber: input.UnitNumber,\r\n PostalCode: input.PostalCode,\r\n Country: input.Country,\r\n BirthDate: input.BirthDate,\r\n BirthDate_2: input.BirthDate_2,\r\n BirthTime_2: input.BirthTime_2,\r\n PhoneNumber: input.PhoneNumber,\r\n SchoolName: input.SchoolName,\r\n DedicationPeriod: input.DedicationPeriod,\r\n DonationOption: donationOption,\r\n BlessingOption: blessingOption,\r\n IsValid: input.IsValid,\r\n CreatedDateTime: input.CreatedDateTime,\r\n ModifiedDateTime: input.ModifiedDateTime,\r\n BirthTime: input.BirthTime,\r\n LightOption: input.LightOption,\r\n ValidFrom: input.ValidFrom,\r\n ValidTo: input.ValidTo,\r\n ParentDraftID: input.ParentDraftID,\r\n CompanyName: input.CompanyName,\r\n DeceasedRelationship: input.DeceasedRelationship,\r\n SurgeryDate: input.SurgeryDate,\r\n DeathDate: input.DeathDate,\r\n DeathTime: input.DeathTime,\r\n NameChange: input.NameChange,\r\n OldName_1: input.OldName_1,\r\n OldName_2: input.OldName_2,\r\n Quantity: input.Quantity,\r\n ChineseName: input.ChineseName,\r\n ContactNumber: input.ContactNumber,\r\n NameNextKin: input.NameNextKin,\r\n ContactNumberNextKin: input.ContactNumberNextKin,\r\n PassportNumber: input.PassportNumber,\r\n PassportExpiryDate: input.PassportExpiryDate,\r\n PassportIssuedDate: input.PassportIssuedDate,\r\n Consent: input.Consent,\r\n IsInsuranceIncluded: input.IsInsuranceIncluded\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ drafts: inputs });\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _populateFormDisplay() {\r\n const inputs = [];\r\n\r\n for (let i = 0; i < this.state.drafts.length; ++i) {\r\n const item = {\r\n quantity: this.state.drafts[`${i}`].Quantity,\r\n names: this.state.drafts[`${i}`].Names,\r\n category: this.state.drafts[`${i}`].Category,\r\n eventID: this.state.drafts[`${i}`].EventID,\r\n eventName: this.state.drafts[`${i}`].EventName,\r\n remarks: this.state.drafts[`${i}`].Remarks,\r\n message: this.state.drafts[`${i}`].Message,\r\n dedicatedBy: this.state.drafts[`${i}`].DedicatedBy,\r\n hasTaxDeduction: this.state.drafts[`${i}`].HasTaxDeduction,\r\n nric: this.state.drafts[`${i}`].Nric,\r\n buildingName: this.state.drafts[`${i}`].BuildingName,\r\n unitNumber: this.state.drafts[`${i}`].UnitNumber,\r\n postalCode: this.state.drafts[`${i}`].PostalCode,\r\n birthDate: this.state.drafts[`${i}`].BirthDate,\r\n phoneNumber: this.state.drafts[`${i}`].PhoneNumber,\r\n schoolName: this.state.drafts[`${i}`].SchoolName,\r\n donationOption: this.state.drafts[`${i}`].DonationOption,\r\n blessingOption: this.state.drafts[`${i}`].BlessingOption,\r\n birthTime: this.state.drafts[`${i}`].BirthTime,\r\n lightOption: this.state.drafts[`${i}`].LightOption,\r\n validFrom: this.state.drafts[`${i}`].ValidFrom,\r\n validTo: this.state.drafts[`${i}`].ValidTo,\r\n dedicationPeriod: this.state.drafts[`${i}`].DedicationPeriod,\r\n country: this.state.drafts[`${i}`].Country,\r\n companyName: this.state.drafts[`${i}`].CompanyName,\r\n deceasedRelationship: this.state.drafts[`${i}`].DeceasedRelationship,\r\n surgeryDate: this.state.drafts[`${i}`].SurgeryDate,\r\n deathDate: this.state.drafts[`${i}`].DeathDate,\r\n deathTime: this.state.drafts[`${i}`].DeathTime,\r\n nameChange: this.state.drafts[`${i}`].NameChange,\r\n oldName_1: this.state.drafts[`${i}`].OldName_1,\r\n oldName_2: this.state.drafts[`${i}`].OldName_2,\r\n birthDate_2: this.state.drafts[`${i}`].BirthDate_2,\r\n birthTime_2: this.state.drafts[`${i}`].BirthTime_2,\r\n chineseName: this.state.drafts[`${i}`].ChineseName,\r\n contactNumber: this.state.drafts[`${i}`].ContactNumber,\r\n nameNextKin: this.state.drafts[`${i}`].NameNextKin,\r\n contactNumberNextKin: this.state.drafts[`${i}`].ContactNumberNextKin,\r\n passportNumber: this.state.drafts[`${i}`].PassportNumber,\r\n passportExpiryDate: this.state.drafts[`${i}`].PassportExpiryDate,\r\n passportIssuedDate: this.state.drafts[`${i}`].PassportIssuedDate,\r\n consent: this.state.drafts[`${i}`].Consent, \r\n isInsuranceIncluded: this.state.drafts[`${i}`].IsInsuranceIncluded,\r\n isPastTransaction: false,\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ formItems: inputs });\r\n }\r\n\r\n private async _getRenewableLamps() {\r\n const {\r\n context,\r\n data: { accountInformation, product, cart },\r\n } = this.props;\r\n\r\n const customer = accountInformation?.result;\r\n\r\n if (customer?.Email) {\r\n let cartLineData: any[] = [];\r\n\r\n let getAllCartLineResult = await getAllBTGPCartLineAsync(\r\n { callerContext: this.props.context.actionContext },\r\n (await cart).cart.Id\r\n );\r\n\r\n if (getAllCartLineResult.length > 0) {\r\n getAllCartLineResult.map((record) => {\r\n cartLineData.push(JSON.parse(record));\r\n });\r\n }\r\n\r\n const getRenewableSerialResult = await getRenewableSerialsAsync(\r\n { callerContext: context.actionContext },\r\n this.props.config.isUat,\r\n product.result?.RecordId.toString()!,\r\n customer?.Email!\r\n );\r\n\r\n if (getRenewableSerialResult.length !== 0) {\r\n const inputs = [];\r\n\r\n for (let i = 0; i < getRenewableSerialResult.length; ++i) {\r\n const input = JSON.parse(getRenewableSerialResult[`${i}`]);\r\n\r\n let cartLine = cartLineData.find(\r\n (cl) => cl[\"SerialID\"] === input.gmb_serialnumberid\r\n );\r\n\r\n const item = {\r\n name_1: input.gmb_displayname1,\r\n name_2: input.gmb_displayname2,\r\n category: input.gmb_category,\r\n validTo: input.gmb_lightvalidto,\r\n serialNumber: input.gmb_serialnumber,\r\n serialId: input.gmb_serialnumberid,\r\n serialName: input.gmb_name,\r\n isChecked: cartLine ? true : false,\r\n isAdded: cartLine ? true : false,\r\n };\r\n\r\n inputs.push(item);\r\n }\r\n\r\n this.setState({ renewableLamps: inputs });\r\n }\r\n }\r\n }\r\n\r\n private _checkRegistrationPeriod() {\r\n let availableRegistration = true;\r\n\r\n if (\r\n this.props.formName === \"categoryNamesAddressForm\" ||\r\n this.props.formName === \"categoryNamesCollectionForm\" ||\r\n this.props.formName === \"categoryNamesForm\" ||\r\n this.props.formName === \"ceremonyForm\" ||\r\n this.props.formName === \"eventDeceasedDedicatedByForm\" ||\r\n this.props.formName === \"namesOnlyForm\" ||\r\n this.props.formName === \"namesRemarksForm\" ||\r\n this.props.formName === \"namesAddressContactnoForm\" ||\r\n this.props.formName === \"eventsNextOfKinNameForm\" ||\r\n this.props.formName === \"deceasedDedicatedByForm\" ||\r\n this.props.formName === \"eventCategoryNamesForm\" ||\r\n this.props.formName === \"nameBirthdaySchoolForm\"\r\n ) {\r\n if (this.props.eventRecords.length == 0) {\r\n this.setState({ registrationClosed: true });\r\n } else {\r\n let latestEvent = this.props.eventRecords[this.props.eventRecords.length - 1];\r\n let eventStartDate = moment(latestEvent[\"startDateTime\"]);\r\n let currentTime = moment();\r\n\r\n if (currentTime.diff(eventStartDate, \"d\") > 0) {\r\n availableRegistration = false;\r\n\r\n this.setState({ registrationClosed: true });\r\n }\r\n }\r\n }\r\n\r\n return availableRegistration;\r\n }\r\n\r\n private async _checkAvailableSerial() {\r\n let haveSerial = true;\r\n\r\n if (this.props.hasSerial) {\r\n let checkAvailableSerialResult = await checkAvailableSerialAsync(\r\n { callerContext: this.props.context.actionContext },\r\n this.props.config.isUat,\r\n this.props.data.product.result?.RecordId.toString()!\r\n );\r\n\r\n if (\r\n checkAvailableSerialResult &&\r\n typeof checkAvailableSerialResult === \"object\" &&\r\n checkAvailableSerialResult[\"value\"] == false\r\n ) {\r\n haveSerial = false;\r\n\r\n // If user is logged in and user has a serial name, item is considered available.\r\n\r\n this.setState({ itemUnavailable: true });\r\n }\r\n }\r\n\r\n return haveSerial;\r\n }\r\n\r\n private _checkUnderEventDatesLimit(): boolean {\r\n let count = 0;\r\n\r\n for (let i = 0; i < this.state.quantities.length; ++i) {\r\n count += this.state.quantities[`${i}`];\r\n\r\n if (count > this.eventDateLimit) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _handleOnClickPopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: true, addRenewLamp: false });\r\n };\r\n\r\n private _handleClosePopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: false, addRenewLamp: false });\r\n };\r\n\r\n private _handleProceedPopup = () => {\r\n event?.preventDefault();\r\n this.setState({ showPopup: false, addRenewLamp: true });\r\n };\r\n}\r\n\r\nexport default EcommProductDetailsFormView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['ecomm-product-details-form'] = {\n c: () => require('partner/modules/ecomm-product-details-form/ecomm-product-details-form.tsx'),\n $type: 'contentModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 0},{name:'categories', path:'actions/get-categories', runOn: 0},{name:'product', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant', runOn: 0},{name:'productAvailableQuantity', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant', runOn: 0},{name:'selectedQuantity', path:'actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity', runOn: 0}],\n \n iNM: false,\n ns: '__local__',\n n: 'ecomm-product-details-form',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/ecomm-product-details-form'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-product-availabilities-for-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-selected-variant');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity';\n let dataAction = require('partner/actions/BuyBoxSelectedQuantity/ecomm-buybox-selected-quantity');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/get-categories';\n let dataAction = require('partner/actions/get-categories');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|ecomm-product-details-form|ecomm-product-details-form'] = {\n c: () => require('partner/modules/ecomm-product-details-form/ecomm-product-details-form.view.tsx'),\n cn: '__local__-__local__-ecomm-product-details-form'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n"],"names":["GetSelectedQuantityValuesInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","ctx","selectedQuantity","id","args","createObservableDataAction","retailAction","context","createGetCategoriesInput","Paging","Top","requestContext","apiSettings","channelId","attributes","formName","fields","field_name","field_type","field_placeholder","required","validation","field_number","noOfNames","field_number2","companyNames","field_number3","deceasedNames","field_label","hasSerial","field_options","amounts","moment","require","EcommProductDetailsForm","React","props","super","tableHeaderArray","localeCode","this","request","locale","split","state","selectedProduct","addRow","replaceRow","removeRow","removeMultipleRows","retrieveRow","headerArrayState","formStructState","rowsData","uuidv4","productResult","simpleProductResult","productsIds","productPriceArr","attributesList","productsAvailability","matchingCartItems","registrationClosed","itemUnavailable","isEditMode","eventProduct","eventAvailable","eventRecords","eventMinCapacityThreshold","eventDetails","allowMultipleRegistrations","showRemarksField","insuranceAmount","insuranceFeeLabel","makeChineseNameMandatory","registrationClosedApiLoaded","eventAvailableApiLoaded","itemUnavailableSerialApiLoaded","itemUnavailableStockApiLoaded","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","delay","ms","Promise","resolve","setTimeout","data","categories","cart","product","formStructure","result","categoryId","filter","category","ParentCategory","RecordId","resultObj","projectDomain","ChannelId","actionContext","CatalogId","catalogId","productSearchResult","productSearchResultFiltered","productObject","productsAvailabilityResults","simpleProductsResults","activePricesResult","productIds","resultObject","searchByCategoryAsync","callerContext","push","elem","getByIdsAsync","getActivePricesAsync","queryResultSettings","Date","getEstimatedAvailabilityAsync","ProductIds","DefaultWarehouseOnly","getAttributeValuesAsync","selectedProducts","productsSimpleDetails","activePrices","ProductWarehouseInventoryAvailabilities","undefined","getProductServiceObjects","catch","error","_this$state$productRe","_this$state$simplePro","_this$state$productsI","_this$state$productPr","_this$state$attribute","console","log","length","setState","productList","simpleProductList","productPriceList","attributeList","JSON","stringify","matchingItemsLength","itemArray","parameters","window","location","search","cartlineId","URLSearchParams","get","cartLines","CartLines","found","find","cartline","LineId","cartLineData","getAllCartLineResult","getAllBTGPCartLineAsync","Id","map","record","parse","cartLineIndex","findIndex","cl","childCartLines","eventNames","eventIds","quantity","Quantity","subProductQuantity","child","String","ProductId","subProductfound","Comment","IsPriceKeyedIn","Price","user","customerAccountNumber","itemInCart","lastOrderCE","lastOrderCommerce","records","getByCustomerBTGPTransactionAsync","emailAddress","toString","config","isUat","recordsCE","orders","getOrderHistoryAsync","order","inputs","mostRecentOrderID","isBefore","CreatedDateTime","batch","i","item","getProductAttributes","getFormJSON","formRows","buildFormStructure","courseProduct","hasCapacityCheck","_checkEventAvailability","_this$props$data$prod","_getEventsForProductWithoutAvailability","_checkAvailableSerial","_checkAvailableStock","subProductRecordId","getSubProduct","getByIdAsync","subProduct","render","_product$result","customPriceCheck","BasePrice","ProductDetailsViewProps","_objectSpread","hasInitOnce","setHasInitOnce","formScheme","formsHeaders","productsList","simpleProducts","productAvailabilities","isCustomPrice","renderView","_checkRegistrationPeriod","productEvents","latestEvent","eventStartDate","diff","haveStock","productId","availability","warehouse","stock","PhysicalAvailableInventoryLevelCode","InventoryLvls","AVAIL","_this$props$data$prod2","haveSerial","checkAvailableSerialResult","checkAvailableSerialAsync","ecommId","startDate","setHours","getProductEventsByIdAsync","toISOString","event","eventJson","eventObj","name","startDateTime","endDateTime","startLunarDate","endLunarDate","all","checkEventAvailableResult","getEventAvailabilityAsync","eventAvailabiltyDetails","isEventAvailable","remainingSlots","maxEventCapacity","registrationCount","hideAddMoreButton","remainingEcommSlots","eventDetailsObj","eventAvailableSlot","_this$props$data$prod3","_getEventsForProduct","_formStructure$fields","element","noOfRows","update","rowsDataArray","slice","replaceRowAction","idx","removeMultipleRowsAction","index","stateData","splice","ids","DraftID","difference","j","amountArray","names","allowMultipleEventRegistrations","_attributesList$Name","_attributesList$Name2","_attributesList$Name3","_attributesList$Name4","_attributesList$Name5","_attributesList$Name6","_attributesList$Name7","_attributesList$Name8","_attributesList$Name9","_attributesList$Name10","_attributesList$Name11","_attributesList$Name12","_attributesList$Name13","_attributesList$Name14","_attributesList$Name15","_attributesList$Name16","Name","includes","TextValue","resource","IntegerValue","BooleanValue","Popup","formLabels","_callbackRedirect","callbackProceed","_callbackHide","_event","preventDefault","callback","Modal","show","showPopup","onHide","centered","Header","closeButton","Title","className","_titleText","Body","_renderMessage","renewableLamps","_renderLampsHeader","_renderLamps","Footer","href","onClick","style","width","_goButtonText","_renderCancelButton","renewDialogTitle","_cancelButtonText","renewDialogValidCancelTitle","renewDialogProceedTitle","renewDialogOkayTitle","renewMessageText","renewSelectedAllMessageText","renewDialogSerialNoTitle","renewDialogNameTitle","renewDialogValidTillTitle","_renderLampOption","lamp","serialNumber","serialId","name_1","name_2","validTo","isChecked","type","value","onChange","e","checkedLampIndex","target","updatedSelection","checked","callbackChecked","disabled","EcommProductDetailsFormView","customerTotalPrice","customerPrices","customerEvents","customerEventIDs","customerNames","customerRemarks","customerMessages","customerSerialIDs","customerSerialNumbers","customerSerialNames","dedicatedBy","collectionOptions","buildingNames","unitNumbers","postalCodes","phoneNumbers","chineseNames","birthDates","birthTimes","schoolNames","blessingOptions","lightOptions","validFroms","validTos","quantities","dedicationPeriods","countries","deceasedRelationships","surgeryDates","deathDates","deathTimes","oldNames","nameChanges","hasTaxDeductions","nrics","startDates","genders","formsValidated","eventsSelected","namesEntered","chineseNamesEntered","phoneNumbersEntered","passportNumberEntered","relationshipsEntered","companiesEntered","schoolsEntered","pricesEntered","addressEntered","dateEntered","passportExpiryDateEntered","passportIssueDateEntered","fileUploaded","formItems","drafts","userData","addRenewLamp","hasMounted","nextKinNames","contactNumbers","contactNumbersNextKins","passportNumbers","passportExpiryDates","passportIssuedDates","consents","isInsuranceIncluded","isInsuranceIncludedNum","eventDateLimit","_handleOnClickPrice","reduce","a","b","fpFix","_handleEventInput","_handleEventIDInput","_handleCategoryInput","_handleDedicationPeriodInput","_handleStartDateInput","_handleGenderInput","_handleNameInput","_handleDedicatedByInput","_handleSubProductQuantityInput","_handleMessageInput","_handleRemarkInput","_handleCollectionOptionInput","_handleTaxDeductionInput","_handleNRICInput","_handleBuildingNameInput","_handleUnitNumberInput","_handlePostalCodeInput","_handlePhoneNumberInput","_handleChineseNameInput","_handleNextOfKinNameInput","_handlePassportNumberInput","_handlePassportExpiryDateInput","_handlePassportIssuedDateInput","_handleConsentsInput","_handleIsInsuranceIncludedInput","_handleIsInsuranceIncludedNumInput","_handleNextOfKinPhoneNumberInput","_handleSurgeryDateInput","_handleBirthDateInput","_handleBirthTimeInput","_handleSchoolNameInput","_handleBlessingOptionInput","_handleLightOptionInput","_handleQuantitiesInput","_handleValidFromInput","_handleValidToInput","_handleCountryInput","_handleCompanyNameInput","_handleDeceasedRelationshipInput","_handleDeathDateInput","_handleDeathTimeInput","_handleOldNameInput","_handleNameChangeInput","_handleSerialIdInput","_handleSerialNumberInput","_handleSerialNamesInput","_handleFormsValidation","_handleEventsSelected","_handleNamesEntered","_handleChineseNamesEntered","_handlePhoneNumbersEntered","_handlePassportNumberEntered","_handleRelationshipsEntered","_handleCompaniesEntered","_handleSchoolsEntered","_handlePricesEntered","_handleAddressEntered","_handleDateEntered","_handlePassportExpiryDateEntered","_handlePassportIssueDateEntered","_handleFileUploaded","_handleRenewableLampChecked","_handleRenewableLampRemove","lamps","removeLampIndex","_updateDimensions","innerWidth","_saveDraft","accountInformation","customer","nullDate","_checkUnderEventDatesLimit","eventIDs","eventNamesArray","eventIDsArray","serialName","remarks","messages","hasTaxDeduction","nric","buildingName","unitNumber","postalCode","phoneNumber","chineseName","nameNextKin","contactNumber","contactNumberNextKin","passportNumber","passportExpiryDate","passportIssuedDate","consent","country","schoolName","collectionOption","blessingOption","lightOption","validFrom","surgeryDate","dedicationPeriod","companyName","deceasedRelationship","deathDate","deathTime","nameChange","gender","createOrUpdateBTGPDraftAsync","AccountNumber","then","_getDrafts","toast","success","_product$result2","extra","CartLineID","CartID","CartLineComment","ParentCartLineID","ProductID","EventID","EventName","SerialID","SerialNumber","SerialName","Name_1","Name_2","Name_3","Name_4","Name_5","Name_6","Name_7","Name_8","Name_9","Name_10","Name_11","Name_12","Name_13","Name_14","Name_15","Name_16","Name_17","Name_18","Name_19","Name_20","Remarks","Message","Category","DedicatedBy","HasTaxDeduction","Nric","BuildingName","UnitNumber","PostalCode","PhoneNumber","ChineseName","Country","SchoolName","CompanyName","DonationOption","BlessingOption","LightOption","ValidFrom","ValidTo","DedicationPeriod","StartDate","Gender","SurgeryDate","BirthDate","BirthTime","BirthDate_2","BirthTime_2","DeathDate","DeathTime","DeceasedRelationship","NameChange","OldName_1","OldName_2","NameNextKin","ContactNumber","ContactNumberNextKin","PassportNumber","PassportExpiryDate","PassportIssuedDate","Consent","IsInsuranceIncluded","generateErrorLog","warning","_retrieveDraft","_populateFormDisplay","_handleOnClickPopup","_handleClosePopup","_event2","_handleProceedPopup","_event3","addEventListener","_getRenewableLamps","formItemsArray","forEach","sort","comment","eventID","eventName","message","birthDate","donationOption","birthTime","oldName_1","oldName_2","birthDate_2","birthTime_2","customPriceAmount","cartLineId","isPastTransaction","eventId","isAuthenticated","getContactDetailsAsync","parseUserData","resources","Total","deleteRow","_navigateToCart","cartAliasUrl","getUrlSync","assign","quantitiesArray","subProductQuantityArray","enableButton","showSubDetails","showNoOfYearsCategoryNamesForm","showItemUnavailableNotice","showCartAmount","_renderTop","_renderRenewableLamp","_renderItemUnavailableNotice","_renderRegistrationClosedNotice","_renderSub","AmountDeceasedNameForm","callbackPrice","callbackName","callbackCategory","callbackDedicatedBy","callbackNamesEntered","callbackPricesEntered","isMobile","CategoryNamesAddressForm","callbackEvent","callbackEventID","callbackBuilding","callbackUnitNumber","callbackPostalCode","callbackPhoneNumber","callbackAddressEntered","userInfo","CategoryNamesCollectionForm","callbackCollection","CategoryNamesForm","CeremonyForm","callbackMultiplier","callbackEventsSelected","DeceasedCategoryNamesForm","DeceasedDedicatedByForm","DonationForm","CoursesForm","_renderCoursesItemUnavailableNotice","EventChineseNameForm","callbackChineseName","callbackChineseNamesEntered","callbackPhoneNumbersEntered","makeChinesNameMandatory","EventNextOfKinNameForm","callbackNextOfKinName","callbackNextOfKinPhoneNumber","callbackInsuranceIncluded","callbackInsuranceIncludedNum","EventPassportUploadForm","callbackBirthDate","callbackPassportNumber","callbackPassportExpiryDate","callbackPassportIssuedDate","callbackConsent","callbackDateEntered","callbackPassportExpiryDateEntered","callbackPassportIssueDateEntered","callbackFileUploaded","callbackPassportNumberEntered","callbackRemarks","organisation","azureContainerName","isFileUploaded","EventPassportUploadInsuranceForm","EventCategoryNamesForm","EventDeceasedDedicatedByForm","EventTaxDeductionForm","callbackHasTaxDeduction","callbackNRIC","callbackCountry","callbackEnableSaveDraft","callbackFormsValidation","NameBirthDatetimeForm","callbackBirthTime","NameBirthdaySchoolForm","callbackSchoolName","callbackBlessingOption","callbackSchoolsEntered","NamesOnlyForm","NamesRemarksForm","NamesAddressContactnoForm","NoOfYearsCategoryNamesForm","removeLamp","callbackNoOfYear","callbackLightOption","callbackValidFrom","callbackValidTo","callbackOldName","callbackNameChange","callbackSerialNumber","callbackSerialId","callbackSerialNames","OfferingForm","callbackMessage","ServicesBusinessForm","callbackDedicationPeriod","callbackCompanyName","callbackCompaniesEntered","ServicesDeceasedForm","callbackStartDate","callbackRelationship","callbackRelationshipsEntered","callbackDeathDate","callbackDeathTime","ServicesEducationForm","ServicesGeneralForm","callbackGender","NamesDedicationStartDateForm","ServicesHealthSurgeryForm","callbackSurgeryDate","ServicesInfantSpiritForm","callbackBlessingType","ServicesMarriageForm","ThreeCategoryNamesForm","ThreeCategoryNamesConsecrationForm","callbackSubProductQuantity","ProductDetailsAddtoCartButton","key","isCustomPriceSelected","keyInPriceAmount","isPriceKeyedIn","cartAdded","itemAddedToCart","events","serialIds","serialNumbers","serialNames","subProductQuantities","nameNextKins","contactNumbersNextKin","ToastContainer","autoClose","componentWillUnmount","removeEventListener","saveDraft","retrieveDraft","renewLamp","showPrompt","formAnchorTag","renewLampTitle","signInUrl","itemUnavailableHeader","messageLine1","messageLine2","messageLine2Point1","messageLine2Point2","messageLine2Point3","registrationClosedHeader","Math","round","_product$result3","getAllBTGPDraftAsync","latest","ModifiedDateTime","draft","date","getUTCDate","getUTCMonth","getFullYear","getUTCFullYear","getUTCMinutes","getUTCHours","IsValid","items","x","ParentDraftID","y","selections","CustomerID","Names","Email","_product$result4","getRenewableSerialResult","getRenewableSerialsAsync","cartLine","gmb_serialnumberid","gmb_displayname1","gmb_displayname2","gmb_category","gmb_lightvalidto","gmb_serialnumber","gmb_name","isAdded","availableRegistration","count","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","c","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","toLength","requireObjectCoercible","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","RegExp","string","rx","S","res","done","global","fullUnicode","unicode","lastIndex","A","matchStr"],"sourceRoot":""}